Skip to content

iOS — Build to App Store

1. Build in GemShell

Enable iOS in Target Platforms, configure your project settings, and click Build.

After the build completes, the Deploy tab shows an "Open in Xcode" button. Click it to open the generated Xcode project.

2. Apple Developer Account

You need an Apple Developer Program membership ($99/year) to distribute on the App Store.

Sign in at developer.apple.com and register your Bundle ID under Certificates, Identifiers & Profiles → Identifiers.

3. Sign in Xcode

Open your project in Xcode (App.xcworkspace, not App.xcodeproj).

  1. Select the App target in the project navigator
  2. Go to Signing & Capabilities
  3. Check Automatically manage signing
  4. Select your Team from the dropdown

Xcode will create the provisioning profile automatically.

Bundle ID

Must match what you set in GemShell's Settings. Format: com.yourname.mygame

4. Test in Simulator

Click the Run button (▶) in Xcode to launch in the iOS Simulator. You can also use the "Run in iOS Simulator" button in GemShell's Build Success modal.

For physical device testing, connect your iPhone/iPad and select it as the build target.

5. Archive & Upload

Create an Archive

  1. In Xcode, select Any iOS Device (arm64) as the destination (not a simulator)
  2. Product → Archive
  3. Xcode builds and opens the Organizer window

Upload to App Store Connect

  1. In the Organizer, select your archive and click Distribute App
  2. Choose App Store Connect → Upload
  3. Follow the wizard — leave defaults unless you know what you're changing
  4. Click Upload

App Store Connect

Manage your app at appstoreconnect.apple.com. You'll need to create the app listing before uploading.

6. Submit for Review

In App Store Connect:

  1. Go to My Apps → Your App → + (new version)
  2. Fill in: description, keywords, screenshots (required for each device size), support URL
  3. Under Build, select the uploaded build
  4. Click Submit for Review

Apple's review typically takes 1–3 business days.

Required Screenshots

Apple requires screenshots for:

  • 6.9" iPhone (iPhone 16 Pro Max)
  • 6.5" iPhone (iPhone 15 Plus) — or 6.9" covers this
  • iPad Pro 13" (if supporting iPad)

Use the Simulator + Cmd+S to capture, or Screenshot Creator.

Orientation

GemShell automatically patches Info.plist and AppDelegate.swift based on your window dimensions:

  • Width > Height → Landscape
  • Width ≤ Height → Portrait

You can override this manually in Xcode under the App target → General → Deployment Info.

App Icons

GemShell uses @capacitor/assets to generate all required icon sizes from your project icon. If no icon is set, the GemShell icon is used as a placeholder — replace it before publishing.