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."
最近項目不是太緊,安裝了Xcode8, 打包測試的時候突然報了這個錯誤,大致意思就是圖片資源里面包含了16bit或者display P3 顏色的圖片,Google了一下,唯一有這個錯誤的地方就是
ITMS-90682: can't contain 16-bit or P3 assets i...
根據上面的方法執(zhí)行步驟如下:
1.導出項目的 ipa 文件
2.定位到該ipa文件使用解壓工具解壓 ,或者修改后綴名.ipa 為 .zip后直接解壓
3. 解壓后會有Payload 文件夾,里面會有你的APP文件
4. 打開終端切換到你的app的Payload文件夾下的 .app bundle 文件夾內,形式如下:(終端輸入cd 拖入Payload里面的文件,回車)
cd path/to/Payload/your.app
5. 用 find 命令定位到 Assets.car 文件 .app bundle , 形式如下:
find . -name 'Assets.car'
6. 使用 assetutil 命令找到任何包含著 16-bit or P3 的資源文件, 對每個 Assets.car 執(zhí)行以下命令 :
sudo xcrun --sdk iphoneos assetutil --info /path/to/a/Assets.car > /tmp/Assets.json
/path/to/a/Assets.car? 替換為Assets.car文件的路徑, 如果你終端的位置依然在bundle下則直接執(zhí)行
xcrun --sdk iphoneos assetutil --info ./Assets.car >/tmp/Assets.json
7. 打開Assets.json
open /tmp/Assets.json
8. 開始查找"DisplayGamut" : "P3"? 沒找到可以試試 P3, BitsPerSample,然后記下圖片的名稱。
9. 修改圖片顏色描述文件
在你的項目中找到圖片, 顯示在finder中,使用預覽打開,然后指派描述文件為sRGB 保存關閉
所有的圖片都改完了再次打包上傳,久違的綠?回來啦
最后補充一點:
如果執(zhí)行
xcrun --sdk iphoneos assetutil --info ./Assets.car >/tmp/Assets.json
出現錯誤
Assertion failed: (tokenCount < maxCountIncludingZeroTerminator - 1), function CUIRenditionKeySetValueForAttribute, file /BuildRoot/Library/Caches/com.apple.xbs/Sources/CoreUI_host/CoreUI-374.1.1/CoreTheme/ThemeStorage/CUIThemeRendition_Support.m, line 228.
那么你一定是和我一樣,安裝了多個版本的Xcode, 而且你的command line tools設置為了xc7,
打開xcode設置, 修改command line tools 版本為xcode8 重新運行即可。
/****************09.29 更新****************/
感謝 @doveLark 的回復:
1.當提示版本無效的時候蘋果會發(fā)送郵件到開發(fā)者賬號的郵箱,郵件提示在info.plist文件里面需要添加的字段和值;
2.general->deployment info -> deployment target 我這里改為9.3
第二條,如果不適配iOS8的話,自然改一下就是最方便的 “解決方法”