Runbook • App Store • iOS、iPadOS 和 CarPlay

将您电台的 iPhone 应用发布到 App Store

从您自己的 Apple Developer 账户将电台广播应用发布到 App Store。控制面板会交给您一个完整的 Xcode 项目:无需 CocoaPods、无需 Swift 包、无需拉取任何内容。您在 Mac 上用自己的团队签名,归档,上传到 App Store Connect 并通过 App Review。CarPlay 是 Apple 单独授予的一项权限,申请表单会要求提供应用的 App Store 页面,因此它会出现在后续版本中。

Apple Developer Program:每年 $99 Xcode 26 或更高版本,运行于 macOS iOS 16 及更高版本,iPhone 和 iPad

操作步骤

标签以 2026 年的 Xcode 26 和 App Store Connect 为准。Apple 会在版本之间重命名界面;每一步都会说明该界面的用途。

1

注册 Apple Developer Program

  1. 使用电台长期控制的 Apple Account 在 developer.apple.com/programs 注册。
  2. 以个人身份注册(App Store 会显示您的个人姓名作为销售者)或以组织身份注册(显示法律实体名称;需要其 D-U-N-S 编号)。
  3. 支付 $99 年费。审批可能需要几天,组织通常更久。
2

准备 Xcode

  1. 从 Mac App Store 免费安装 Xcode。
  2. 使用 Xcode 26 或更高版本:自 2026 年起,App Store Connect 会拒绝基于早于 iOS 26 的 SDK 构建的上传。
  3. 在 Xcode → Settings → Accounts 下添加您的开发者账户,以便自动签名能够创建证书和描述文件。
3

打开项目并设置团队

  1. 从面板下载 Xcode 项目(.zip)并解压。
  2. 打开 StationApp.xcodeproj。
  3. 选择 StationApp target 并打开 Signing & Capabilities。
  4. 保持 Automatically manage signing 开启,并选择您的 Team。Bundle identifier 已由 Config/Station.xcconfig 预设;Xcode 会在您的团队上将其注册为 App ID。

不要改动构建设置。所有与电台相关的内容都位于 Config/Station.xcconfig 中,该文件由生成器写入,手动编辑会与面板下次构建的内容产生偏差。

4

创建 App Store Connect 记录

  1. 在 appstoreconnect.apple.com 上,前往 Apps,然后 + → New App。
  2. 平台选择 iOS;名称不超过 30 个字符;选择主要语言。
  3. 选择第 3 步中注册的 bundle ID,并输入 SKU:一个您自行选择的内部参考编号,不会公开展示。

如果菜单中没有该 bundle ID,请在 developer.apple.com 的 Certificates, Identifiers & Profiles → Identifiers 下手动注册,并从面板复制该值。

5

归档并上传构建

  1. 将运行目标设置为 Any iOS Device (arm64)。
  2. Product → Archive。Organizer 会打开新的归档。
  3. Distribute App → App Store Connect,接受默认选项。
  4. 等待处理;完成后构建会出现在 App Store Connect 中,Apple 会发送一封电子邮件。

出口合规:Info.plist 将 ITSAppUsesNonExemptEncryption 设为 NO,因此处理后的构建不应在加密问题上等待。

6

完善列表元数据

  1. App Information:副标题(可选)和主要类别,通常为 Music。对于内容权利,声明该应用流式播放您自己的广播。
  2. Pricing and Availability:免费层级,以及您希望覆盖的地区。
  3. App Privacy:输入生成的隐私政策 URL,然后声明该应用不收集数据。列表会显示 Data Not Collected,这与编译进构建的隐私清单一致。
  4. Version metadata:描述、关键词、支持 URL、版权以及处理后的构建。
  5. Screenshots:目标设备系列为 iPhone 和 iPad,因此两组截图都是必需的。App Store Connect 的必填槽位为带灵动岛的 iPhone(中等显示屏),尺寸为 1206 × 2622 或 1179 × 2556 px,以及 13 英寸 iPad 显示屏,尺寸为 2064 × 2752 或 2048 × 2732 px。在 iPhone 18 Pro 或 17 Pro 模拟器上运行应用(Pro Max 会以大显示屏尺寸渲染,该槽位会拒绝),并在 13 英寸 iPad Pro 上运行,然后使用设备视图下方的截图控件进行截取(旧版 Xcode 上为 Simulator File → Save Screen)。文件会保存到桌面。
  6. Age rating:根据您的节目内容完成 Apple 的问卷。

App Store 图标从构建的资源目录中读取;App Store Connect 没有单独的图标上传。

7

填写 App Review 信息

  1. 在 App Review Information 下,输入一个可联系到的联系人。
  2. 取消勾选 Sign-in required:该应用没有账户,因此无需提供演示凭据。
  3. 使用 Notes 将应用描述为电台的官方播放器,用于其直播流、节目表和播客;如果您不是连续播出,请提供您的播出时段。
  4. 准备好音乐授权文件。审核人员可能会根据准则 5.2.3 要求提供您有权流式播放音乐的证据。

