剛升級Xcode 8抵卫, 幺蛾子又出現(xiàn)了。提交的時(shí)候出了這個(gè)問題介粘。 BTW,感謝google雅采。以下為解決方案:‘
在 Xcode 8 中,當(dāng)你資源文件中[含有16位圖]或者[圖片顯示模式γ值為'P3']且iOS targets設(shè)定為iOS 9.3以下就會(huì)出現(xiàn)這個(gè)問題. 如果你的app需要支持廣色域顯示的話婚瓜,那你必須得把target設(shè)置成iOS 9.3+,相反愚铡,如果你的app不需要支持廣色域且你想兼容 iOS 9.3 之前的項(xiàng)目胡陪,你就得把所有的16位的或者顯示模式為'P3'圖片全都替換成8位模式的SRGB顏色的圖片。
你可以通過運(yùn)行“assetutil”在iTunes Connect的錯(cuò)誤信息中找到16-bit 或 P3 資源文件督弓。離線的解決方案如下:
1.導(dǎo)出項(xiàng)目的 ipa 文件
2.定位到該ipa文件修改后綴名.ipa 為 .zip.
解壓該 .zip 文件. 解壓后的目錄里面會(huì)有一個(gè)包含著你的 app bundle 文件的 Payload 文件夾.
打開終端病切換到你的app的Payload文件夾下的 .app bundle 文件夾內(nèi),形式如下:
cd path/to/Payload/your.app
- 用 find 命令定位到 Assets.car 文件 .app bundle , 形式如下:
find . -name 'Assets.car'
- 使用 assetutil 命令找到任何包含著 16-bit or P3 的資源文件, 對每個(gè) Assets.car 之行以下命令 :
sudo xcrun --sdk iphoneos assetutil --info /path/to/a/Assets.car > /tmp/Assets.json
注:這里的/path/to/a/Assets.car 指的是Assets.car的路徑蒂阱,不要直接復(fù)制?裉痢!荞胡!使用上一步find命令的結(jié)果。
打開上一步生成的 /tmp/Assets.json 文件并查找包含有 “DisplayGamut": “P3” 或者相關(guān)的內(nèi)容. 這段json的"Name"字段對應(yīng)的值就是16位或顯示的γ值為P3的資源文件名.
找到這個(gè)資源文件修改為 8位的sRGB形式,重新編譯上傳你的app即可.