← All guides

Publish your app on the Apple App Store

From an Expo app to the App Store without owning a Mac: developer program, cloud build, TestFlight, listing and App Review.

Time: A day of work, plus enrolment (1–14 days) and review (often 1–2 days) · Cost: $99 a year for the Apple Developer Program

Get this guide as a skill for Claude Code, Cursor or any AI coding agent.Get the skill

Use your AI as the copilot

Open your coding agent in the project folder and give it this job. Let it inspect files, run safe checks and prepare the work; you stay in control of accounts, payments, secrets and the final publish button.

Help me prepare this Expo app for Apple's App Store. Inspect the project and report its bundle ID, version, permissions, privacy-sensitive APIs, account flows, icons, build configuration and likely review gaps. Do not enrol, pay, upload a build or submit anything. Cite file paths and separate verified facts from questions I must answer.

1. Enrol in the Apple Developer Program

Sign in with an Apple Account that has two-factor authentication, choose individual or organization (an organization needs a D-U-N-S number) and pay the yearly fee. The app is listed under the name you enrol with.

2. Build in the cloud, no Mac needed

EAS signs in to your Apple account and creates certificates and profiles, then builds on Apple hardware. (Setting ios.infoPlist.ITSAppUsesNonExemptEncryption to false in app.json if your app only uses standard HTTPS avoids Apple's export-compliance prompt on every build.) Ask the AI to validate configuration first; run the authenticated build yourself.

Ask your AI:

Inspect app.json/app.config and eas.json for an App Store production build. Check the bundle ID, build number, permissions, export compliance (ITSAppUsesNonExemptEncryption), icons and production profile. Propose only required edits; do not run EAS or access an account.
npm install -g eas-cli
eas login
eas build:configure
eas build --platform ios --profile production

3. Create the app record in App Store Connect

My Apps → + → New App: platform, name (must be unique on the store), language, bundle ID (choose the bundle ID that Step 2 registered, matching app.json) and a SKU of your choice.

4. Upload the build

The build appears in App Store Connect after Apple finishes processing it, usually within the hour.

eas submit --platform ios

5. Test with TestFlight

Add yourself and up to 100 people on your team as internal testers right away. Outside testers (by email or a public link) need a short beta review first. Install the TestFlight app on the phone and run the real build.

6. Fill in the listing and privacy details

Ask the AI to draft description and keywords from real features and inventory likely data collection from code and SDKs. You provide screenshots, URLs, age rating and final App Privacy answers after checking them.

Ask your AI:

Draft App Store description and keywords using only verified features. Then create a separate privacy-question checklist from the code and dependencies, citing evidence and marking uncertainty instead of guessing.

7. Prepare for App Review

Give reviewers a demo account if there is sign-in. Ask the AI to audit common rejection risks (crashes, placeholder content, thin web wrappers and missing account deletion), then test each finding yourself. Read the current guidelines before submitting.

Ask your AI:

Audit this app for common App Review blockers. Check sign-in, account deletion, placeholder content, broken links, permissions and web-wrapper behavior. Return a prioritized checklist with file paths and manual tests.

8. Submit and release

Add the build to the version and press Submit for Review. Choose to release automatically after approval or by hand. If rejected, the message in Resolution Center says which guideline; fix it and resubmit.

Official pages

Prices and rules change. When this guide and the provider disagree, the provider is right.

Learn to build the thing you are publishing: see the courses →

Publish your app on the Apple App Store: a step-by-step guide · Vibe to Dev