问题详述:
- 用xocde 8打包出现如下问题,
ERROR ITMS-90682: "Invalid Bundle. The asset catalog at 'Payload/****.app/Assets.car' can't contain 16-bit or P3 assets if the app is targeting iOS releases earlier than iOS 9.3."
-
出现这个问题有两种解决方法
- 1.修改最低版本号可是尝试iOS8.1 ~iOS8.4之间。(我只是看到网上有这个方法,但是并没有解决,但是还试一下吧,万一成了呢)
- 2.率复杂
- 导出项目的 ipa 文件
- 定位到该ipa文件使用解压工具解压 ,或者修改后缀名.ipa 为 .zip后直接解压
- 解压后会有Payload 文件夹,里面会有你的APP文件
- 打开终端切换到你的app的Payload文件夹下的 .app bundle 文件夹内,形式如下:(终端输入cd 拖入Payload里面的文件,回车)
cd path/to/Payload/your.app
- 用 find 命令定位到 Assets.car 文件 .app bundle , 形式如下:
find . -name 'Assets.car'
- 使用 assetutil 命令找到任何包含着 16-bit or P3 的资源文件, 对每个 Assets.car 执行以下命令 :
sudo xcrun --sdk iphoneos assetutil --info /path/to/a/Assets.car > /tmp/Assets.json
- 如果在执行sudo xcrun --sdk iphoneos assetutil这行命令的时候出现问题
>Assertion failed: (tokenCount < maxCountIncludingZeroTerminator - 1), function CUIRenditionKeySetValueForAttribute, file /BuildRoot/Library/Caches/com.apple.xbs/Source......有可能是装了多个xocode,打开xcode设置, 修改command line tools 版本为xcode8 重新运行即可。
- **/path/to/a/Assets.car** 替换为Assets.car文件的路径, 如果你终端的位置依然在bundle下则直接执行
xcrun --sdk iphoneos assetutil --info ./Assets.car >/tmp/Assets.json
- 打开Assets.json
open /tmp/Assets.json
- 开始查找"DisplayGamut" : "P3" 没找到可以试试 P3, BitsPerSample,然后记下图片的名称。
- 使用ps或者等图片处理工具,把图片保存成sRGB即可