本篇目标

掌握 Archive 打包流程,能正确导出 IPA,使用 Xcode Organizer 或 Transporter 上传到 App Store Connect,并处理上传过程中的常见问题。

一、打包前的准备

检查清单:

  • [ ] 证书与描述文件配置正确

  • [ ] Bundle Identifier 与 App Store Connect 一致

  • [ ] 版本号(Version)已更新

  • [ ] 构建号(Build)已递增

  • [ ] 真机测试通过

  • [ ] 隐私政策已准备

  • [ ] App 图标与启动图已配置

  • [ ] 无编译错误与警告

版本号与构建号:

字段

位置

说明

Version

General → Identity

对外版本号,如 1.0.0

Build

General → Identity

内部构建号,每次上传递增

建议:

  • 版本号使用语义化版本:主版本.次版本.修订号。

  • 每次上传 App Store Connect,Build 必须比上一次大。

  • 可以只修改 Build,不修改 Version。

签名配置:

  • 确认 Team 选择正确。

  • 确认 Signing Certificate 有效。

  • 确认 Provisioning Profile 为 App Store 类型。

  • 若使用自动签名,确认 Automatically manage signing 已勾选。

清理项目:

Product → Clean Build Folder (Command + Shift + K)

二、选择目标设备

选择 Any iOS Device (arm64)

Archive 需要选择「Any iOS Device (arm64)」或「Generic iOS Device」。

操作:

  1. 在 Xcode 顶部工具栏,点击设备选择器。

  2. 选择 Any iOS Device (arm64)。

  3. 不要选择模拟器,否则 Archive 为灰色不可用。

注意:

  • 模拟器无法 Archive。

  • 真机也可以 Archive,但推荐选择通用设备。

  • 确保 Xcode 已识别到签名证书。

三、Archive 打包

菜单 Product → Archive

操作步骤:

  1. 菜单栏选择 Product → Archive。

  2. 等待编译完成。

  3. 编译成功后,自动打开 Organizer 窗口。

编译过程:

  • Xcode 会执行 Release 构建。

  • 自动签名、打包。

  • 生成 .xcarchive 文件。

Archive 失败常见原因:

问题

原因

解决

Archive 灰色不可点

选择了模拟器

切换为 Any iOS Device

签名失败

证书/描述文件错误

检查签名配置

编译错误

代码问题

修复编译错误

权限不足

钥匙串访问权限

解锁钥匙串

磁盘空间不足

空间不够

清理磁盘

Archive 文件位置:

~/Library/Developer/Xcode/Archives/

四、Organizer 窗口

Organizer 窗口:Archives 与 Distribute App

Archive 成功后,Xcode 自动打开 Organizer。

Organizer 功能:

功能

说明

查看 Archive 列表

按日期、版本、构建号

验证 App

上传前本地验证

分发 App

导出 IPA 或上传

查看详细信息

版本、签名、大小

删除 Archive

清理旧版本

Archive 信息:

  • 版本号与构建号

  • 创建时间

  • 签名证书

  • 描述文件

  • App 大小

选择 Archive:

  • 默认选中最新 Archive。

  • 可以查看历史 Archive。

  • 右键可删除、导出。

五、验证 App

验证步骤:

  1. 在 Organizer 中选择 Archive。

  2. 点击右侧「Validate App」。

  3. 选择分发方式:App Store Connect。

  4. 选择签名选项。

  5. 点击「Validate」。

  6. 等待验证结果。

验证内容:

  • 签名是否有效

  • 描述文件是否正确

  • 版本号是否重复

  • 图标是否完整

  • 隐私声明是否齐全

  • 是否包含私有 API

验证失败常见原因:

问题

原因

解决

缺少图标

AppIcon 未配置

补充图标

版本号重复

Build 未递增

修改 Build

签名无效

证书过期

更新证书

私有 API

使用了不允许的 API

替换实现

权限描述缺失

Info.plist 未填写

补充描述

建议:验证通过后再上传,避免上传后被打回。

六、上传到 App Store Connect

方式一:Xcode Organizer 上传

  1. 在 Organizer 中选择 Archive。

  2. 点击「Distribute App」。

  3. 选择「App Store Connect」。

  4. 选择「Upload」。

  5. 选择签名选项。

  6. 确认信息。

  7. 点击「Upload」。

  8. 等待上传完成。

方式二:Transporter 上传

  1. 从 Mac App Store 下载 Transporter。

  2. 登录 Apple ID。

  3. 将导出的 IPA 拖入 Transporter。

  4. 点击「交付」。

  5. 等待上传完成。

