前两周帮一个做跨平台 App 的团队处理上架,代码、打包、测试都搞定了,卡在最后一步:怎么把 IPA 送到 App Store。团队里没人用过 Mac,翻了不少帖子都默认你有 Xcode,这步门槛其实没那么高。把整条 iOS 应用上架 App Store 的完整流程拆开看,就是注册账号、制作证书、创建描述文件、配置 Bundle ID、打包、上传、等审核这几个环节,每个环节都有明确的操作,下面按顺序过一遍。
注册开发者账号
注册开发者账号是第一步,个人和公司账号年费都是 99 美元,注册时用 Apple ID 登录开发者网站,同意协议就能开通。公司账号还要准备 D-U-N-S 编码。免费账号能创建开发证书、做内测,但没法提交上传发布,也不能用 Apple 登录、支付、推送这些能力,正式上架必须升级付费账号。
制作证书
证书是打包和上架的通行证,分开发证书(iOS App Development)和发布证书(iOS Distribution)两种,生成的文件是 P12 格式。在 Mac 上这步要打开钥匙串助手,请求证书签发请求文件再传到开发者后台,跨平台团队用 **Appuploader **的话,在 Windows 上输入证书名称、邮箱和密码就能直接生成,不用碰钥匙串,证书还能同步到不同电脑使用,多人协作时省不少事。注意证书密码要记住,打包签名时要当私钥密码用,忘了只能重新生成。

创建描述文件
描述文件把应用和证书、设备绑定在一起,类型选 App Store 是发布用,选 Development 是开发测试用。创建时先要有 Bundle ID,一个应用对应一个描述文件,多个应用可以共用一个证书。做开发类型时要把测试设备加进描述文件,不然编译好的应用装不上手机,报错多半是设备没关联,更新描述文件重新编译就好。
打包 IPA
打包环节,Xcode 用户直接 Archive 导出 IPA;跨平台项目用 HBuilder、Flutter 这些工具打包也没问题,产物都是 IPA 文件,关键是签名用的证书和描述文件要选对,打包时填入 P12 的私钥密码。

上传到 App Store
上传是很多人卡住的地方。Xcode 里可以用 Organizer 上传,Mac 上还有 Application Loader,但这两个都依赖 Mac 环境。Appuploader 在 Windows、Linux、Mac 上都能直接上传:选择 IPA 文件,设置 Apple 专用密码(不是账号密码,去 appleid.apple.com 的账号安全里生成),再选上传通道(1、2、3 和老通道),网络受限时切换通道或者换移动热点重试。命令行用户还能用 appuploader_cli 上传,参数指定账号、专用密码和 IPA 路径,适合集成进发布脚本,流程固定后全自动。
提交审核
上传过程中有两个常见坑。一个是报错 ERROR ITMS-90189 版本号重复,检查 build 版本号是不是和之前上传过的撞了,换一个递增的版本号重新打包再传;另一个是上传成功后 App Store Connect 里迟迟看不到构建版本,先等几分钟再刷新页面,或者确认上传用的账号和创建 App 记录的账号是不是同一个,两边账号不一致也会导致版本不显示。

版本出现后,可以先发 TestFlight 内测一轮,再填写审核信息提交。审核周期不定,快的一两天,慢的一周,提交前备好隐私政策链接、测试账号、权限用途说明这些材料,能少几次被拒后往返修改。
整条 iOS 应用上架 App Store 的流程走下来,真正绕不开 Mac 的环节没有------打包在跨平台工具里完成,证书、描述文件、上传都有对应的跨平台方案。把每个环节用的工具定下来,第一次上架之后,后面每次发版就是重复这条链路。