[iOS 开发] 如何申请证书并打 Ad Hoc 测试包给特定设备测试


在 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. 在开发者后台注册

  1. 登录 Apple Developer 网站
  2. 进入 Certificates, Identifiers & Profiles
  3. 左侧选择 Devices,点击 (+) 号。
  4. 输入 Device Name(如 "测试机_小王")和 UDID
  5. 点击 Continue -> Register

第二步:申请发布证书 (Distribution Certificate)

注意:如果你之前已经创建过 iOS Distribution 类型的证书且还在有效期内,可以跳过此步。

1. 生成 CSR 文件 (Mac 端)

  1. 打开 钥匙串访问 (Keychain Access)
  2. 菜单栏点击:钥匙串访问 -> 证书助理 -> 从证书颁发机构请求证书...
  3. 输入你的邮箱,选择 “存储到磁盘”,点击继续,保存 .certSigningRequest 文件到桌面。

2. 创建证书 (Web 端)

  1. 回到开发者网站,左侧选择 Certificates,点击 (+)
  2. 关键点: 选择 Software 下的 iOS Distribution (App Store and Ad Hoc)
  3. 点击 Continue,上传刚才生成的 CSR 文件。
  4. 点击 Download 下载 .cer 文件。

3. 安装证书

双击下载的 .cer 文件,它会自动加入到 Mac 的钥匙串中。


第三步:创建配置文件 (Ad Hoc Provisioning Profile)

这是最关键的一步,它将你的 App ID发布证书测试设备绑定在一起。

  1. 确认 App ID
    • 在开发者网站左侧选择 Identifiers
    • 确保里面有一个 Identifier 的 Bundle ID 与你 Xcode 工程里的 Bundle Identifier 一致。
  2. 创建 Ad Hoc 描述文件
    • 左侧选择 Profiles,点击 (+)
    • 关键点:在 Distribution 栏目下,选择 Ad Hoc
    • Select App ID:选择刚才确认的 App ID。
    • Select Certificates:选择第二步创建的发布证书(Distribution)。
    • Select Devices务必勾选所有需要测试的同事设备(建议 Select All)。
    • Name:起个名字,例如 MyApp_AdHoc_Profile
    • 点击 Generate,然后 Download
  3. 安装描述文件
    • 双击下载的 .mobileprovision 文件(通常没反应,但其实已经安装到 Xcode 库中了)。

第四步:Xcode 配置与打包

1. 配置签名

  1. 打开 Xcode,点击左侧工程根目录 -> TARGETS -> 你的 App。
  2. 进入 Signing & Capabilities 选项卡。
  3. 建议 取消勾选 "Automatically manage signing"(手动管理更可控)。
  4. Provisioning Profile (Release):下拉选择你刚才下载的 MyApp_AdHoc_Profile
  5. Signing Certificate (Release):应该会自动显示 Apple Distribution: ...

2. 归档 (Archive)

  1. Xcode 顶部运行栏,设备选择 Any iOS Device (arm64)
  2. 菜单栏点击 Product -> Archive
  3. 等待编译完成,会自动弹出 Organizer 窗口。

3. 导出 IPA

  1. 在 Organizer 中选中刚才的记录,点击右侧 Distribute App
  2. 选择分发方式:Ad Hoc (不要选 App Store Connect)。
  3. App Thinning 选择 None,其他保持默认,点击 Next。
  4. 签名确认:Xcode 会展示它使用的证书和 Profile,确保 Profile 包含你的测试设备。
  5. 点击 Export,选择保存路径,你会得到一个文件夹,里面包含 .ipa 文件。

第五步:分发给同事

现在你手上有了一个 .ipa 文件,如何让同事安装?

推荐方式:使用分发平台

  1. 使用 蒲公英 (pgyer.com)Fir.imDiawi 等平台。
  2. 注册账号并实名认证(国内平台通常需要)。
  3. .ipa 文件拖拽上传。
  4. 平台会生成一个 二维码链接
  5. 将二维码发给同事,他们用 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 台。