之前团队一直用一台 Mac mini 专门跑上架,谁要发版就排队连过去。有次那台机器送修,一个用 uni-app 打的包卡着发不出去,才认真去找不依赖 Mac 的苹果上架工具。找下来发现这条路上的方案不少,各自适合的场景差别挺大,这里把踩过的几种梳理一下。
Xcode Organizer:官方但绑死 Mac
最标准的路子是 Xcode 的 Organizer,Archive 之后直接 Distribute App 上传。它和证书、描述文件的联动最顺,签名问题基本不用自己操心。代价是必须有 Mac------Xcode 只跑在 macOS 上,Windows 和 Linux 用户从第一步就被挡住。如果你的项目是纯原生 Swift/OC、团队本来就人手一台 Mac,用它没什么可挑的。问题出在跨平台技术栈上:Flutter、uni-app、React Native 打出来的包,很多开发机是 Windows,为了上传单独维护一台 Mac 成本不低。
Transporter:还是要 Mac
Transporter 是 Application Loader 停用后苹果给的替代品,从 Mac App Store 下载,把 .ipa 拖进去就能传。它比 Xcode 轻,适合"包已经在别处打好、只差上传"这一步。但它同样只有 macOS 版本,Windows 上根本装不了。所以它解决的是"上传界面简化"的问题,没解决"必须有 Mac"这个前提。
fastlane:适合 CI,配置有门槛
fastlane 的 deliver 和 pilot 能把上传、截图、元数据全自动化,接进 CI 之后每次发版跑一条命令就行。团队规模大、发版频繁的话,这套自动化能省很多重复操作。门槛在于它跑 upload 那部分底层仍依赖 macOS 环境(altool/xcrun),CI 上得挂 Mac 节点;配置 Fastfile、Appfile、match 证书管理也需要一定学习成本。适合已经有 Mac CI、愿意投入搭自动化的团队,不太适合"我就想在自己 Windows 上把这个包传上去"的个人开发者。
Appuploader:Windows / Linux 直接传
Appuploader 走的是另一条路------不需要 Mac,Windows、Linux、Mac 上都能把 IPA 传到 App Store。实际操作分几步:在提交上传界面选好编译生成的 IPA 文件,右上角挑上传通道(工具给了 1、2、3 和老通道四个,网络不好时切老通道或换热点重试),然后填 Apple 的上传专用密码,点上传,等苹果的反馈邮件就行。上传专用密码是在 Apple ID 后台生成的应用专用密码,用来做身份验证,不用把主密码交给工具。
它还把上架前置的几件事一起做了------不需要钥匙串助手,输入证书名称、邮箱和密码就能在 Windows 上创建 iOS 开发和发布证书,申请出来的证书能在不同电脑间共用,团队协作时不用各自重复申请。描述文件、Bundle ID、测试设备 UDID 也在同一个界面里管理,UDID 能自动读取当前连电脑的设备。App Store 截图和多语言元数据支持批量上传,省掉一张张手动传的功夫。有一点要注意:上传发布功能只对已支付 99 美元(国内 688 元)的正式开发者账号开放,免费 Apple ID 只能建开发证书做内测,传不上架。
如果要接 CI,它也有命令行版本,一条命令搞定:
appuploader_cli -u abc@icloud.com -p xxx-xxx-xxx-xxx -c 1 -f a.ipa
-u 是 Apple 账号,-p 是上传专用密码,-c 指定通道,-f 指定 IPA 文件。这条命令在 Windows、Linux 上都能跑,不用挂 Mac 节点。
怎么选
有 Mac、纯原生项目,Xcode Organizer 顺手就够了。包已打好只差上传、手上有 Mac,Transporter 最省事。团队大、有 Mac CI 想全自动化,fastlane 值得投入。开发机是 Windows/Linux、跨平台框架打的包,或者不想为上架单独养一台 Mac,Appuploader 这类苹果上架工具能把证书、描述文件、上传串起来在非 Mac 环境完成。多数团队的做法是混着用------本地开发用 Xcode,发版环节按机器情况挑一个合适的上传方案。