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."
最近項(xiàng)目不是太緊辆亏,安裝了Xcode8圃泡, 打包測(cè)試的時(shí)候突然報(bào)了這個(gè)錯(cuò)誤,大致意思就是圖片資源里面包含了16bit或者display P3 顏色的圖片,Google了一下七咧,唯一有這個(gè)錯(cuò)誤的地方就是
ITMS-90682: can't contain 16-bit or P3 assets i...
根據(jù)上面的方法執(zhí)行步驟如下:
1.導(dǎo)出項(xiàng)目的 ipa 文件
2.定位到該ipa文件使用解壓工具解壓 ,或者修改后綴名.ipa 為 .zip后直接解壓
3. 解壓后會(huì)有Payload 文件夾,里面會(huì)有你的APP文件
4. 打開終端切換到你的app的Payload文件夾下的 .app bundle 文件夾內(nèi),形式如下:(終端輸入cd 拖入Payload里面的文件乎赴,回車)
cd path/to/Payload/your.app
5. 用 find 命令定位到 Assets.car 文件 .app bundle , 形式如下:
find . -name 'Assets.car'
6. 使用 assetutil 命令找到任何包含著 16-bit or P3 的資源文件, 對(duì)每個(gè) 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. 修改圖片顏色描述文件
在你的項(xiàng)目中找到圖片勉失, 顯示在finder中羹蚣,使用預(yù)覽打開,然后指派描述文件為sRGB 保存關(guān)閉
所有的圖片都改完了再次打包上傳乱凿,久違的綠?回來啦
最后補(bǔ)充一點(diǎn):
如果執(zhí)行
xcrun --sdk iphoneos assetutil --info ./Assets.car >/tmp/Assets.json
出現(xiàn)錯(cuò)誤
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.
那么你一定是和我一樣度宦,安裝了多個(gè)版本的Xcode, 而且你的command line tools設(shè)置為了xc7,
打開xcode設(shè)置告匠, 修改command line tools 版本為xcode8 重新運(yùn)行即可。
/****************09.29 更新****************/
感謝 @doveLark 的回復(fù):
1.當(dāng)提示版本無效的時(shí)候蘋果會(huì)發(fā)送郵件到開發(fā)者賬號(hào)的郵箱,郵件提示在info.plist文件里面需要添加的字段和值;
2.general->deployment info -> deployment target 我這里改為9.3
第二條离唬,如果不適配iOS8的話后专,自然改一下就是最方便的 “解決方法”