iOS打包流程
文章目录
- 前言
- 三、详细打包流程全解析
- 1. 打包前准备工作
- (1) 开发者账号配置
- (2) Flutter项目配置
- (3) Xcode关键设置
- 2. App Store上架全流程
- (1) 生成发布包
- (2) 导出IPA文件
- (3) App Store Connect配置
- (4) 提交审核注意事项
- 3. TestFlight测试全流程
- (1) 构建上传
- (2) 测试人员管理
- (3) 测试反馈收集
- 4. Ad Hoc分发专业方案
- (1) 生成分发包
- (2) 高效分发方案
- (3) UDID收集技巧
- 5. 企业签名分发
- (1) 特殊要求
- (2) 分发流程
- 四、疑难问题解决方案
- 常见错误处理表
- 提效技巧
- 五、最佳实践总结
前言
iOS打包流程的详细补充,涵盖App Store上架、TestFlight测试和Ad Hoc分发全流程,包含具体操作步骤和注意事项:
三、详细打包流程全解析
1. 打包前准备工作
(1) 开发者账号配置
(2) Flutter项目配置
- 更新
pubspec.yaml
版本号:version: 1.0.0+1
- 执行清理命令:
flutter cleanflutter pub get
(3) Xcode关键设置
- Bundle Identifier:
com.yourcompany.appname
(唯一标识) - Signing & Capabilities:
- 取消勾选
Automatically manage signing
- 手动选择Distribution证书
- 取消勾选
- Info.plist:
- 添加
ITSAppUsesNonExemptEncryption = NO
- 完善权限描述(相机/位置等)
- 添加
2. App Store上架全流程
(1) 生成发布包
flutter build ipa --release --export-options-plist=ExportOptions.plist
(2) 导出IPA文件
- 在Xcode Organizer中选择
Distribute App
- 选择
App Store Connect
- 勾选
Upload your app's symbols...
(崩溃分析)
(3) App Store Connect配置
步骤 | 位置 | 关键操作 |
---|---|---|
1 | 我的App → +新建App | 填SKU(如com.company.app) |
2 | 价格与销售范围 | 设置价格区间 |
3 | 准备提交 → 构建版本 | 点击’+'添加IPA |
4 | App审核信息 | 填写测试账号 |
5 | 版本发布 | 选手动/自动发布 |
(4) 提交审核注意事项
- 提供测试视频(审核加速)
- 元数据需包含真实截图
- 遵守《App Store审核指南》3.2.1条
3. TestFlight测试全流程
(1) 构建上传
sequenceDiagramXcode->>App Store Connect: 上传IPAApp Store Connect->>TestFlight: 自动同步TestFlight->>测试组: 分配构建版本
(2) 测试人员管理
- 内部测试(200人上限)
- 开发者账号成员自动加入
- 即时生效无需审核
- 外部测试(10000人上限)
- 需填写测试信息
- 首次版本需Apple审核(约24小时)
(3) 测试反馈收集
- 在App Store Connect查看崩溃日志
- 使用
feedbackassistant.apple.com
收集反馈
4. Ad Hoc分发专业方案
(1) 生成分发包
flutter build ipa --export-method ad-hoc
生成的IPA路径:build/ios/ipa/APPNAME.ipa
(2) 高效分发方案
方式 | 工具 | 特点 |
---|---|---|
OTA分发 | Diawi.com | 扫码安装 |
MDM分发 | Jamf/Mosyle | 企业级管理 |
自建分发 | nginx+plist | 私有化部署 |
(3) UDID收集技巧
- 使用测试邀请工具(如:https://betafamily.com)
- 设备安装描述文件自动获取UDID
- 批量导出:
Apple Configurator 2
5. 企业签名分发
(1) 特殊要求
- $299/年企业账号
- 需提供DUNS编号
- 禁止公开下载
(2) 分发流程
- 导出
.ipa
选择Enterprise
- 配置manifest.plist:
<plist version="1.0"> <dict><key>items</key><array><dict><key>assets</key><array><dict><key>kind</key><string>software-package</string><key>url</key><string>https://yourdomain.com/app.ipa</string></dict></array></dict></array> </dict> </plist>
- 安装链接格式:
itms-services://?action=download-manifest&url=https://yourdomain.com/manifest.plist
四、疑难问题解决方案
常见错误处理表
错误代码 | 原因 | 解决方案 |
---|---|---|
ITMS-90023 | 缺少图标 | 添加1024x1024 App Store图标 |
ITMS-90683 | 无效Bundle | 检查CFBundleExecutable |
ITMS-90704 | 废弃UIWebView | 替换为WKWebView |
90186 | 签名冲突 | 吊销旧证书重建 |
提效技巧
- 自动打包脚本:
#!/bin/zsh
flutter build ipa --export-method app-store
xcrun altool --upload-app -f build/ios/ipa/MyApp.ipa --username "your@email.com" --password "app-specific-password"
- 快速审核申请:
- 登录:https://developer.apple.com/contact/app-store/?topic=expedite
- 选择"Request Expedited Review"
五、最佳实践总结
-
证书管理黄金法则:
- 开发证书:仅用于调试
- 分发证书:专人保管
- 每年更新:提前30天操作
-
发布检查清单:
- 移除所有调试代码
- 关闭开发者模式(
WidgetsApp.debugShowCheckedModeBanner = false
) - 测试离线场景
- 验证64位支持
-
版本策略建议:
title 版本分布建议“生产环境” : 40“TestFlight” : 30“开发版本” : 30
通过以上完整流程,可实现从开发到分发的全链路管理,满足不同场景的iOS应用发布需求。实际部署时推荐使用CI/CD工具(如Codemagic/Fastlane)自动化流程。