我在IOS上使用onDemandResources(ODR)有问题。
我将项目的所有资源添加到“test”标记中,但是PNG文件也保留在.ipa Payload文件夹中。 也就是说,如果我导出一个归档文件并在IPA文件中检查,那么在Payload文件夹中就应该有按需的PNG资源。
其他类型的文件没有出现这种情况:jpg、xml、mp3等等。
PNG文件也被正确地插入到onDemandResources文件夹中的.assetpack文件中使用XCode 11.2.1和MacOS 10.14.6
我试过使用SceneKitAsset文件夹,这样就不会将PNG插入到IPA的有效负载中,而是只插入onDemandResources文件夹中。但是这个解决方案不方便我的项目,它使用各种文件夹中的共享资源。
谢谢
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
遇到在iOS上使用On-Demand Resources(ODR)时,特别是发现PNG文件依然被包含在.ipa的Payload中而其他类型文件没有此问题的情况,可能与Xcode的处理方式或项目配置有关。以下是一些建议来尝试解决这个问题:
检查资源标记:确保所有PNG文件都被正确地分配到了“test”标签下。有时候即使资源被放入了正确的Asset Catalog,但如果没有正确设置标签,Xcode可能不会将其视为按需资源。
清理并重建项目:有时候Xcode的缓存可能导致这种不一致的行为。尝试执行Product > Clean Build Folder,然后重新构建你的项目。
验证Asset Catalog设置:进入项目的Assets.xcassets,选择包含PNG文件的Asset Catalog,确认这些PNG文件没有直接添加到App Bundle中,而是配置为按需加载。
查看Build Phases:检查项目的Build Phases设置,确保没有额外的Copy Files阶段或者其他步骤意外地将PNG文件复制到了Payload中。
更新Xcode和macOS:你提到使用的是Xcode 11.2.1和macOS 10.14.6,虽然这不太可能是直接原因,但升级到最新版本的Xcode和macOS可能会解决一些已知的问题。新版本通常会修复旧版本中的bug。
查看资源引用:确保代码中对这些PNG文件的引用是通过ODR API完成的,而不是直接通过文件路径。错误的引用方式可能导致它们被包含在主包中。
查看日志和报告:构建时查看Xcode的日志输出,看是否有任何关于这些PNG文件处理的警告或错误信息。同时,可以生成一个详细的构建报告(Product > Generate Output > Generate Build Report),从中寻找线索。
如果以上方法都不能解决问题,考虑联系Apple Developer Support或者在Apple Developer Forums上发帖寻求帮助,提供尽可能详细的信息,包括你的项目配置、Xcode版本以及已经尝试过的解决方案,以便获得更专业的技术支持。