iOS 上架 App 流程

第一次 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 的团队,省掉的是在多个工具和网页之间来回倒腾那段。

相关推荐
奶油话梅糖19 分钟前
用 iPhone 扫一间房,AI 帮你在浏览器里 1:1 重建它:Wes Bos 的 scan-to-threejs 工作流
人工智能·ios·iphone
code_Bo41 分钟前
不只命令行:我把跨 Agent 会话同步做成了桌面应用
前端·javascript·后端
用户8356290780511 小时前
使用 Python 控制 Excel 工作表的分页位置
后端·python
用户8356290780511 小时前
Python 如何在 Word 中添加和管理文档变量
后端·python
量化分析码农3 小时前
股票历史数据的复权参数对照:多级别返回的字段与数值差异
java·javascript·后端
程序员cxuan3 小时前
讲真,智能路由这事儿,还得看基元律动
人工智能·后端·程序员
vaskilab4 小时前
Schema 全绿,Agent 却把参数编造了
后端
Java与AI落地4 小时前
Spring AI 上手:给现有 Java 服务加一个能用的 AI 接口
后端
Swot4 小时前
SvelteKit 数据流研究:`+page.js` 和 `+page.server.js` 到底谁在跑,数据又去了哪儿
前端·后端