Guideline 5.1.2(i)

Rejected under 5.1.2(i)? How to add AI data consent to an Expo app

Last verified by Designated Dev

Short answer

Guideline 5.1.2(i) requires your app to tell people, before any personal data leaves the device, which third-party AI service receives it and what is sent, and to get their explicit permission first. A privacy policy mention alone is not enough. The fix in an Expo app is a consent screen that names the provider, a stored consent flag checked in the function that calls the AI, a way to withdraw consent, and an updated privacy policy.

You must clearly disclose where personal data will be shared with third parties, including with third-party AI, and obtain explicit permission before doing so.

App Review Guideline 5.1.2(i), Data Use and Sharing

At a glance

What you seeWhy it happensThe fix
Rejected under 5.1.2(i), “shares the user's personal data with a third-party AI service”Prompts, photos or voice go to OpenAI, Gemini or Claude with no in-app disclosure or permissionConsent screen that names the provider and the data, shown before the first request
Rejected again after adding a consent screenThe reviewer never saw it: the gate has a logic bug, or consent was already storedTest on a fresh install; check consent inside the function that calls the AI
Also cited under 5.1.1(i)The privacy policy doesn't name the AI provider or say what it receivesName the provider, the data and its use in the policy, and how to withdraw consent

Why AI apps started getting this rejection

Apple added the words “including with third-party AI” to guideline 5.1.2(i) in the App Review Guidelines update announced on November 13, 2025. Since then, apps that send prompts, photos, voice or documents to a model provider without asking first have been rejected with a message like this one, quoted by a developer on the Apple Developer Forums:

The app appears to share the user’s personal data with a third-party AI service but the app does not clearly explain what data is sent, identify who the data is sent to, and ask the user’s permission before sharing the data.

That sentence is effectively the checklist. The reviewer wants to see three things inside the app: what is sent, who receives it, and a permission step that happens before anything is sent.

AI app builders make it easy to wire a chat or photo feature straight to an AI API, and a consent step is easy to leave out when the goal is a working preview. That gap is what 5.1.2(i) now catches.

The fix in an Expo app

Show it at onboarding or right before the first AI feature is used. It should say, in plain words:

  • which provider receives the data, for example “OpenAI”,
  • what is sent: messages, photos, audio, documents,
  • what it’s used for, with a link to your privacy policy,
  • two clear choices, Allow and Don’t allow, with nothing pre-selected.

Apple publishes no template for this screen. The wording above mirrors what its rejection messages ask for.

2. Store the choice, and check it where the request is made

The most common reason for a second rejection is that the reviewer never saw the prompt. In one forum thread the gate had an && where it needed ||, so the prompt never appeared. Check consent inside the function that calls the AI, not only in navigation, so there is no path that skips it.

import * as SecureStore from "expo-secure-store";

const KEY = "ai-consent-v1"; // bump the version if the provider or data changes

export const hasAiConsent = async () => (await SecureStore.getItemAsync(KEY)) === "granted";
export const setAiConsent = (granted: boolean) =>
  granted ? SecureStore.setItemAsync(KEY, "granted") : SecureStore.deleteItemAsync(KEY);

export async function askAssistant(prompt: string) {
  if (!(await hasAiConsent())) throw new Error("AI_CONSENT_REQUIRED"); // show the consent screen
  return fetch("https://your-api.example.com/assistant", { method: "POST", body: JSON.stringify({ prompt }) });
}

expo-secure-store keeps values in the iOS Keychain, which can survive an uninstall. Test the prompt on a clean device or simulator so you see what a reviewer sees. AsyncStorage works too for a flag like this.

Guideline 5.1.1(ii) asks for “an easily accessible and understandable way to withdraw consent.” A toggle in Settings that calls setAiConsent(false) covers it.

4. Update the privacy policy and the App Privacy details

Name the AI provider in your privacy policy, say what data it receives and why, and explain how to withdraw consent or ask for deletion. In App Store Connect, review the App Privacy answers for the data types the AI feature handles, such as user content, photos or audio.

5. Tell the reviewer where to look

In App Review Information, add one line saying where the consent prompt appears, for example “The AI consent screen appears the first time you open the Chat tab.” It saves a round trip.

How we handle it

In an audit we trace every place the app sends data off the device, list which ones reach an AI provider, and check that each one passes through the consent gate. The fix itself is usually small. What takes care is making sure no path skips it, including features the builder generated and nobody tested.

Questions

Is mentioning the AI provider in my privacy policy enough?

No. The rejection text Apple sends asks the app itself to explain what is sent and who receives it, and to ask permission before sharing. The privacy policy has to be updated as well, but it does not replace the in-app consent.

Does 5.1.2(i) apply to OpenAI, Gemini and Claude?

Yes. The guideline says “third-party AI” and names no vendors, so it covers any outside model provider your app sends personal data to.

What if I call the AI through my own server?

Apple hasn't published guidance on proxies. If your server forwards the user's data to an AI provider, the data still reaches that third party, so the safe reading is that the disclosure and permission still apply.

My app doesn't use third-party AI but was flagged. What do I do?

Apple's rejection message says to reply in App Store Connect confirming that the app does not send user data to a third-party AI service, and to add that information to the App Review Information section.

Do on-device models need this consent?

Apple doesn't address it directly. The rule is about sharing data with third parties, so a model that runs entirely on the device and sends nothing out is generally read as outside it.

Sources

  1. Apple: App Review Guidelines, 5.1.2(i) and 5.1.1
  2. Apple Developer News: Updated App Review Guidelines now available (November 13, 2025)
  3. Apple Developer Forums: 5.1.2(i) third-party AI rejection (thread 816140)
  4. Apple Developer Forums: consent prompt not shown to the reviewer (thread 820209)
  5. Apple: App privacy details on the App Store
  6. Expo: SecureStore

Stuck on this in your own app?

We fix it, test it on real devices, and resubmit.

30 minutes with the engineer who'd do the work. Bring the repo link or the rejection email. Fixed price once scoped, in writing.