User photos went to OpenAI or Gemini with no in-app consent. Apple sent six questions about face data.
A consent sheet before the first try-on, a face-data section in the privacy policy, and a reply answering each question one by one.
The full process in order, plus what actually got us rejected.
From the reel on @shipitwithai. Apple rules checked 1 October 2026.
It’s how we ship fit., our iOS try-on app. Apple rejected it twice along the way, once on our first release and once on an update. Both rejections are below so you can skip them.
Apple rules here were checked on 1 October 2026. Anything with a date can change, so re-check it.
Before you build, ask Claude to audit the code for these. Each one is something we were rejected for or came close to.
ITSAppUsesNonExemptEncryption to false in Info.plist. After that, every upload skips the encryption question.UserDefaults, declare them in PrivacyInfo.xcprivacy.MARKETING_VERSION is what users see, like 1.0. CURRENT_PROJECT_VERSION is the build number. It goes up by one on every upload, including rejected ones.
Tell Claude:
It runs:
Xcode → Product → Archive → Distribute App gets you the same result.
Install it from TestFlight on a real iPhone and go through: sign-in, the core flow, leaving the app and coming back, every permission prompt, deleting the account, and every language you ship. The simulator hides problems the reviewer will find.
Claude drafts and pushes most of this. You check it.
| Field | What to know |
|---|---|
| Name, subtitle | 30 characters each. Both count for search. |
| Keywords | 100 characters, separated by commas with no spaces. Don’t repeat words from the name or subtitle. |
| Description | Write it to get installs. It doesn’t help search ranking. |
| Screenshots | 6.9" (1320×2868) or 6.5" (1284×2778). One set covers every iPhone. Apple ↗ |
| Support URL | A real page with contact details. Reviewers open it. |
| Privacy policy URL | The policy for this app. Ours once pointed at our Android policy. |
| App Privacy labels | Must match what the code actually sends. Then press Publish. That’s a separate step. |
| Age rating | Answer the questionnaire honestly. Apple expanded it in 2025 with 13+, 16+ and 18+. |
| Pricing and availability | Set a price (Free is fine) and the countries. Selling in the EU needs Digital Services Act trader status, or you can leave the EU out of v1. |
| App Review Information | Demo login, a contact phone number (required), notes on where things are, and an optional demo video. |
| Version release | Pick manual if you want to choose launch day. |
Fix everything it lists, attach the build, then click Add for Review. Apple says 90% of submissions are reviewed in under 24 hours. Apple ↗
While the app is waiting for review, don’t edit the version’s metadata.
Press Release if you chose manual. Open the live listing and check that the screenshots and subtitle show up. After that, change one listing field at a time and write down what you changed.
User photos went to OpenAI or Gemini with no in-app consent. Apple sent six questions about face data.
A consent sheet before the first try-on, a face-data section in the privacy policy, and a reply answering each question one by one.
Our name was the category’s search phrase: “fit. AI Virtual Try On Clothes”. Read cold, the listing looked like every other try-on app. It was reviewed on an iPad, where our iPhone-only app runs in compatibility mode.
Lead the name, subtitle, description and screenshots with what only your app does, then reply and walk the reviewer through the differences step by step.