第一次 iOS App 上架的时候,最容易卡住可能是,不知道该先弄证书还是先建 App,结果传 ipa 传到一半提示描述文件类型不对;好不容易传上去了,回到提交页一看,构建版本列表又是空的。按时间顺序把 iOS 上架 App 流程拆成 8 步,每步讲清楚做什么、容易卡在哪、怎么确认这步过了 ,全程在 Windows 上用 Appuploader 走完,不用 Mac、不用 Xcode。前置只有一个硬条件:一个付费的 Apple Developer Program 会员账号------免费账号能真机调试,但不能提交审核。
登录 → 发布证书 → Bundle ID 配能力 → App Store 描述文件 → 建 App 记录 → 打包传 ipa → 填版本和商店信息 → 选构建版本提交审核。
下面逐步展开。
第 1 步:登录,确认团队和会员状态
登录 Appuploader 后第一站是账号概览。一个 Apple ID 可能挂在多个开发者团队下,先在「团队」区域点「激活」选对当前要操作的团队------证书、Bundle ID、描述文件、应用都会基于激活的团队重新加载,选错团队后面全是错的。
坑:如果这里提示「未加入 Apple Developer Program」,说明这个 Apple ID 没有付费会员资格,证书和描述文件这些开发者门户功能都用不了。要么去 developer.apple.com 购买会员,要么先用网页登录生成一把 API 密钥、单独使用 App Store Connect 的功能。
确认:账号信息里能看到团队名称、团队 ID、会员角色,且「证书与描述文件权限」为允许,这步就过了。
第 2 步:创建发布证书(Apple Distribution)
上架用的是发布证书 ,不是开发证书,这两套别混。在证书板块填证书名称和一个 p12 密码,创建 Apple Distribution 证书,下载 .p12 留着打包签名用。这把 p12 换电脑、发给同事都能接着用,不像在 Mac 上还要折腾钥匙串导出。
坑:用开发证书(Apple Development)签的包拿去上架会被直接退回。另外 p12 密码要记住,重新导入签名时要用。
确认 :证书列表里出现一条 Apple Distribution、状态有效、有到期时间。想核对细节,可以把下载的 p12 拖进 Appuploader 的文件信息查看,核对 Team ID、SHA1 指纹和「私钥是否与证书匹配」------APP 备案要填的 SHA1 指纹也在这里直接复制。 
第 3 步:注册 Bundle ID,按需配能力
Bundle ID 要和你工程里的一致。在 Bundle ID 板块创建一个,然后按 App 实际用到的能力勾选:推送、Apple 登录、iCloud、App Groups 等。
坑 :这里埋着一个很多人栽过的雷------改动能力之后,之前生成的描述文件会失效,必须重建一份,否则签名对不上。所以能力要在生成描述文件之前配好、想清楚。
确认:Bundle ID 列表里能看到它,能力状态和你的需求一致。
第 4 步:生成 App Store 类型描述文件
描述文件把证书、Bundle ID、设备三者绑在一起。上架要选 App Store 类型(不是 Development、不是 Ad Hoc)。在描述文件板块选好 Bundle ID 和第 2 步的发布证书,生成后下载 .mobileprovision。
坑:类型选错是上架被拒的高频原因。四种类型里,Development 用于日常真机调试、Ad Hoc 用于指定设备内测、App Store 才是上架用的、企业证书是内部分发------别拿调试那套来上架。
确认:把生成的 mobileprovision 拖进文件信息查看,确认 Bundle ID、内嵌证书和有效期都对得上。换了证书或新增测试设备后,用「一键重建」会自动带上当前有效证书和全部已启用设备,不用手动重配。
第 5 步:在 App Store Connect 建 App 记录
签名材料齐了,开始建 App。在应用板块新建 App,先填应用级、不区分版本的信息:首选语言、主次分类、年龄分级(勾各项内容描述符的出现频率,保存后生成)。
坑 :分类、年龄分级、内购这几样的管理必须用 API 密钥账号,其他登录方式不支持。如果你用 Apple ID + App 专用密码登录,发现这几项改不了,就先去账号概览生成一把 App Store Connect API 密钥(私钥 .p8 只给一次,务必当场保存)再回来。
确认:应用列表里出现这个 App,能按名称 / Bundle ID / SKU 搜到,详情页可「在 App Store Connect 中打开」。
第 6 步:打包并上传 ipa
把 ipa 传到 App Store Connect。界面上点一下上传即可;要接 CI 的话,用命令行写进打包脚本:
bash
# 打包脚本最后一步,--wait 等苹果处理完再继续
appuploader-cli build upload ./build/App.ipa --wait
坑 :上传不等于能提交------ipa 传完,苹果还要在后台处理一段时间,处理完才会出现在可选的构建版本列表里。很多人"提交页构建版本是空的",就是卡在还没处理完、或压根没传上。构建号已存在时工具会直接提示,不会重复上传。
确认:构建版本在 App Store Connect 的 TestFlight 页出现、状态正常,就说明处理完了。
第 7 步:填版本信息、商店文案和截图
这步内容最杂,分三块:
- 版本信息 :新建版本填版本号;在发布设置里选发布方式(审核通过后手动发布 / 自动发布 / 定时发布),可选再开「分阶段发布」,让更新在 7 天内逐步推送。审核信息填联系人姓名、邮箱、电话;如果 App 需要登录才能用,一定勾「需要演示账号」并填账号密码给审核员------这条漏了,需要登录的 App 几乎必被打回。
- 商店文案:按语言维护名称、副标题、描述、关键词、新功能、推广文本、隐私政策 URL 等,每个字段旁都标了是不是必填。多语言不用手敲,选一种源语言用 AI 翻译铺到其他语言(名称、副标题是应用级共享字段,不参与翻译)。
- 截图 :拖进去后系统按每张图的像素尺寸自动归类 到对应设备,尺寸匹配不上任何 App Store 设备的图会被直接跳过------"截图明明传了却不显示"多半栽在这。
坑:名称、副标题改了要随下一版本审核才生效;推广文本可随时改、免审核;新功能只在版本更新时必填。记混了会以为"改了没生效"。
确认:必填字段旁的标记都已满足,截图在对应设备尺寸下都显示出来了。
第 8 步:选构建版本,提交审核
回到版本页,点「选择要提交的构建版本」,挑第 6 步传上去、已处理完的那个构建,然后「提交审核」。
坑:选不到构建版本,99% 是第 6 步没处理完,回去等一会儿再刷新。提交后状态变成等待审核;提交错了可以「取消」这次提交撤回。
确认:状态显示「等待审核」,这趟上架流程就走完了,剩下交给苹果审。
嫌一步步点麻烦?一条命令串起来
上面 8 步是界面操作,适合第一次理清来龙去脉。熟了之后、或者要接 CI,可以用 Appuploader 自带的 appuploader-cli:在工程里写一份 appuploader.yaml,一条 release 会依次把证书、描述文件、建 App、上传、商店信息、截图、提交审核全跑完,中途失败还能从断点续跑,GitHub Actions、Jenkins、GitLab CI 的 Linux runner 都能用。
和纯网页加 Mac 的路子比一下:只用 App Store Connect 网页也能填信息、提交,但证书和描述文件得另外去开发者门户弄,ipa 还得靠 Mac 上的 Xcode 或 Transporter 传。Appuploader 的做法是把证书、描述文件、App 信息、文案截图、上传、提交串在一处,Windows、Linux 上就能走完整条链------对没有 Mac 的团队,省掉的是在多个工具和网页之间来回倒腾那段。