上架流程

没有自己的 Mac,
怎么把 App 上架 App Store

上架 App Store 有几个步骤离不开 macOS:生成签名证书、Archive 归档、上传构建。没有自己的 Mac,可以用远程租用或云端的 Mac 完成这些环节,其余工作在 App Store Connect 网页上进行。这篇按顺序梳理开发者账号、证书与描述文件、Archive、上传方式、TestFlight 与审核,标明每一步在哪里完成。

三万主机 · 更新于

01 / ACCOUNT

第一步:开发者账号与 App 记录

上架需要加入 Apple Developer Program,个人或公司(组织)均可,年费和所需材料以 Apple Developer Program 官网 为准。注册和付款可以在网页或 Apple Developer App 上完成,不需要 Mac。

账号生效后,先在 Certificates, Identifiers & Profiles 中注册 App ID(即 Bundle ID,例如 com.example.myapp),再到 App Store Connect 的「App」里新建一条 App 记录,选择这个 Bundle ID。计划在中国大陆商店上架时,还需要按要求提供 App 备案信息,具体字段以 App Store Connect 的提示为准。

02 / SIGNING

第二步:证书与描述文件

上架构建需要两样东西:一张 Apple Distribution 证书(私钥保存在生成它的那台 Mac 的钥匙串里),以及一个 App Store 类型的描述文件(Provisioning Profile),把证书、App ID 和能力(推送、iCloud 等)绑在一起。

  • 最简单:在远程 Mac 的 Xcode 中登录开发者账号,勾选 Automatically manage signing,Xcode 会自动创建证书和描述文件。
  • 手动方式:在 Mac 上用「钥匙串访问 → 证书助理 → 从证书颁发机构请求证书」生成 CSR,到开发者网站创建证书并下载安装,再创建描述文件。
  • 团队或 CI:用 fastlane match 把证书和描述文件加密存放在私有仓库,任何一台构建机都能拉取。

提醒:如果证书是在一台租用的 Mac 上生成的,记得把证书连同私钥导出为 .p12 并妥善备份。机器退租后私钥就无法找回,只能吊销重建。

03 / ARCHIVE

第三步:在 Mac 上 Archive

通过屏幕共享打开 Xcode,选择目标设备为 Any iOS Device,执行 Product → Archive。完成后 Organizer 会列出这次归档。习惯命令行的话,也可以在 SSH 里执行:

xcodebuild -workspace MyApp.xcworkspace -scheme MyApp \
  -configuration Release -destination 'generic/platform=iOS' \
  -archivePath build/MyApp.xcarchive archive

xcodebuild -exportArchive -archivePath build/MyApp.xcarchive \
  -exportOptionsPlist ExportOptions.plist -exportPath build/ipa

每次上传的构建号(CFBundleVersion)必须大于之前上传过的同版本构建。Flutter、React Native、uni-app 项目也是在这一步进入 Xcode,参见 Flutter、React Native 和 uni-app 的对应指南。

04 / UPLOAD

第四步:上传构建的几种方式

方式适合场景说明
Xcode Organizer手动发版选中归档 → Distribute App → App Store Connect,会顺带做签名校验
Transporter已有 IPAApple 在 Mac App Store 提供的上传工具,拖入 IPA 即可
fastlane自动化 / CIupload_to_testflight 或 deliver,配合 API Key 无需登录 Apple ID
altool旧脚本其公证功能已由 notarytool 取代;用于上传 App 的现状请以 Apple 当前文档为准

在自动化场景下,推荐在 App Store Connect 的「用户和访问 → 集成」中创建 API Key(.p8 文件),在构建机上用它认证。密钥只能下载一次,应保存到密码管理器或 CI 的 Secrets 中。

05 / REVIEW

第五步:TestFlight 测试与提交审核

构建上传后需要等待 App Store Connect 处理,完成后出现在 TestFlight 页面。内部测试员(团队成员)可以直接安装;外部测试员需要先通过一次 Beta 版审核。测试员在 iPhone 上安装 TestFlight App 即可收到测试版,这也是远程 Mac 方案下做真机验证的主要方式。

正式提交前,在 App Store Connect 准备好:各尺寸截图、描述与关键词、隐私政策网址、App 隐私(数据收集)问卷、年龄分级、审核联系人与测试账号。选择构建后点击提交审核。审核标准见 App Store 审核指南。

整个流程中真正需要 Mac 的只是签名、Archive 和上传。发版不频繁时,按月租一台 Mac mini 用于这几步即可;发版频繁可以把它配置成 自动构建机。

FAQ

常见问题

个人开发者账号和公司账号有什么区别?

个人账号在 App Store 上显示个人姓名,公司账号显示公司名称,并且需要邓白氏编码(D-U-N-S Number)完成组织验证。公司账号可以在团队里给成员分配不同角色。年费和注册要求以 Apple Developer 官网为准。

在远程 Mac 上登录 Apple ID 安全吗?

可以不登录。签名证书可以用 fastlane match 等工具同步,上传可以用 App Store Connect API Key,整个流程不需要在机器上保存 Apple ID 密码。若在 Xcode 里登录了账号,退租前记得在 Xcode 设置中移除账号并清理钥匙串。

审核被拒了需要重新上传吗?

看拒绝原因。如果是元数据问题(截图、描述、隐私信息),在 App Store Connect 修改后直接回复审核即可;如果涉及代码或功能,需要修复后提高构建号重新上传,再选择新构建提交。

微信
微信客服二维码扫码加微信客服手机上长按二维码识别
Telegram 客服