Ad Hoc Distribution是一种在有限数量的设备上进行iOS应用测试而无需发布到App Store的分发方法。每个设备必须通过唯一的UDID在Apple Developer Portal中注册,每个账户最多100台设备。根据Apple Developer Documentation(2025年),该方法用于Beta测试和向客户演示应用,而无需App Store审核。主要限制是绑定到物理设备,这使测试扩展变得复杂。
要点
Ad Hoc Distribution是Apple Developer Program($99/年)所有参与者均可使用的iOS应用分发方法。它允许应用直接安装到设备上而无需经过App Store审核。主要目的——发布前测试:开发者、测试人员和客户可以在正式发布前将应用安装到自己的设备上。
Ad Hoc Distribution使用包含允许UDID设备列表的Provisioning Profile。在签署应用时,Xcode或Fastlane会创建一个IPA文件,该文件只能安装在此列表中的设备上。每个UDID通过Apple Developer Portal添加,总数不能超过每个开发者账户100台设备。
根据Apple(2025年)的数据,Ad Hoc Distribution仍然用于预发布测试,当应用尚未通过App Store审核但已经需要向客户展示或在真实设备上测试时。然而,Apple建议使用TestFlight进行大规模Beta测试,而将Ad Hoc保留用于小团体和特殊情况。
Ad Hoc分发通过OTA(Over-The-Air)安装机制或通过iTunes/Finder工作。开发者使用选定的UDID创建Ad Hoc Provisioning Profile,使用此配置文件签署应用并导出IPA文件。用户通过Safari的链接或通过macOS上的Finder安装应用。
从技术上讲,Ad Hoc Distribution包括几个阶段。首先,管理员收集测试设备的UDID——每个UDID是iOS设备的唯一40字符标识符。然后,将UDID添加到Apple Developer Portal,创建Provisioning Profile并生成已签名的IPA。Ad Hoc配置文件的有效期为一年,之后应用将无法打开。
# Fastlane——自动化Ad Hoc分发
lane :adhoc do
match(type: "adhoc")
gym(scheme: "MyApp",
export_method: "ad-hoc")
pilot(
distribute_only: true,
devices_file: "./devices.txt"
)
end
要安装Ad Hoc应用,用户必须在其设备上信任开发者证书。为此,在iOS设置中需要进入“通用”→“VPN与设备管理”→“配置文件”,然后点击“信任”。没有此步骤,应用将无法启动。
UDID(Unique Device Identifier)是每个iOS设备的唯一标识符。对于Ad Hoc Distribution,需要收集所有测试设备的UDID并将其添加到Apple Developer Portal中。每个开发者账户每年最多100台设备。此限制适用于开发者的所有应用,而不是每款应用单独计算。
| 获取UDID的方法 | 难度 | 备注 |
|---|---|---|
| 通过Safari | 低 | 安装配置文件以提取UDID |
| 通过Xcode | 中 | 将设备连接到Mac并从Xcode复制UDID |
| 通过MDM | 高 | MDM解决方案可以收集企业设备的UDID |
| 通过iTunes | 中 | 过时的方法——新的macOS不再支持iTunes |
100台设备的限制在日历年度结束时重置——重置发生在每年1月1日。然而,Apple建议大规模测试使用TestFlight,它支持多达10,000名外部测试人员。自2022年以来,Ad Hoc Distribution在应用尚未通过Beta App Review或测试需要访问原始IPA文件的情况下仍然适用。
设置Ad Hoc Distribution通过Apple Developer Portal和Xcode完成。过程包括设备注册、创建Provisioning Profile、签署应用和导出IPA进行分发。对于团队开发,建议使用Fastlane或通过CI/CD进行自动化。
为简化流程,使用分发服务:Firebase App Distribution、Microsoft App Center或BuddyBuild。这些服务自动管理UDID,创建Ad Hoc配置文件并向测试人员发送邀请。Firebase App Distribution还通过Gradle或Fastlane与CI/CD流水线集成。
一个重要细节——更新UDID。如果需要向配置文件中添加新设备,则需要重新创建Provisioning Profile并重新签署应用。已安装应用的设备将继续使用,直到配置文件过期(1年)。之后需要使用新配置文件重新安装。
Ad Hoc Distribution只是三种无需App Store的iOS应用分发方式之一。TestFlight(免费,最多10,000名外部测试人员)和Enterprise Distribution(无设备限制,适用于企业应用)用不同的限制和要求解决类似的任务。
TestFlight是Apple首选的Beta测试方法。它不需要收集UDID,支持多达100名内部测试人员和10,000名外部测试人员,自动管理版本并提供安装分析。然而,TestFlight需要外部测试人员通过Beta App Review,这可能需要1-2天。Ad Hoc Distribution完全不需要审核。
Enterprise Distribution适用于企业应用,设备数量不受限制,但需要在Apple Developer Enterprise Program($299/年)中注册D-U-N-S号码。Ad Hoc对所有标准计划参与者($99/年)开放,不需要公司的法律确认。对于小型团队和项目,Ad Hoc仍然是最简单的无需App Store的分发方式。
常见问题
Ad Hoc Distribution的最大设备数量是每个Apple开发者账户100台。该限制适用于开发者的所有应用,而不是每款应用单独计算。每年1月1日重置。要在更多设备上进行测试,请使用TestFlight或Enterprise Distribution(适用于企业应用)。
设备的UDID可以通过网络服务如udid.io或install.appcenter.ms获取。用户在iOS的Safari中打开链接,安装配置文件,之后UDID会显示在屏幕上。或者,在将设备连接到Mac时,可以从Xcode复制UDID:Window → Devices and Simulators → Identifier。
不能,Ad Hoc Distribution仅用于测试。要发布到App Store,需要创建App Store Distribution Profile并以相应方式签署应用。Ad Hoc配置文件无法通过App Store Connect验证。在提交到App Store之前,请确保在Xcode或Fastlane中将export method更改为app-store。
如果Ad Hoc应用无法打开,请检查:设备是否信任开发者证书(设置→通用→VPN与设备管理),Provisioning Profile是否未过期,设备的UDID是否已添加到配置文件中,以及应用是否使用正确的证书签署。如果问题仍然存在,请删除应用并使用更新后的配置文件重新安装。
Development Profile用于直接从Xcode在已连接的设备上运行应用。Ad Hoc Profile——用于在没有Xcode的设备上分发IPA安装文件。主要区别:Development需要连接到Xcode,而Ad Hoc通过Safari或Finder使用OTA安装。两者都限制为100台设备。
总结
我们将开发一款交钥匙移动应用程序
IT Sectr自2017年以来为初创企业和企业打造iOS和Android应用程序。我们将为您提供咨询并提出最佳解决方案。