方式三:命令行上传

xcrun altool --upload-app \
  --type ios \
  --file /path/to/app.ipa \
  --username "your@email.com" \
  --password "app-specific-password"

说明:

  • 需要 App 专用密码。

  • 适合自动化流程。

  • 推荐使用 Transporter 或 Xcode。

七、导出 IPA

如果需要本地保存 IPA 或用于 Ad Hoc 分发。

导出步骤:

  1. 在 Organizer 中选择 Archive。

  2. 点击「Distribute App」。

  3. 选择分发方式:

- App Store Connect - Ad Hoc - Enterprise - Development

  1. 选择签名选项。

  2. 选择导出位置。

  3. 点击「Export」。

导出类型对比:

类型

用途

是否需要设备

App Store Connect

上传 App Store

否

Ad Hoc

限定设备分发

是

Enterprise

企业内部分发

否

Development

本地调试

是

IPA 文件结构:

MyApp.ipa
├── Payload/
│   └── MyApp.app/
│       ├── Info.plist
│       ├── 资源文件
│       └── 可执行文件
└── SwiftSupport/(如使用 Swift)

注意:

  • Ad Hoc 分发需要提前注册设备。

  • Enterprise 分发需要企业账号。

  • 导出后可通过 Apple Configurator 或第三方工具安装。

八、上传后处理

上传成功后:

  1. 登录 App Store Connect。

  2. 进入「我的 App」。

  3. 选择对应 App。

  4. 进入「活动」或「版本」页面。

  5. 查看构建版本状态。

构建版本状态:

状态

说明

正在处理

上传后 Apple 正在处理

处理完成

可以提交审核

无效

处理失败,需重新上传

处理时间:

  • 通常 5-30 分钟。

  • 首次上传可能更久。

  • 处理完成后会收到邮件通知。

选择构建版本:

  1. 在版本页面,选择「构建版本」。

  2. 选择刚上传的版本。

  3. 保存。

提交审核:

  • 填写版本信息。

  • 上传截图。

  • 确认隐私声明。

  • 点击「提交以供审核」。

九、常见上传问题

问题

原因

解决

上传卡住

网络问题

更换网络,重试

上传失败

签名问题

检查证书与描述文件

构建版本无效

包含私有 API

检查代码

版本号重复

Build 未递增

修改 Build

缺少图标

AppIcon 未配置

补充图标

邮件提示 ITMS-

多种原因

查看具体错误码

找不到构建版本

处理中或失败

等待或重新上传

常见 ITMS 错误码:

  • ITMS-90022:缺少图标。

  • ITMS-90023:缺少启动图。

  • ITMS-90032:无效的图标路径。

  • ITMS-90096:不支持的设备方向。

  • ITMS-90208:无效的 Bundle ID。

  • ITMS-90362:Info.plist 配置错误。

处理建议:

  • 查看邮件中的详细错误。

  • 按错误提示修改。

  • 重新 Archive 上传。

十、上传后的版本管理

版本状态:

状态

说明

准备提交

可以编辑信息

等待审核

已提交,排队中

正在审核

审核中

被拒

未通过

准备销售

审核通过

正在销售

已上架

版本更新:

  1. 修改 Version 和 Build。

  2. 重新 Archive。

  3. 上传新构建版本。

  4. 在 App Store Connect 选择新构建版本。

  5. 提交审核。

注意:

  • 同一版本号可以有多个构建版本。

  • 已上架的版本不能修改。

  • 审核期间不能修改版本信息。

📌 进阶内容:自动化上传(fastlane / xcodebuild / altool)属进阶内容,已放到第 10 章《持续集成与交付》,基础篇手写上传即可。

十一、避坑指南

  • Archive 前先 Clean:避免缓存问题。

  • Build 号必须递增:否则上传失败。

  • 验证通过再上传:节省时间。

  • 上传时保持网络稳定:避免中断。

  • 注意邮件通知:处理失败会发邮件。

  • 不要重复上传同一构建版本:会提示重复。

  • 上传后耐心等待处理:不要反复操作。

  • 保留 Archive:便于后续导出和排查。

十二、检查清单

  • [ ] 打包前版本号与构建号已更新

  • [ ] 签名配置正确

  • [ ] 选择 Any iOS Device 进行 Archive

  • [ ] Archive 成功

  • [ ] 验证 App 通过

  • [ ] 上传到 App Store Connect

  • [ ] 构建版本处理完成

  • [ ] 在 App Store Connect 选择构建版本

  • [ ] 提交审核

  • [ ] 了解常见上传问题处理