Runbook • App Store • iOS, iPadOS and CarPlay

Publish your radio station's iPhone app to the App Store

Publish the station's radio app on the App Store from your own Apple Developer account. The panel hands you a complete Xcode project: no CocoaPods, no Swift packages, nothing to fetch. You sign it with your team on a Mac, archive it, upload it to App Store Connect and pass App Review. CarPlay is an entitlement Apple grants separately, on a form that asks for the app's App Store page, so it arrives in a later version.

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. App Store Connect's mandatory slots are iPhone with Dynamic Island (medium display) at 1206 × 2622 or 1179 × 2556 px and iPad 13-inch display at 2064 × 2752 or 2048 × 2732 px. Run the app on an iPhone 18 Pro or 17 Pro simulator (a Pro Max renders at the large-display size, which that slot rejects) and on an iPad Pro 13-inch, and capture with the screenshot control below the device view (Simulator File → Save Screen on older Xcode). Files are saved to the Desktop.
  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, naming the audio content the app plays. The form asks for the app's App Store page, so file it once the first version is live. 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.

Frequently asked questions about publishing a radio app to the App Store

When CarPlay can be requested, what a Mac is needed for, what a reviewer has to be shown, and where an archive goes.

Can the first version ship with CarPlay?

No. CarPlay audio needs the com.apple.developer.carplay-audio entitlement on your team, and Apple's request form asks for the app's App Store page, which exists only once a version is live. So the order is: submit without CarPlay, get approved, then have the Account Holder file the request under the audio category - step 9. Replies commonly take one to three weeks. Until it is granted, leave the panel's CarPlay switch off: a CarPlay project fails automatic signing on a team whose provisioning profile lacks the entitlement. Once granted, switch it on, rebuild iOS, archive and submit that as a new version. CarPlay then draws the Live list, Podcasts and Now Playing in the car's own interface. Android Auto is distribution rather than entitlement, in the Google Play runbook.

Do I need a Mac to publish the iPhone app?

Yes, for the archive and the upload. Xcode runs on macOS only, and iOS is the one platform that arrives as source: the panel builds a complete Xcode project, and signing, Product → Archive and Distribute App happen on a Mac running Xcode 26 or later. Everything after the upload is browser work in App Store Connect, from any machine. No Apple certificates or keys of your own are needed beyond the developer account, because automatic signing creates them. The Android app needs no desktop at all - its App bundle arrives signed and is uploaded from a browser.

Will App Review accept an app that plays a radio stream?

Two guidelines decide it. 4.2.6 refuses apps generated from a template unless the content provider submits them, which is why you publish under the station's own account and we never publish for you. 5.2.3 lets a reviewer ask for evidence that you hold the right to stream your music, so keep the licensing documentation to hand. Minimum functionality is the third question, and the build answers it: every stream on the plan with a quality picker and a data saver on cellular, reconnects after drops and network changes, lock screen and Control Center controls, the schedule when the station publishes one, podcasts from your RSS feeds, recently played, liked songs, a sleep timer with fade-out, AirPlay, and VoiceOver labels. Describe those in the version description and in the App Review notes rather than leaving a reviewer to find them.

Product → Archive finished - where is the build?

In the Xcode Organizer, under Window → Organizer → Archives, which opens by itself on a finished archive. Select it and use Distribute App → App Store Connect to upload. Two things catch people out: Archive is unavailable while the run destination is a simulator, so set Any iOS Device (arm64) first - step 5; and an uploaded build is not instantly selectable, because App Store Connect processes it and emails you when it is done. The processed build then has to be attached to the version page by hand, under Build, before Add for Review will accept the version. What each build contains is on the radio station app page.

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