Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/108.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
来自框架或Cocoapod的iOS随需应变资源?_Ios_Xcode_On Demand Resources - Fatal编程技术网

来自框架或Cocoapod的iOS随需应变资源?

来自框架或Cocoapod的iOS随需应变资源?,ios,xcode,on-demand-resources,Ios,Xcode,On Demand Resources,自iOS 9以来,iOS具有“按需资源”(ODR)功能,允许苹果托管可按需下载的资源,而不是将其放在应用程序包中。通过使用资源标签标记资产,然后使用NSResourceBundleRequest请求给定标签的资产,我们可以通过将不经常使用的资产保留在设备之外直到需要时,来减少应用程序包的大小 遗憾的是,我只能让它与Xcode中应用程序目标中专门包含的资源一起工作。有时,代码和资源不包含在应用程序目标中,而是包含在共享或外部框架中(例如,通过Cocoapods分发的库或用于跨iOS、tvOS、wa

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

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

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


我找不到任何文档专门说明使用ODR可以或不可以使用外部框架。有人知道这是否可能,如果可能,如何实现吗?

嘿,你找到了一种方法来为框架启用随需应变资源吗?很遗憾,我没有。哇,很遗憾。。我也发了我自己的问题。这只是一个粗略的猜测,但这是否取决于所使用的捆绑包?我的意思是,如果你特别提到一个框架包,你应该能够获取与之相关联的ODR?确实尝试过,不幸的是得到了同样的结果。