---
title: "Getting an AI app through App Store and Play Store review"
description: "We spent August getting MoneyMama ready for the app stores' AI rules, adding consent, reporting and moderation. Google's first rejection had nothing to do with AI."
url: "https://rayson.me/writing/ai-app-store-review/"
category: "Engineering"
author: "Janarayson"
published: 2026-09-12
---

MoneyMama is finally available on both the App Store and Google Play. Google approved it on the day we submitted, after an initial rejection, while Apple's approval came through yesterday, nine days after our first submission.

I'd spent some of August preparing the app for review. MoneyMama is a personal finance app, but its main feature is a chat with Mama, our AI assistant. Both Apple and Google have rules covering AI chatbots, and I wanted to make sure we had everything in place before submitting.

We ended up adding consent, reporting and moderation features, along with special accounts for the reviewers.

As it turned out, none of those was the reason Google rejected our first build.

## Preparing for the AI rules

Apple and Google approach AI apps a little differently.

Apple's requirements are spread across several guidelines. In November 2025, guideline 5.1.2 was updated to require clear disclosure and explicit permission before sharing personal data with third parties, including third-party AI services.

There's also guideline 1.2, which covers user-generated content and reporting objectionable material. We decided to treat Mama's AI-generated replies as falling under that requirement.

And since the end of January, Apple's mandatory age-rating questionnaire has included a question asking whether the app contains an AI assistant or chatbot.

Google Play is more direct about it. Its AI-Generated Content policy specifically includes conversational AI chatbots where chatting with the model is a central feature of the app.

That's exactly what MoneyMama is.

Google requires users to be able to report offensive AI-generated content without leaving the app. Those reports are also supposed to inform the developer's moderation process. There's a declaration for AI-generated content in Play Console, and Google clarified in July that its user-data requirements also apply when apps use third-party AI services.

So before submitting, we had a few things to take care of. Users needed to know they were talking to AI, give permission before their information was sent to the AI provider, and have a way to report something Mama said. We also needed safeguards around what Mama could receive and generate.

## Consent, reporting and moderation

The first thing we added was a consent sheet.

When someone tries to send their first message, Mama holds it until they agree. The sheet explains that Mama is AI and can make mistakes, that AI service providers process what users send her to generate replies, and that inappropriate replies can be reported from the chat.

There's an Agree and chat button, or they can choose Not now. If they decline, their message stays unsent, and they can decide to agree later.

We store the agreement against their account rather than only on the device. The disclosure is also available in Settings if they want to read it again.

Next was reporting.

Users can long-press any of Mama's replies or type `/report` to open a form. They choose from three reasons and can add an optional comment.

<Figure
  src={sheets}
  alt="MoneyMama's AI consent sheet and the report form showing the quoted AI reply and reporting options"
  caption="The consent sheet shown before the first message, and the report form opened by long-pressing a reply."
  wide
/>

The first version of the report form reused our existing support form, which required an email address.

That was a problem. Someone who had registered with a phone number couldn't submit a report without providing an email, even though reporting was a requirement for the app.

So I removed the email field.

We also needed to do something useful with the reports. Simply sending them to a support inbox wasn't much of a moderation process.

Now each report creates a record in a review queue, linked to the exact message being reported. It also sends an alert to our Telegram group, with Mama's reply quoted in the notification.

That saves everyone from having to ask what she actually said.

For moderation, we already had part of the work done. Since February, when Mama was still running on WhatsApp, we'd been checking incoming messages and images through OpenAI's moderation endpoint.

The endpoint is fast and free, so we'd kept it in the message pipeline.

What we hadn't been checking was Mama's own replies. We added output moderation and updated her prompts with instructions to refuse restricted content. We also added finance-specific boundaries, including not presenting herself as a licensed financial adviser or promising investment returns.

While reviewing the prompts, I found something we'd overlooked.

Every Mama persona still had this instruction:

> There is no MoneyMama app on Android or iOS, only WhatsApp.

