本篇目标
掌握 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)二、选择目标设备

Archive 需要选择「Any iOS Device (arm64)」或「Generic iOS Device」。
操作:
在 Xcode 顶部工具栏,点击设备选择器。
选择
Any iOS Device (arm64)。不要选择模拟器,否则 Archive 为灰色不可用。
注意:
模拟器无法 Archive。
真机也可以 Archive,但推荐选择通用设备。
确保 Xcode 已识别到签名证书。
三、Archive 打包

操作步骤:
菜单栏选择 Product → Archive。
等待编译完成。
编译成功后,自动打开 Organizer 窗口。
编译过程:
Xcode 会执行 Release 构建。
自动签名、打包。
生成
.xcarchive文件。
Archive 失败常见原因:
问题 | 原因 | 解决 |
|---|---|---|
Archive 灰色不可点 | 选择了模拟器 | 切换为 Any iOS Device |
签名失败 | 证书/描述文件错误 | 检查签名配置 |
编译错误 | 代码问题 | 修复编译错误 |
权限不足 | 钥匙串访问权限 | 解锁钥匙串 |
磁盘空间不足 | 空间不够 | 清理磁盘 |
Archive 文件位置:
~/Library/Developer/Xcode/Archives/四、Organizer 窗口

Archive 成功后,Xcode 自动打开 Organizer。
Organizer 功能:
功能 | 说明 |
|---|---|
查看 Archive 列表 | 按日期、版本、构建号 |
验证 App | 上传前本地验证 |
分发 App | 导出 IPA 或上传 |
查看详细信息 | 版本、签名、大小 |
删除 Archive | 清理旧版本 |
Archive 信息:
版本号与构建号
创建时间
签名证书
描述文件
App 大小
选择 Archive:
默认选中最新 Archive。
可以查看历史 Archive。
右键可删除、导出。
五、验证 App
验证步骤:
在 Organizer 中选择 Archive。
点击右侧「Validate App」。
选择分发方式:App Store Connect。
选择签名选项。
点击「Validate」。
等待验证结果。
验证内容:
签名是否有效
描述文件是否正确
版本号是否重复
图标是否完整
隐私声明是否齐全
是否包含私有 API
验证失败常见原因:
问题 | 原因 | 解决 |
|---|---|---|
缺少图标 | AppIcon 未配置 | 补充图标 |
版本号重复 | Build 未递增 | 修改 Build |
签名无效 | 证书过期 | 更新证书 |
私有 API | 使用了不允许的 API | 替换实现 |
权限描述缺失 | Info.plist 未填写 | 补充描述 |
建议:验证通过后再上传,避免上传后被打回。
六、上传到 App Store Connect
方式一:Xcode Organizer 上传
在 Organizer 中选择 Archive。
点击「Distribute App」。
选择「App Store Connect」。
选择「Upload」。
选择签名选项。
确认信息。
点击「Upload」。
等待上传完成。
方式二:Transporter 上传
从 Mac App Store 下载 Transporter。
登录 Apple ID。
将导出的 IPA 拖入 Transporter。
点击「交付」。
等待上传完成。
方式三:命令行上传
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 分发。
导出步骤:
在 Organizer 中选择 Archive。
点击「Distribute App」。
选择分发方式:
- App Store Connect - Ad Hoc - Enterprise - Development
选择签名选项。
选择导出位置。
点击「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 或第三方工具安装。
八、上传后处理
上传成功后:
登录 App Store Connect。
进入「我的 App」。
选择对应 App。
进入「活动」或「版本」页面。
查看构建版本状态。
构建版本状态:
状态 | 说明 |
|---|---|
正在处理 | 上传后 Apple 正在处理 |
处理完成 | 可以提交审核 |
无效 | 处理失败,需重新上传 |
处理时间:
通常 5-30 分钟。
首次上传可能更久。
处理完成后会收到邮件通知。
选择构建版本:
在版本页面,选择「构建版本」。
选择刚上传的版本。
保存。
提交审核:
填写版本信息。
上传截图。
确认隐私声明。
点击「提交以供审核」。
九、常见上传问题
问题 | 原因 | 解决 |
|---|---|---|
上传卡住 | 网络问题 | 更换网络,重试 |
上传失败 | 签名问题 | 检查证书与描述文件 |
构建版本无效 | 包含私有 API | 检查代码 |
版本号重复 | Build 未递增 | 修改 Build |
缺少图标 | AppIcon 未配置 | 补充图标 |
邮件提示 ITMS- | 多种原因 | 查看具体错误码 |
找不到构建版本 | 处理中或失败 | 等待或重新上传 |
常见 ITMS 错误码:
ITMS-90022:缺少图标。
ITMS-90023:缺少启动图。
ITMS-90032:无效的图标路径。
ITMS-90096:不支持的设备方向。
ITMS-90208:无效的 Bundle ID。
ITMS-90362:Info.plist 配置错误。
处理建议:
查看邮件中的详细错误。
按错误提示修改。
重新 Archive 上传。
十、上传后的版本管理
版本状态:
状态 | 说明 |
|---|---|
准备提交 | 可以编辑信息 |
等待审核 | 已提交,排队中 |
正在审核 | 审核中 |
被拒 | 未通过 |
准备销售 | 审核通过 |
正在销售 | 已上架 |
版本更新:
修改 Version 和 Build。
重新 Archive。
上传新构建版本。
在 App Store Connect 选择新构建版本。
提交审核。
注意:
同一版本号可以有多个构建版本。
已上架的版本不能修改。
审核期间不能修改版本信息。
📌 进阶内容:自动化上传(fastlane / xcodebuild / altool)属进阶内容,已放到第 10 章《持续集成与交付》,基础篇手写上传即可。
十一、避坑指南
Archive 前先 Clean:避免缓存问题。
Build 号必须递增:否则上传失败。
验证通过再上传:节省时间。
上传时保持网络稳定:避免中断。
注意邮件通知:处理失败会发邮件。
不要重复上传同一构建版本:会提示重复。
上传后耐心等待处理:不要反复操作。
保留 Archive:便于后续导出和排查。
十二、检查清单
[ ] 打包前版本号与构建号已更新
[ ] 签名配置正确
[ ] 选择 Any iOS Device 进行 Archive
[ ] Archive 成功
[ ] 验证 App 通过
[ ] 上传到 App Store Connect
[ ] 构建版本处理完成
[ ] 在 App Store Connect 选择构建版本
[ ] 提交审核
[ ] 了解常见上传问题处理