shipcheck

Submitting an AI app: what applies, all at the same time

Updated September 7, 2026 · published by Baker Ventures LLC · sources cited inline

An AI app can be evaluated under five guidelines in one review, and most teams prepare for one of them.

1.2, user-generated content. Model output is treated as content your app is responsible for, so the safeguards apply: filtering, reporting with timely responses, blocking, and published contact information. Teams building single-player AI apps are routinely surprised by this. Detail.

5.1.2, data use and sharing. Sending user data to a third-party model provider requires disclosure and, depending on the data, consent. It has to appear in your privacy policy and your App Privacy label. Detail.

4.3, spam. The category is saturated with near-identical wrappers around the same model. An app whose description could apply to fifty others is the shape this targets. Detail.

2.3.1, hidden features. Prompt changes shipped remotely, model swaps, and features behind flags. Server-driven behaviour is normal; concealing what the app does is not. Detail.

The age rating. An app whose output cannot be fully predicted needs a rating that reflects that. Understating it is a rating problem and can become a content one.

Fix them in that order. 1.2 is structural and takes the longest; the age rating is a form.

The safeguards, concretely

Build these with the feature, not after the rejection:

A moderation step before output is displayed. Server-side, because a client-side check means an API key in the bundle. Either the provider's moderation endpoint or your own classifier, with a defined behaviour when it fires.

A report control on every piece of generated content. Reachable from the content itself, going somewhere you monitor.

A block mechanism, if any content from other users is visible. In the app, at the point of contact, and filtering in both directions on every query. This is a data-model change, which is why retrofitting it is expensive.

Published contact information that works.

A system prompt and refusal behaviour you can describe. A reviewer may try to make the model produce something it should not. Knowing what happens then is the difference between a considered answer and a guess.

The 4.3 problem, honestly

If your app is a chat interface over a general model with a different colour scheme, the review question is what makes it a distinct app rather than one of many.

Things that answer it: a specific workflow, proprietary data, a real integration, an output format that would not exist otherwise, a genuinely narrow use case implemented properly.

Things that do not: a persona, a prompt library, a different name for the same interface.

This is not only a review question. An app that cannot answer it also cannot be recommended by anything, including the models it is built on, because there is nothing to say about it that is not true of everything else. Guideline 4.2, minimum functionality.

The review notes

Four lines. They answer most of what a reviewer would otherwise guess at:

Model: requests go to [provider]'s API. No model runs on device.
Data: the user's typed prompt and, in the screenshot feature, the
      selected image. No contacts, location or health data. Covered in
      the privacy policy at [URL] and in the App Privacy label.
Safety: every response passes [moderation] before display. Refusals are
      shown as [behaviour]. Report is on every message; long-press.
Remote config: system prompts are served remotely so they can be fixed
      without a release. No feature not present in this build is enabled
      that way.

That last paragraph is the 2.3.1 disclosure, and it costs nothing to include. Review notes that work.

The privacy side

Data going to a model provider is data collection, and it belongs in three places that must agree: your privacy policy, your App Privacy label, and your Play Data safety form.

The common failure is a policy that predates the AI feature and does not mention it. A reviewer reading a policy that describes a different app has a finding without opening anything else. App privacy labels. · Play Data safety.

And if a listed third-party SDK ships in the binary, the privacy manifest requirements apply regardless of what your app does with it. ITMS-91061. · Privacy manifests for React Native.

The pre-submission pass

# is there a moderation step at all, and is it server side
grep -rniE 'moderat|classif|toxicity|safety' src server app 2>/dev/null | head

# report and block affordances in the shipped UI
grep -rniE 'report|block' src app --include=*.tsx | grep -iE 'message|content|user' | head

# keys that must not be in the bundle
grep -rniE 'sk-[a-z0-9]|api[_-]?key\s*[:=]' src app app.json app.config.js 2>/dev/null | head

# does the privacy policy mention the AI provider at all
grep -rniE 'openai|anthropic|gemini|model provider|third.party (ai|service)' \
  src app public 2>/dev/null | head

The third command is the one to run first. A provider key in an app bundle is extractable, and it is a billing incident as well as a review problem.

shipcheck runs this pass over the project, cites the guideline for each finding, and names the file and line. What it checks. · The first-submission checklist. · After a rejection.

About shipcheck

shipcheck is a pre-submission checker from Baker Ventures LLC that runs inside Claude Code. It reads your React Native or Expo project, finds the things that get apps rejected or blocked at upload, cites the exact App Store Review Guideline or Google Play policy clause, and names the file and line to fix.

It exists because React Native and Expo apps fail for reasons that are invisible in the code you wrote: capability arriving through a dependency, purpose strings added by a config plugin, a privacy manifest missing from an SDK you never chose directly, and a generated ios/ directory that discards your edits on the next prebuild. shipcheck checks what the binary and the config actually declare, not what you intended. The rejection references on this site are free, need no account, and link to the primary Apple or Google document for every claim.

Questions and answers

What App Store rules apply to AI apps?

Several at once. Guideline 1.2 on user-generated content, because model output is treated as content the app is responsible for. 5.1.2 on sharing data with third-party services. 4.3 on near-duplicate apps in a saturated category. 2.3.1 on functionality enabled after review. And the age rating, which changes when an app can produce unpredictable content.

Does my AI app need moderation and reporting?

If it can display content a user did not write, plan for the safeguards in Guideline 1.2 to be applied: filtering, reporting with timely responses, blocking, and published contact information. Teams building single-player AI apps are frequently surprised by this.

Do I need to disclose that I send data to an AI provider?

Yes. Sending user data to a third-party service requires disclosure and, depending on the data, consent. Personal data in particular has to be covered by your privacy policy and by your App Privacy label.

Why do AI apps get rejected under Guideline 4.3?

Because the category is saturated with near-identical wrappers around the same model. 4.3 addresses apps that duplicate what is already on the store, and an app whose whole description could apply to fifty others is the shape it targets.

What age rating does an AI chat app need?

An app whose output cannot be fully predicted usually needs a rating that reflects that, and Apple's questionnaire has categories addressing unrestricted web and user-generated content. Understating this is a rating problem and can also be a content one.

What should the review notes say for an AI app?

What the model is, what data leaves the device and where it goes, what moderation runs before output is shown, and how to reach the safety controls. Four lines, and they answer most of what a reviewer would otherwise have to guess.

Cite this pageshipcheck. “Submitting an AI app: what applies, all at the same time.” Baker Ventures LLC, September 7, 2026. https://shipcheck.bakerventuresstudio.com/guides/submitting-an-ai-app/