That was true when we first built her, but certainly wasn't true any more.

Imagine a reviewer opening the MoneyMama app, asking Mama whether she has an app, and being told that no such app exists.

I'm glad we caught that before submitting.

## Giving the reviewers their own accounts

The last thing we prepared was access for the reviewers.

Both stores needed an account they could use without going through our normal registration and payment process. We created one for each store and configured the backend to recognise them.

Those accounts bypass the paywall, and each new sign-in resets the account to a clean state. That way, the reviewer always starts with an empty conversation and sees the AI consent sheet before chatting.

We included the sign-in instructions in the review notes. Nothing elaborate, just what they needed to get into the app.

Both stores used those accounts.

With everything ready, we submitted MoneyMama to Google Play and the App Store on the same day.

## Google's rejection had nothing to do with AI

Google went first.

A couple of hours after submission, the rejection email arrived.

Tsk.

It wasn't about consent, AI-generated content or moderation. The problem was our photo picker.

MoneyMama's chat composer included a small grid of recent photos, making it easy to attach a receipt without leaving the conversation. But displaying that grid required broad access to the phone's media library.

Google's policy for Android 13 and later favours the system photo picker when an app only needs occasional access to photos. We'd also declared that MoneyMama only needed occasional access, which made the broad media permission difficult to justify.

<Figure
  src={playRejected}
  alt="Google Play's rejection email explaining that the app should use an alternative system photo picker"
  caption="Google rejected our first submission over the photo permissions."
/>

<figure class="fig">
  <img src="https://static.klipy.com/ii/2711dd8a75a85be822d136ec94899b3f/90/75/RTKgVdA3.gif" alt="A large red REJECTED stamp" width="480" height="270" loading="lazy" />
</figure>

We blocked the permission that afternoon and submitted two more builds.

MoneyMama was live on Google Play that same day.

There was another thing I hadn't expected from Google's review process.

Every build we uploaded was being exercised on Google's test devices, with each test signing in using a throwaway Gmail account.

From our backend's point of view, these looked like ordinary new users. They appeared in our registration reports and triggered the usual new-user alerts.

I ended up adding a check for the email-address pattern together with Google's IP range. When both match, we flag the account as a Play Store test and send a different Telegram alert:

> Play Store is testing the app.

At least now we can tell when Google is reviewing a build instead of wondering where all those unusual registrations are coming from.

## Apple took its time

We submitted on the same day as Google, but heard nothing for a week.

<figure class="fig">
  <img src="https://static.klipy.com/ii/ce286d05b8e1a47cd4f32b0e1b6dec0e/5a/e3/xcEK34Xt.gif" alt="The elderly woman from Titanic saying it's been 84 years" width="373" height="263" loading="lazy" />
</figure>

Our launch campaign was scheduled for the following week, so I contacted Developer Support and asked whether the review could be expedited.

They replied the next morning, saying the app was still pending review but that the reviewers had been made aware of my request.

A few hours later, App Review responded saying changes were needed.

I resubmitted that afternoon.

The following day, the email finally arrived.

<Figure
  src={appStoreWelcome}
  alt="Apple's Welcome to the App Store email confirming that MoneyMama iOS had been approved for distribution"
  caption="MoneyMama's App Store approval, nine days after our first submission."
/>

I suspect the combination of an AI chatbot and a finance app contributed to the delay. Both are areas where I'd expect reviewers to pay closer attention, although I have no way of knowing whether that was actually the reason.

What I do know is that all the work we'd done in August on consent, reporting and moderation went through review without being raised as an issue.

<Note label="Update, October 2026">

Every App Store update we've submitted since has cleared review in about a day.

We've also brought the moderation queue into our back office. Reports can now be opened with the surrounding conversation, reviewed and closed, rather than just appearing as a count in the daily report.

Apple updated guideline 1.2 this month to explicitly mention apps that create AI-generated content. The interpretation we'd taken when preparing MoneyMama in August is now reflected more directly in the guideline.

</Note>
