做过 iOS 上架的应该都有体会,Xcode 里提交 IPA 的流程是 Archive → Organizer → Distribute App → Upload,每一步都要加载各种校验,网络不稳定的时候经常卡在上传阶段,失败了又得从头来。但 IPA 在打包阶段其实已经用发布证书签好了,上传本质上只是文件传输操作,不一定非要经过 Xcode。如果不装 Xcode、或者想在 Windows 或 Linux 上提交,也有几条路可以走。
Application Loader 和 Transporter
Apple 官方提供了一个独立的 Mac 应用 Transporter(早期叫 Application Loader),专门用来上传 IPA 到 App Store。不需要打开 Xcode,把 IPA 文件拖进去就能上传。界面很简洁,没有 Archive 和校验那一整套流程。缺点是只能在 macOS 上运行,Windows 和 Linux 都用不了。
Transporter 还有些使用上需要注意的地方。上传成功后,iTunes Connect 上的构建版本通常要等几分钟到十几分钟才会出现,有时会遇到上传成功但构建版本迟迟刷不出来的现象,一般等一等或者重新上传一次能解决。Apple 开发者账号需要开通双因素认证,上传前要先在 Apple ID 页面生成应用专用密码,用账号密码是登不上的。
AppUploader 桌面端
AppUploader 在 Windows、Mac 和 Linux 上都能用。上传操作比较直接:在提交上传界面选择 IPA 文件,在右上角选择上传通道(提供四种通道,网络环境不好时可以切换),输入 Apple 账号和专用密码,点击上传就行。如果因运营商限制或网络问题上传失败,可以切换到老通道或换移动热点重试。
AppUploader 还提供命令行版本,适合集成到 CI/CD 流程中。命令格式:appuploader_cli --upload-app -f Payload.ipa -u user@example.com -p xxxx-xxxx-xxxx-xxxx --type ios,指定 IPA 文件、Apple 账号和专用密码即可上传。命令行版比界面版更稳定,可以嵌入 Jenkins、GitHub Actions 等自动化流水线。界面版每次要手动选文件点上传,命令行版写好脚本以后一键执行。
不过 AppUploader 的上传功能只支持付费开发者账号(688 元/年),免费账号无法提交上架。如果上传时提示"您账号未支付 688 给 Apple",说明当前账号是免费类型,只能用于开发测试。
需要注意的点
上传前确保 IPA 已经用发布证书签好名,用开发证书打的包无法提交上架。IPA 的 Bundle ID 必须与 App Store Connect 里创建的应用一致。上传成功后如果 iTunes Connect 没有显示构建版本,可能是网络延迟或者 App 的 Info.plist 配置问题,等十几分钟后再刷新看看就行。如果始终不出现,检查 IPA 是否包含 bitcode、架构支持是否完整(至少包含 arm64)。
选哪个
有 Mac 的话 Transporter 最省事。需要跨平台上传 IPA 或集成到自动化流程,AppUploader 桌面端和命令行版更灵活。两种方式都不需要装 Xcode。