The App Store submission process has a lot of steps, and the official documentation makes each one sound more complicated than it is. This is the straight version — what you actually need to do, in order, with the gotchas called out.
I submitted my first app (RDR2 Companion) in April 2026. It was approved on the first try. Here's what worked.
Before You Start: The Prerequisites
- Apple Developer Program membership — $99/yr at developer.apple.com. Required. No workaround.
- A working app — obvious, but: test it on a real device, not just the simulator. The review team uses real hardware.
- App icon at 1024×1024 px — PNG, no transparency, no rounded corners (Apple applies them). No alpha channel. Xcode will reject it otherwise.
- An App Store Connect account — automatically created when you join the Developer Program. Log in at appstoreconnect.apple.com.
Step 1: Archive Your App in Xcode
An Archive is a release build of your app — optimized, signed, and ready for distribution.
- In Xcode, set the scheme target to Any iOS Device (arm64) (not a simulator)
- Product menu → Archive
- Xcode builds and opens the Organizer window
If the Archive option is grayed out, you're still targeting a simulator. Switch the device target first.
Signing: Xcode handles signing automatically if you enable "Automatically manage signing" in your target's Signing & Capabilities tab. Use your Apple Developer account and let Xcode create provisioning profiles for you. Don't manually manage certificates unless you have a specific reason.
Step 2: Upload to TestFlight
TestFlight is Apple's beta testing platform. Even if you don't need beta testers, you still upload through TestFlight — it processes your build and makes it available for App Store submission.
- In Organizer (after Archive) → click your build → Distribute App
- Choose TestFlight & App Store
- Keep all defaults, click Distribute
- Upload takes 2–10 minutes depending on your connection
- Processing in App Store Connect takes another 5–15 minutes
Once processed, you can share the TestFlight link with beta testers — or go straight to App Store submission.
Step 3: Prepare Your App Store Listing
This is where you spend the most time. Log into App Store Connect → My Apps → click your app → prepare for submission.
Screenshots — the most annoying part
Apple requires screenshots in specific sizes. The minimum required is iPhone 6.7" display. If you also support iPad, add iPad screenshots.
| Device | Size (px) | Required? |
| iPhone 6.7" (16 Pro Max) | 1290 × 2796 | ✓ Required |
| iPhone 6.5" (older Max) | 1242 × 2688 | Optional (6.7" covers it) |
| iPad Pro 13" | 2064 × 2752 | If iPad support |
| iPad Pro 12.9" (older) | 2048 × 2732 | If iPad support |
You need 1–10 screenshots per device size. Make them count — they're the first thing a potential buyer sees.
How to take App Store screenshots
The easiest method: run your app in the iOS Simulator, set the device to the right model, and use screenshot tools.
xcrun simctl io booted screenshot ~/Desktop/screenshot-1.png
Simulator screenshots come out at the right pixel dimensions. You can add text/branding on top using any image editor (Preview on Mac works fine for basic overlays).
Tip: Your screenshots should show the best screens of your app, not the onboarding flow. Show the core experience — the main chat interface, a results screen, something that makes someone want to download it.
App name and description
The App Name is limited to 30 characters. Choose carefully — it's hard to change later without losing search ranking.
For the description, the first 3 lines appear before "more" — make them count. Lead with what the app does, not who made it.
Keywords
You get 100 characters for keywords (comma-separated). Think about what someone would search when they want what your app does. Don't repeat words already in your title.
Category
Pick the most specific category that fits. For a game companion app, "Games" utilities sub-category or "Reference" both work. Get the primary category right — it affects discoverability.
Step 4: Privacy Labels (App Privacy)
This is the section that confuses most first-timers. Apple requires you to declare what data your app collects.
If you built your app with the proxy pattern (app doesn't collect or store anything), select "Data Not Collected" and you're done. This is genuinely the right answer if:
- You don't have user accounts
- You don't track analytics tied to users
- Your backend is a pass-through proxy that doesn't log conversations
- You don't use third-party analytics SDKs (like Firebase Analytics)
Plausible Analytics is cookie-free and doesn't collect personal data. If you use Plausible on your website (not in your app), that doesn't affect your app's privacy label. If you add analytics to the app itself, check whether it requires a "Data Used to Track You" disclosure.
Step 5: Age Rating
Answer the questionnaire honestly. For a general game companion app with no user-generated content and no purchasing features, you'll typically land at 4+ (all ages).
The questions ask about: violence, mature content, gambling, in-app purchases with randomization. Answer what actually applies to your app.
Step 6: Submit for Review
Once all required fields are complete, you'll see a Submit for Review button. Click it.
What happens next:
- Your app enters the review queue (usually 24–48 hours)
- A reviewer tests it on a real device
- You get an email: approved or rejected with a reason
Common rejection reasons (and how to avoid them)
- Metadata rejection — screenshots don't match the app, placeholder text left in description. Review carefully before submitting.
- Guideline 2.1 — Crashes — the reviewer's device crashed. Test on multiple devices and iOS versions before submitting.
- Guideline 4.0 — Design — app is too simple, or resembles a website wrapper. Make sure there's genuine native functionality.
- Guideline 5.2 — Intellectual Property — using trademarked names (game titles, brand names) in your app name. This is a real risk for game companion apps — consider a more generic name for the store listing.
On trademark (5.2): Game companion apps can reference games in their description and functionality, but putting trademarked game names prominently in the app title risks a 5.2 rejection. Consider naming your app with your own brand (like "Aether AI: Outlaw Companion") rather than the exact game title. In-app AI content can freely reference the game.
After Approval: Version Updates
Once your app is live, updates follow the same process: Archive → Upload → Submit for Review. Updates are reviewed faster than new apps — often approved same-day.
A few things that speed up the process:
- Be specific in "What's New in This Version" — reviewers read it
- For bug-fix only updates, say so — they tend to sail through
- Keep a TestFlight version ahead of the App Store version for testing
The Complete Submission Checklist
- Apple Developer Program membership active ($99/yr)
- App icon at 1024×1024 px PNG (no transparency)
- Archive created in Xcode targeting Any iOS Device
- Build uploaded to App Store Connect via TestFlight
- App name ≤ 30 characters
- Description written (first 3 lines are the hook)
- Keywords filled (100 char limit)
- Category selected
- iPhone 6.7" screenshots (1290×2796 px, at least 1)
- Privacy labels completed (accurately)
- Age rating questionnaire answered
- Support URL set (your website works)
- Tested on a real device, not just the simulator
- No placeholder text or lorem ipsum anywhere