开发者社区 问答 正文

IOS随需应变资源不包括PNG图像

我在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文件夹中。但是这个解决方案不方便我的项目,它使用各种文件夹中的共享资源。

谢谢

展开
收起
游客5akardh5cojhg 2019-12-04 14:25:10 421 分享 版权
阿里云 AI 助理回答

遇到在iOS上使用On-Demand Resources(ODR)时,特别是发现PNG文件依然被包含在.ipa的Payload中而其他类型文件没有此问题的情况,可能与Xcode的处理方式或项目配置有关。以下是一些建议来尝试解决这个问题:

  1. 检查资源标记:确保所有PNG文件都被正确地分配到了“test”标签下。有时候即使资源被放入了正确的Asset Catalog,但如果没有正确设置标签,Xcode可能不会将其视为按需资源。

  2. 清理并重建项目:有时候Xcode的缓存可能导致这种不一致的行为。尝试执行Product > Clean Build Folder,然后重新构建你的项目。

  3. 验证Asset Catalog设置:进入项目的Assets.xcassets,选择包含PNG文件的Asset Catalog,确认这些PNG文件没有直接添加到App Bundle中,而是配置为按需加载。

  4. 查看Build Phases:检查项目的Build Phases设置,确保没有额外的Copy Files阶段或者其他步骤意外地将PNG文件复制到了Payload中。

  5. 更新Xcode和macOS:你提到使用的是Xcode 11.2.1和macOS 10.14.6,虽然这不太可能是直接原因,但升级到最新版本的Xcode和macOS可能会解决一些已知的问题。新版本通常会修复旧版本中的bug。

  6. 查看资源引用:确保代码中对这些PNG文件的引用是通过ODR API完成的,而不是直接通过文件路径。错误的引用方式可能导致它们被包含在主包中。

  7. 查看日志和报告:构建时查看Xcode的日志输出,看是否有任何关于这些PNG文件处理的警告或错误信息。同时,可以生成一个详细的构建报告(Product > Generate Output > Generate Build Report),从中寻找线索。

如果以上方法都不能解决问题,考虑联系Apple Developer Support或者在Apple Developer Forums上发帖寻求帮助,提供尽可能详细的信息,包括你的项目配置、Xcode版本以及已经尝试过的解决方案,以便获得更专业的技术支持。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答
问答分类:
问答标签:
问答地址: