Guide · 7 min read

Your first App Store release with Claude

The full process in order, plus what actually got us rejected.

From the reel on @shipitwithai. Apple rules checked 1 October 2026.

Give this guide to your agentCopies it as Markdown, with a short brief on top. Paste it into Claude Code, Cursor or Codex.
1,636 words · Markdown

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.

Who does what

Claude does
  • Builds and archives the app
  • Uploads the build
  • Writes the listing
  • Fills most of App Store Connect
  • Drafts replies to App Review
You do
  • Payment, agreements, tax, banking and EU trader status
  • Passwords and 2FA. Never paste them into the chat.
  • Testing on a real iPhone
  • Pressing Submit and Release

One-time setup

  1. 1.
    Join the Apple Developer Program. It’s $99 a year, shown in local currency. As an individual, your legal name shows as the seller. A company needs a D-U-N-S number, which adds days. Apple ↗
  2. 2.
    Install Xcode 26 or later. Since 28 April 2026, uploads must be built with the iOS 26 SDK. Apple ↗
  3. 3.
    Create the app record in App Store Connect: name (30 characters max), bundle ID, SKU and primary language.
  4. 4.
    Give Claude access to App Store Connect. We use the open-source asc CLI and its agent skills:
    Terminal
    brew install asc
    npx skills add rorkai/app-store-connect-cli-skills
    asc auth login --name "MyApp" --key-id "KEY_ID" --issuer-id "ISSUER_ID" \
    --private-key ~/keys/AuthKey_KEY_ID.p8 --network
    Create the API key in App Store Connect → Users and Access → Integrations. Keep the .p8 file out of your repo.

The release, step by step

01Make the app review-proof

Before you build, ask Claude to audit the code for these. Each one is something we were rejected for or came close to.

  • Consent before third-party AI. 5.1.2(i) If photos, text, or anything personal goes to OpenAI, Gemini, or any AI API, show a screen before the first send. Say what is sent and to whom, with “Agree” and “Not now”. Required explicitly since November 2025.
  • Missing this is why our first release was rejected. What happened
  • Account deletion inside the app, 5.1.1(v) if users can create an account.
  • Sign in with Apple, 4.8 or a similar private login, if you offer Google or other social login.
  • Permission prompts that explain the reason. “fit. uses your camera so you can add a full-body photo” is better than “Camera access needed.”
  • A way in for the reviewer. 2.1 Give them a demo account with real data, or a guest path. We added a guest try-on so reviewers never hit a login wall.
  • A production backend that’s running. 2.1 Guideline 2.1 literally says “turn on your back-end service.”
  • The export compliance flag. If you only use HTTPS, set ITSAppUsesNonExemptEncryption to false in Info.plist. After that, every upload skips the encryption question.
  • A privacy manifest. If you use required-reason APIs like UserDefaults, declare them in PrivacyInfo.xcprivacy.

02Bump the version and build number

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.

03Archive and upload

Tell Claude:

Prompt
Archive Release, export for the App Store, upload, and wait for processing.

It runs:

Terminal
asc xcode archive --project "App.xcodeproj" --scheme "App" --configuration Release --clean \
--archive-path ".asc/artifacts/App.xcarchive" \
--xcodebuild-flag=-destination --xcodebuild-flag=generic/platform=iOS
asc xcode export --archive-path ".asc/artifacts/App.xcarchive" \
--export-options "ExportOptions.plist" --ipa-path ".asc/artifacts/App.ipa" \
--xcodebuild-flag=-allowProvisioningUpdates
asc builds upload --app "APP_ID" --ipa ".asc/artifacts/App.ipa" --wait

Xcode → Product → Archive → Distribute App gets you the same result.

04Test that exact build on TestFlight

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.

05Fill in App Store Connect

Claude drafts and pushes most of this. You check it.

FieldWhat to know
Name, subtitle30 characters each. Both count for search.
Keywords100 characters, separated by commas with no spaces. Don’t repeat words from the name or subtitle.
DescriptionWrite it to get installs. It doesn’t help search ranking.
Screenshots6.9" (1320×2868) or 6.5" (1284×2778). One set covers every iPhone. Apple ↗
Support URLA real page with contact details. Reviewers open it.
Privacy policy URLThe policy for this app. Ours once pointed at our Android policy.
App Privacy labelsMust match what the code actually sends. Then press Publish. That’s a separate step.
Age ratingAnswer the questionnaire honestly. Apple expanded it in 2025 with 13+, 16+ and 18+.
Pricing and availabilitySet 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 InformationDemo login, a contact phone number (required), notes on where things are, and an optional demo video.
Version releasePick manual if you want to choose launch day.

06Validate, then submit

Terminal
asc validate --app "APP_ID" --version "1.0" --platform IOS --output table

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.

07If you get rejected

  • Find the exact guideline number in the message.
  • Reply in App Store Connect before you upload anything. Many 2.1 and metadata issues clear up with a reply alone. Only upload a new build if the problem is in the code.
  • Let Claude draft the reply, then check every sentence against the build. Reviewers test what you claim. We cut the word “voting” from ours because the app doesn’t have voting.
  • If you’re still stuck, you get one appeal to the App Review Board per rejection.

08When you’re approved

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.

What to keep in check

The two rejections we got
First release
Guidelines 2.1, 5.1.1(i), 5.1.2(i)
What happened

User photos went to OpenAI or Gemini with no in-app consent. Apple sent six questions about face data.

The fix

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.

An update
Guideline 4.3(b), spam
What happened

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.

The fix

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.

Before every submission

0 of 12

Prompts we use

Audit

Audit this app against App Review Guidelines 2.1, 4.3, 4.8, 5.1.1 and 5.1.2. List anything that could get it rejected, with file and line.

Privacy labels

List every piece of user data that leaves the device: what it is, where it goes, and whether it’s tied to the account. Turn that into App Privacy answers.

Listing

Write the App Store name (30), subtitle (30) and keywords (100, no spaces, no repeated words). Lead with what only this app does, not the category.

Rejection reply

Here’s the rejection. Draft a reply to App Review. Every claim must be true in the current build. Flag any sentence I need to verify.

Give this guide to your agent Copies it as Markdown, with a short brief on top. Paste it into Claude Code, Cursor or Codex.
Know someone shipping their first app? Send on WhatsApp
Built with this guidefit. Try it on before you buy it. App Store ↗
One email when a new guide ships.