在 iOS 开发过程中,我们经常需要将 App 安装到同事或测试人员的手机上进行内部测试,而不需要经过 App Store 的审核。
Ad Hoc (特设) 打包方式正是为此设计的。它允许我们将 App 安装在指定的设备(白名单)上。
本文将详细介绍从收集设备 UDID 到最后导出 IPA 包的完整流程。
准备工作
- 一台安装了 Xcode 的 Mac。
- 一个付费的 Apple Developer Program 账号($99/年)。
- 测试人员 iPhone 的 UDID。
第一步:收集并注册设备 (UDID)
Ad Hoc 包只能安装在你账号里注册过的设备上。如果同事的手机没注册,安装时会提示失败。
1. 获取 UDID
- 方法 A (推荐): 手机连接 Mac,打开 Finder (或 iTunes)。点击手机信息区域(显示电量、存储的地方),直到看到 UDID,右键复制。
- 方法 B (在线): 让同事用手机 Safari 访问 蒲公英获取UDID 等工具,按提示安装描述文件获取(获取后记得在设置里删除该描述文件)。
2. 在开发者后台注册
- 登录 Apple Developer 网站。
- 进入 Certificates, Identifiers & Profiles。
- 左侧选择 Devices,点击 (+) 号。
- 输入 Device Name(如 "测试机_小王")和 UDID。
- 点击 Continue -> Register。
第二步:申请发布证书 (Distribution Certificate)
注意:如果你之前已经创建过
iOS Distribution类型的证书且还在有效期内,可以跳过此步。
1. 生成 CSR 文件 (Mac 端)
- 打开 钥匙串访问 (Keychain Access)。
- 菜单栏点击:钥匙串访问 -> 证书助理 -> 从证书颁发机构请求证书...。
- 输入你的邮箱,选择 “存储到磁盘”,点击继续,保存
.certSigningRequest文件到桌面。
2. 创建证书 (Web 端)
- 回到开发者网站,左侧选择 Certificates,点击 (+)。
- 关键点: 选择 Software 下的 iOS Distribution (App Store and Ad Hoc)。
- 点击 Continue,上传刚才生成的 CSR 文件。
- 点击 Download 下载
.cer文件。
3. 安装证书
双击下载的 .cer 文件,它会自动加入到 Mac 的钥匙串中。
第三步:创建配置文件 (Ad Hoc Provisioning Profile)
这是最关键的一步,它将你的 App ID、发布证书和测试设备绑定在一起。
- 确认 App ID:
- 在开发者网站左侧选择 Identifiers。
- 确保里面有一个 Identifier 的 Bundle ID 与你 Xcode 工程里的 Bundle Identifier 一致。
- 创建 Ad Hoc 描述文件:
- 左侧选择 Profiles,点击 (+)。
- 关键点:在 Distribution 栏目下,选择 Ad Hoc。
- Select App ID:选择刚才确认的 App ID。
- Select Certificates:选择第二步创建的发布证书(Distribution)。
- Select Devices:务必勾选所有需要测试的同事设备(建议 Select All)。
- Name:起个名字,例如
MyApp_AdHoc_Profile。 - 点击 Generate,然后 Download。
- 安装描述文件:
- 双击下载的
.mobileprovision文件(通常没反应,但其实已经安装到 Xcode 库中了)。
- 双击下载的
第四步:Xcode 配置与打包
1. 配置签名
- 打开 Xcode,点击左侧工程根目录 -> TARGETS -> 你的 App。
- 进入 Signing & Capabilities 选项卡。
- 建议 取消勾选 "Automatically manage signing"(手动管理更可控)。
- Provisioning Profile (Release):下拉选择你刚才下载的
MyApp_AdHoc_Profile。 - Signing Certificate (Release):应该会自动显示
Apple Distribution: ...。
2. 归档 (Archive)
- Xcode 顶部运行栏,设备选择 Any iOS Device (arm64)。
- 菜单栏点击 Product -> Archive。
- 等待编译完成,会自动弹出 Organizer 窗口。
3. 导出 IPA
- 在 Organizer 中选中刚才的记录,点击右侧 Distribute App。
- 选择分发方式:Ad Hoc (不要选 App Store Connect)。
- App Thinning 选择 None,其他保持默认,点击 Next。
- 签名确认:Xcode 会展示它使用的证书和 Profile,确保 Profile 包含你的测试设备。
- 点击 Export,选择保存路径,你会得到一个文件夹,里面包含
.ipa文件。
第五步:分发给同事
现在你手上有了一个 .ipa 文件,如何让同事安装?
推荐方式:使用分发平台
- 使用 蒲公英 (pgyer.com)、Fir.im 或 Diawi 等平台。
- 注册账号并实名认证(国内平台通常需要)。
- 将
.ipa文件拖拽上传。 - 平台会生成一个 二维码 或 链接。
- 将二维码发给同事,他们用 iPhone 自带相机扫码即可直接安装。
常见问题 (FAQ)
Q: 同事安装时提示“无法安装”或图标变灰? A: 99% 的原因是该同事的 UDID 没有包含在你的 Provisioning Profile 里。
- 解决方法:去开发者网站 Devices 添加他的 UDID -> 去 Profiles 找到那个 Ad Hoc 文件 -> 点击 Edit -> 勾选新设备 -> Save 并重新下载 -> 在 Xcode 里重新选择新 Profile -> 重新打包。
Q: Ad Hoc 包有有效期吗? A: 有。有效期通常是一年(跟随你的证书有效期),或者跟随 Profile 的有效期。过期后 App 会闪退,需要重新打包。
Q: 设备数量有限制吗? A: 每年每种设备类型(iPhone, iPad, Mac 等)限制注册 100 台。