iOS 按需资源 - 仅按需下载。调试

Posted

技术标签:

【中文标题】iOS 按需资源 - 仅按需下载。调试【英文标题】:iOS On-Demand Resources - Download Only On Demand. Debuging 【发布时间】:2019-04-01 21:22:14 【问题描述】:

我正在为我的应用中的多个视频使用点播资源。我已经标记了资源,并将它们放在 Targets Resource Tags 中的“按需下载”标签中。我使用 NSBundleResourceRequest 下载资源,一切都很好。当我执行代码时,资源会被下载,我可以在 xcode 的磁盘部分看到这个。

对于我的问题,我认为我不需要发布我的代码。

我的问题是,当我在我的设备上从 xcode 运行应用程序时,我看到 xcode 运行应用程序,并立即将视频复制到应用程序,甚至在我执行下载代码之前。另外,如果我在设置中检查我的应用程序,iPhone 存储,我发现该应用程序占用了大量空间,因为视频已经下载。为什么视频在“下载”之前就已经占用了存储空间?

是不是因为我在调试应用,但是当我发布应用时,视频只有在用户执行下载代码时才会下载?

这似乎是一个基本问题,但我看不到任何人解决这一点/

谢谢

【问题讨论】:

【参考方案1】:

是不是因为我在调试应用,但是当我发布应用时,视频只有在用户执行下载代码时才会下载?

是的。 Simulator 不是真正的设备,Xcode 也不是服务器。你对资源的访问被正确模拟了——在你要求开始访问它们之前它们是零,然后它们开始工作——所以你可以进行测试,这才是最重要的。但是要获得真正的体验,您应该在设备上通过 TestFlight 运行。有关更多信息,请参阅https://developer.apple.com/library/archive/documentation/FileManagement/Conceptual/On_Demand_Resources_Guide/TestingPerformance.html

【讨论】:

谢谢。这就说得通了。我也会试试 TestFlight。

以上是关于iOS 按需资源 - 仅按需下载。调试的主要内容,如果未能解决你的问题,请参考以下文章

是否可以仅按需动态触发@PostLoad 方法的调用

仅按需从 TThread 动态初始化和调用 LoadLibrary 一次

按需资源直接访问

是否需要请求 iOS 按需资源的预取标签?

lldb 没有按需生成任何数据

iOS 应用程序中的按需资源 AppStore 上传失败 - 不允许的路径