【问题标题】:How does TestFlight do it?TestFlight 是如何做到的?
【发布时间】:2011-06-25 18:52:32
【问题描述】:

TestFlight 提供 iOS 应用的无线测试版分发(在非越狱设备上)。如何才能做到这一点?这是 iOS 功能还是漏洞利用?

【问题讨论】:

  • 很好的问题,但我不确定这是否是主题。这是边界,IMO。也就是说,我也很想知道这个问题的答案,所以 +1
  • 如果它是 iOS 功能,肯定会帮助我更好地理解配置。
  • @Moshe:你能解释一下为什么你认为这是题外话吗?
  • 因此问题与分发工具有关,与编写代码无关。也就是说,我差不多一年前写了我的评论。 SO 上的环境有点不同。
  • 这是一个很好的问题。

标签: ios iphone ios-provisioning beta-testing


【解决方案1】:

本文展示了 Apple OTA 实施的工作原理,并且也可以在企业外部使用:ios wireless app distribution

完整的流程是documented by Apple。 Apple 还发布了 registering devices 的文档和示例代码,并通过使用配置文件获取 UDID,因此您的网站可以检测到哪个设备正在调用。

一些具有不同优势的附加解决方案:

  • iOS Beta Builder,一个使用构建创建网站的 Mac 应用程序。只需将生成的文件上传到您的网络服务器。

  • Diawi:简单的 Web 服务。上传您的 IPA 文件,可选择设置密码并将链接发送给您的测试人员。

  • AppSendr:用于 beta 构建托管的 Web 服务,类似于 Testflight,但不包括设备注册过程。但提供部署实用程序以自动上传新版本。

  • HockeyKit:开源项目,用于在您自己的 PHP5 服务器上托管 beta 版本,并具有附加功能,例如用于应用内更新的客户端、自动设备特定网站和处理多个应用程序。完全基于文件和目录。

  • HockeyApp:用于测试版构建托管、应用内更新、统计信息的 Web 服务,包括设备注册、邀请和招募。还为 beta 和应用商店应用程序 (iOS + Mac) 提供服务器端崩溃报告收集、符号化(适用于所有线程)和崩溃分组。 SDK 是开源的,使用 HockeyKitQuincyKitPLCrashReporter(这是关于如何在 iOS 上收集崩溃报告的唯一安全解决方案,请参阅 this article

注意:我是HockeyKitQuincyKit的主要开发者,也是HockeyApp的开发者之一。

【讨论】:

    【解决方案2】:

    这在 TestFlight 推出服务之前是可能的。该技术源于企业分配机制。从 4.0 设备开始支持从 Web 安装。

    请记住 - 您仍然需要为一组选定的 UDID 签署 beta 发行版,您不能随意将其安装在任何设备上。他们所做的只是让 IPA 不再使用电子邮件。

    见:

    更新:我想说的是,Test Flight 是我在开发时使用过的最有用的工具之一。仅将 IPA 电子邮件从图片中删除是轻描淡写的 - 我只是试图调出技术机制。他们在管理整个测试过程方面做得非常出色。注册新设备。通知用户等。

    【讨论】:

    • 他们是怎么赚钱的,首页上写着免费?
    • 我想他们将来会推出某种优质产品。它现在是免费的,而且新的 SDK 确实令人印象深刻。它可以直接从您的测试客户端收集崩溃日志和使用信息,如果您愿意上传 dsym,它甚至可以对其进行符号化。
    • 令人印象深刻,只是我习惯了互联网上的“如果它好得令人难以置信”:)
    • 我怀疑他们会通过对生产中的服务收费来赚钱,并保持免费的测试服务。他们今天不正式支持生产使用,他们一直在他们的支持论坛中暗示即将推出的“生产解决方案”。
    • @Nick 我认为您的回答并不完全正确。 You still need to sign the beta distribution for a select set of UDIDs you can't just willy nilly install it on any device。对于企业分发配置文件,您不必指定设备,并且您可以(至少在技术上)在任何设备上安装二进制文件。但是,许可证限制您只能在分发配置文件发布到的公司内安装它。
    【解决方案3】:

    Testflight 基本上使用如前所述的普通 Ad Hoc。

    为此,您需要为每个设备提供UDID,以便将其添加到 Ad Hoc 配置文件中,使用新配置文件重新编译应用程序并重新分发新版本。

    您可以在 OTA Authentication Request 的帮助下获取UDID。这实际上是在将实际配置文件部署到设备之前在 MDM 中完成的一个步骤。它基本上会向设备询问有关自身的更多信息并将其发送回自己指定的服务器。

    第一步记录在这里:Apple OTA Configuration

    我猜 Testflight 在注册过程之后就使用这个来收集UDID、电话名称、...

    【讨论】:

      【解决方案4】:

      是的,这是 iOS 的核心功能,适用于希望分发 OTA 的企业客户。

      大概您会将您的 UDID 与应用程序一起传递给 TestFlight,然后他们使用他们的企业许可证将应用程序发送给您。我确定我遗漏了很多技术细节,但如果您想了解更多信息,Apple 有一个来自 WWDC 2010 的视频。

      登录 developer.apple.com,转至 WWDC 2010 Videos 并使用链接访问视频。您想要的视频是“Session 108 - 管理移动设备”。它非常详细地介绍了 OTA 的可能性以及进行 OTA 配置必须采取的步骤。

      【讨论】:

        【解决方案5】:

        库存 iOS 设备“容易”运行用户从拥有该设备 UDID 的任何开发者那里加载 Ad Hoc 应用程序,并在 Apple 开发者门户上的 100 个允许的设备中注册该 UDID。p>

        OTA 分发只是另一种安装来自已注册开发人员的 Ad Hoc Beta 测试分发的方式。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-02-26
          • 1970-01-01
          • 2022-11-17
          • 1970-01-01
          • 2017-03-30
          • 1970-01-01
          相关资源
          最近更新 更多