开发期间初始安装标签的使用和验证

Initial Install Tags usage and verification during Development

我正在尝试在我们的应用程序中使用 ODR,并创建了标签并将其分组在预取下的初始安装标签选项下。

  1. 我不确定如何使用开发配置文件在模拟器和设备上验证这一点。
  2. TestFlight 是验证初始安装标签使用情况的唯一选项吗?
  3. 我是否必须对标记为初始安装的资源使用 NSBundleResourceRequest?我对 Initial Install Tag 的理解是,它会随应用程序自动下载。所以,我认为不需要这个请求。如有不妥请指正

我使用初始安装标签在我们的应用程序中实现了 ODR 支持(虽然我没有使用 TestFlight 对其进行测试)。

  1. 我不确定如何使用开发配置文件在模拟器和设备上验证这一点。 -- 我通过将资源包嵌入 Bundle 本身进行了本地测试。
  2. TestFlight 是验证初始安装标签使用情况的唯一选项吗? -- 还没有测试过这个。但是,我认为答案是肯定的。
  3. 我是否必须使用 NSBundleResourceRequest,即使是对于标记为初始安装的资源? - 是的。我们获取标记为 "Download Only On Demand"、"Initial Install Tags" 和 "Prefetched Tag Order"
  4. 的资源的方式没有区别

并且我进行了一项更改,使我的应用程序可以正确使用 ODR 内容。我将 NSBundleResourceRequest 对象作为局部变量。它应该是一个实例变量。 参考:https://iosguy.com/2015/09/18/on-demand-resources/

根据 WWDC https://developer.apple.com/videos/play/wwdc2015/214/

1) 你可以在X中使用debug navigator的disk section来验证ODR 代码

然而,从 XCode 8.1 beta 开始,初始安装标签并不像预期的那样工作。正如您在所附的屏幕截图中所见。

2) 根据我对 WWDC 的理解,这应该可以在存档版本和模拟器上运行,只需 运行 来自 XCode 的应用程序即可。不仅是 TestFlight

3) 我认为您不必使用单独的提取请求,但由于这似乎是使其正常工作的唯一方法,因此应将其视为一种变通方法而不是解决方案。根据文档

Initial install tags. The resources are downloaded at the same time as the app. The size of the resources is included in the total size for the app in the App Store. The tags can be purged when they are not being accessed by at least one NSBundleResourceRequest object.

所以在我看来,这个功能并没有像记录的和预期的那样工作,应该向 Apple 提交错误。这似乎是 Apple 论坛上的结论

https://forums.developer.apple.com/thread/9530

https://forums.developer.apple.com/thread/9530