准则 4.2.6:Apple 会拒绝由模板生成的应用,除非内容提供者自行提交。从电台自己的开发者账户提交是合规路径,这也是面板从不代您发布的原因。

8

提交

  1. 在版本页面上,点击 Add for Review,然后 Submit to App Review。
  2. 大多数审核会在几天内完成。问题会出现在 App Store Connect 中,通常无需新构建即可在那里回答。
  3. 获批后,可手动发布或让版本自动发布。
9

申请并启用 CarPlay

CarPlay 音频应用需要在您的团队上拥有 com.apple.developer.carplay-audio 权限,该权限只能由 Apple 授予。

  1. 团队的 Account Holder 在音频类别下提交 Apple 的 CarPlay 权限申请,说明应用播放的音频内容。表单会要求提供应用的 App Store 页面,因此请在第一个版本上线后再提交。回复通常需要一到三周。
  2. 在此之前,请保持面板的 CarPlay 开关关闭。在没有该权限的团队上,CarPlay 项目会因描述文件缺少该权限而导致自动签名失败。
  3. 一旦获批,请启用面板上标有“Apple 已批准我的应用使用 CarPlay”的开关,重新构建 iOS 并下载新项目。它会切换到 CarPlay Info.plist 和权限文件。
  4. 按第 5 步归档并上传,创建一个与面板中构建所示版本匹配的新 App Store 版本,附加构建并提交。

更新:同样的流程,从重新构建到提交。电台的 feed 承载直播流、节目表、播客和链接,因此这些内容都不需要新版本。

关于将广播应用发布到 App Store 的常见问题

何时可以申请 CarPlay、为什么需要 Mac、需要向审核人员展示什么,以及归档文件去了哪里。

第一个版本可以附带 CarPlay 吗?

不可以。CarPlay 音频需要在您的团队上拥有 com.apple.developer.carplay-audio 权限,而 Apple 的申请表单会要求提供应用的 App Store 页面,该页面只有在版本上线后才存在。因此顺序是:先不带 CarPlay 提交,获得批准,然后由 Account Holder 在音频类别下提交申请——第 9 步。回复通常需要一到三周。在获批之前,请保持面板的 CarPlay 开关关闭:在描述文件缺少该权限的团队上,CarPlay 项目会导致自动签名失败。一旦获批,请打开开关,重新构建 iOS,归档并作为新版本提交。之后 CarPlay 会在汽车自带界面中显示 Live 列表、Podcasts 和 Now Playing。Android Auto 属于分发而非权限,请参阅 Google Play runbook。

发布 iPhone 应用需要 Mac 吗?

是的,用于归档和上传。Xcode 只能在 macOS 上运行,而 iOS 是唯一以源代码形式提供的平台:面板会构建一个完整的 Xcode 项目,签名、Product → Archive 和 Distribute App 都在运行 Xcode 26 或更高版本的 Mac 上完成。上传之后的一切都是在 App Store Connect 中的浏览器操作,任何机器都可以。除了开发者账户之外,您不需要自己的 Apple 证书或密钥,因为自动签名会创建它们。Android 应用完全不需要桌面设备——其 App bundle 已签名,可直接从浏览器上传。

App Review 会接受播放广播流的应用吗?

由两条准则决定。4.2.6 拒绝由模板生成的应用,除非内容提供者自行提交,这就是为什么您要在电台自己的账户下发布,而我们从不代您发布。5.2.3 允许审核人员要求提供您有权流式播放音乐的证据,因此请将授权文件放在手边。最低功能是第三个问题,而构建本身已经回答了它:套餐中的每个直播流都带有质量选择器和蜂窝数据节省模式,断线和网络变化后自动重连,锁屏和控制中心控件,电台发布节目表时显示节目表,来自您 RSS feed 的播客,最近播放,喜欢的歌曲,带淡出的睡眠定时器,AirPlay 以及 VoiceOver 标签。请在版本描述和 App Review 备注中说明这些,而不是让审核人员自己去发现。

Product → Archive 完成了——构建在哪里?

在 Xcode Organizer 中,位于 Window → Organizer → Archives 下,归档完成后会自动打开。选择它并使用 Distribute App → App Store Connect 上传。有两件事容易让人困惑:当运行目标是模拟器时,Archive 不可用,因此请先设置 Any iOS Device (arm64)——第 5 步;上传的构建不会立即可选,因为 App Store Connect 会处理它,并在完成后向您发送电子邮件。处理后的构建随后需要在版本页面的 Build 下手动附加,之后 Add for Review 才会接受该版本。每个构建包含的内容见 电台应用页面。

需要帮助?与我们在线交谈

Xcode 中的签名错误、App Review 的拒绝或缺失的 bundle ID:随时通过在线聊天发送给支持。

所有 runbook