在不使用 Apple Developer Portal 的情况下将 UDID 添加到配置文件

Posted

技术标签:

【中文标题】在不使用 Apple Developer Portal 的情况下将 UDID 添加到配置文件【英文标题】:Add UDIDs to provisioning profile without using Apple Developer Portal 【发布时间】:2016-07-15 19:04:02 【问题描述】:

我的问题与其他类似问题不同,因为在 Apple 开发者门户因黑客攻击而关闭期间提出了类似问题。

有没有办法自动将新的 UDID 添加到配置文件中?

我在一家拥有 Beta 版应用程序的公司工作,该应用程序为现有客户缓慢推出 2 万用户的私人 Beta 版。换句话说,我不想在接下来的 6 个月内使用 ADP 手动添加 20K UDID。请记住,我需要向用户询问他们的电子邮件地址,在 beta 管理器中向他们发送电子邮件,让他们打开电子邮件以单击链接,以便我可以获取他们的 UDID,然后我需要手动打开 ADP 以添加它。所有这些都需要在我在 Xcode 中更新我的配置文件之前完成,然后归档一个构建以部署到它们。为了理智和有效利用时间来修复测试版用户报告的错误,整个过程似乎很疯狂。我们已经通过这种方式添加了 50 个,这让我抓狂。

我认为 Fabric Beta 可能会很好地为我处理这个问题,但事实并非如此。

是否有用于添加 UDID 的命令行界面?或者,有没有办法通过电子邮件邀请用户,如果他们在他们的设备上打开电子邮件,他们可以安装我们的 beta 应用程序,而无需我先在 ADP 中手动添加他们的 UDID?升级到 Apple Enterprise 帐户是否可以解决此问题?

到目前为止,我到处都是死胡同。我读到 Fastlane 可能会处理它,但我没有找到任何来自开发人员的合法评论来证实这一点。请堆栈溢出......发挥你的神奇魔力。

【问题讨论】:

阅读您与 Apple 的开发者合同。如果您想保留您的开发者许可证,绝对不应该为 20,000 名客户提供私人测试版。 如果您拥有标准开发人员会员资格,您每年只能添加 100 个 UUID,并且在任何时候只有 100 个活动 UUID。如果您使用企业开发者帐户,则无需添加任何 UUID。您可以直接分发应用程序 您正在寻找类似 TestFlight 的东西,它允许您进行公开测试。问题是我相信 TestFlight 仅限于 2,000 名 beta 测试人员。对于你想要做的规模,我认为你将不得不建立一个登录页面,你必须在其中维护 20,000 封电子邮件的数据库。并在首次启动应用程序时验证用户是否是测试版的一部分。做起来应该不会太难,但不是 iTunes Connect 应该处理的事情。 @gasher729 这是一个合法的场景。这是一个生产应用程序,拥有超过 30 万用户,我们的新版本以及与该应用程序配合使用的新组件将慢慢发布给有限的现有客户群体。我们需要在增加组件制造的同时做到这一点,这样我们就可以在向所有 300k+ 用户提供我们的组件购买之前改善用户体验。这并不违反开发许可证。 问明白了,企业计划的条款是针对公司设备的,但许多组织使用 BYOD,因此公司可能不会拥有他们想要的所有设备分发给。没有强制执行设备所有权;您可以在任何有权访问安装 URL 的设备上进行安装。当开发应用程序的个人/公司与客户公司不同时,使用 B2B。它也可以为您工作,但通常要求目标设备由 MDM 管理以分发应用程序 【参考方案1】:

ios 设备上运行应用程序而无需将设备 ID 单独注册到配置文件(无论如何这都不适合您,因为每个帐户有 100 台设备的限制)的方法是使用企业分发配置文件。通过使用企业资料签名的应用程序,它可以在任何设备上运行。

用户需要“信任”签名身份,这涉及到设置。然而,对签名身份的信任是一次性的。这可以是您可以包含在对您的 Beta 测试人员的说明中的内容。

要创建企业资料,您需要注册一个额外的企业开发者帐户here。除了您的常规开发者帐户外,每年的费用为 299 美元。一旦你有了这个,你将创建一个新的企业分发配置文件并在你的构建设置中使用它来构建/签署应用程序。

请注意,企业资料自您生成之日起一年后到期,就像开发人员资料一样。证书应持续 3 年。如果您计划让用户在配置文件到期后继续使用该应用程序,最好在应用程序中构建一个简单的更新检查,以提示用户在到期前一个月左右更新该应用程序。一旦配置文件过期,就像标准的开发配置文件一样,应用程序只会在用户设备上崩溃,而不会解释原因。

【讨论】:

我不认为企业帐户是解决方案,因为我们不拥有设备,用户也不仅仅是公司的员工。即使 Apple 没有真正调查企业使用/滥用行为,我们的公司也太大了,无法接受被抓到这样做的风险。看起来我们唯一的两个选择是使用 TestFlight 启动它,接受 2000 个用户限制和每次构建 60 天的测试持续时间限制,或者只是简单地将它作为应用商店中的新应用启动,并且只允许登录适用于测试版中的用户。 是的,如果他们在组织之外,您将面临 Apple 阻止它的风险。虽然,对于测试,我认为它可能适合预期用途,只要您不尝试实际发布软件。至于在应用商店中发布,这里有一篇来自 kickstarter 活动的文章,他们通过发布到商店并要求用户登录才能使用全部功能来解决这个问题:sixtostart.com/onetoread/2012/…我相信邮箱应用做了类似的事情.【参考方案2】:

我终于明白了。

基于this question,并且事先浪费了太多时间尝试其他解决方案,我决定在不违反 Apple 服务条款(如果您将应用程序分发到非团队成员通过企业开发者门户) 是使用 TestFlight,在同一应用程序的 TestFlight 中创建多个应用程序(每个应用程序需要具有单独的应用程序名称 + bundleIds)并同时运行多个外部测试版会话。如果您使用 Fastlane 自动执行此操作,您可以一次更改每个版本的应用程序名称 + bundleId,然后一次将它们全部上传到 TestFlight,以防止因需要多次执行相同的操作而发疯。

每次您在想要更新 Beta 版的新版本中有修复时,只需设置 Fastlane 以自动增加版本号并将其部署到 TestFlight - 然后这将有效地重置您的 60 天 Beta 会话。

【讨论】:

以上是关于在不使用 Apple Developer Portal 的情况下将 UDID 添加到配置文件的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 https://developer.apple.com 生成 iOS 开发证书?

MAC 应用程序因使用权利 com.apple.developer.maps 而被拒绝

iWatch报错: Missing com.apple.developer.healthkit entitlement

如何从 Apple Developer Organization Program 更改为 Apple Developer Enterprise Program?

“iCloud”功能仅适用于注册 Apple Developer Program 的用户。请访问 https://developer.apple.com/programs/ 进行注册

为 Apple Developer Program 创建新 Apple ID 的优势