来自框架或 Cocoapod 的 iOS 点播资源?

Ube*_*son 6 xcode ios on-demand-resources

从 iOS 9 开始,iOS 具有“按需资源”(ODR) 功能,允许 Apple 托管可以按需下载的资源,而不是将它们放在应用程序包中。通过使用资源标签标记资产,然后使用 anNSResourceBundleRequest请求给定标签的资产,我们可以通过将不常用的资产保留在设备之外直到需要来减少我们的应用程序包大小。

遗憾的是,我只能让它与 Xcode 中应用程序目标中专门包含的资源一起使用。有时代码和资源不包含在应用程序目标中,而是包含在共享或外部框架中(例如,通过 Cocoapods 分发的库或用于跨 iOS、tvOS、watchOS、macOS 应用程序共享代码和资产的共享框架) )。理想情况下,由于这些框架最终会嵌入到您的应用程序目标中,Xcode 只需能够从嵌入的框架中提取资源并标记它们以供下载。

尽管这些框架目标在其项目文件中有“资源标签”部分,我们仍然可以在这些目标中配置资源标签,但在运行时,资源请求只会失败并显示NSBundleOnDemandResourceInvalidTagError. 调试导航器中的“磁盘”窗格也不显示按需资源部分。

我找不到任何特别说明使用 ODR 是否可以使用外部框架的文档。有谁知道这是否可能,如果可能,如何实现?