Runbook • App Store • iOS, iPadOS and CarPlay

Shipping the iOS build to the App Store

The panel hands you a complete Xcode project: no CocoaPods, no Swift packages, nothing to fetch. You sign it with your team, archive it, upload it to App Store Connect and pass App Review. CarPlay is an entitlement Apple grants separately, so it comes last.

Apple Developer Program: $99 a year Xcode 26 or later, on macOS iOS 16 and later, iPhone and iPad

Procedure

Labels follow Xcode 26 and App Store Connect as of 2026. Apple renames screens between releases; each step names what the screen is for.

1

Enrol in the Apple Developer Program

  1. Enrol at developer.apple.com/programs using an Apple Account the station controls long term.
  2. Enrol as an individual (the App Store shows your personal name as seller) or an organization (the legal entity's name; requires its D-U-N-S number).
  3. Pay the $99 annual fee. Approval can take a few days, typically longer for organizations.
2

Prepare Xcode

  1. Install Xcode from the Mac App Store, free of charge.
  2. Use Xcode 26 or later: since 2026, App Store Connect rejects uploads built against an SDK older than iOS 26.
  3. Add your developer account under Xcode → Settings → Accounts so automatic signing can create certificates and profiles.
3

Open the project and set the team

  1. Download the Xcode project (.zip) from the panel and extract it.
  2. Open StationApp.xcodeproj.
  3. Select the StationApp target and open Signing & Capabilities.
  4. Keep Automatically manage signing on and choose your Team. The bundle identifier is preset by Config/Station.xcconfig; Xcode registers it as an App ID on your team.

Leave the build settings alone. Everything station-specific lives in Config/Station.xcconfig, which the generator writes, and editing it by hand would diverge from what the panel builds next time.

4

Create the App Store Connect record

  1. At appstoreconnect.apple.com, go to Apps, then + → New App.
  2. Platform iOS; a name of 30 characters or fewer; the primary language.
  3. Select the bundle ID registered in step 3, and enter a SKU: an internal reference of your choosing, never shown publicly.

If the bundle ID is missing from the menu, register it manually under Certificates, Identifiers & Profiles → Identifiers at developer.apple.com, copying the value from the panel.

5

Archive and upload the build

  1. Set the run destination to Any iOS Device (arm64).
  2. Product → Archive. The Organizer opens on the new archive.
  3. Distribute App → App Store Connect, accepting the default options.
  4. Wait for processing; the build appears in App Store Connect when it completes, and Apple sends an email.

Export compliance: the Info.plist sets ITSAppUsesNonExemptEncryption to NO, so processed builds should not wait on the encryption question.

6

Complete the listing metadata

  1. App Information: subtitle (optional) and primary category, typically Music. For content rights, declare that the app streams your own broadcast.
  2. Pricing and Availability: the free tier, and the territories you want.
  3. App Privacy: enter the generated privacy policy URL, then declare that the app does not collect data. The listing shows Data Not Collected, which matches the privacy manifest compiled into the build.
  4. Version metadata: description, keywords, support URL, copyright, and the processed build.
  5. Screenshots: the target device family is iPhone and iPad, so both sets are required. Run the app in Simulator on the largest iPhone and iPad models and capture with File → Save Screen.
  6. Age rating: complete Apple's questionnaire for your programming.

The App Store icon is read from the build's asset catalogue; App Store Connect has no separate icon upload.

7

Brief App Review

  1. Under App Review Information, enter a reachable contact.
  2. Untick Sign-in required: the app has no accounts, so there are no demo credentials to supply.
  3. Use Notes to describe the app as the station's official player for its live stream, schedule and podcasts, and give your on-air hours if you don't broadcast continuously.
  4. Have music licensing documentation ready. Reviewers can request evidence of the right to stream your music under guideline 5.2.3.

Guideline 4.2.6: Apple rejects apps generated from templates unless the content provider submits them. Submitting from the station's own developer account is the compliant path, and the reason the panel never publishes on your behalf.

8

Submit

  1. On the version page, Add for Review, then Submit to App Review.
  2. Most reviews conclude within a few days. Questions arrive in App Store Connect and can usually be answered there without a new build.
  3. On approval, release manually or let the version release automatically.
9

Request and enable CarPlay

CarPlay audio apps need the com.apple.developer.carplay-audio entitlement on your team, which only Apple can grant.

  1. The team's Account Holder files Apple's CarPlay entitlement request under the audio category. Responses commonly take one to three weeks.
  2. Keep the panel's CarPlay switch off until then. A CarPlay project fails automatic signing on a team without the entitlement, because the provisioning profile lacks it.
  3. Once granted, enable the panel switch labelled "Apple has approved CarPlay for my app", rebuild iOS and download the new project. It switches to the CarPlay Info.plist and entitlements file.
  4. Archive and upload as in step 5, create a new App Store version matching the version shown on the build in the panel, attach the build and submit.

Updates: same cycle, from rebuild to submission. The station's feed carries streams, schedule, podcasts and links, so none of those needs a version.

Need help? Chat with us

A signing error in Xcode, a rejection from App Review or a missing bundle ID: send it to support on chat, any hour.

All runbooks