iOS 線上版本圖片資源格式的問題致使的閃退


連接:https://www.jianshu.com/p/6492779cb89e
來源:簡書

  致使這種問題的緣由是:在 Xcode 8 中,當你資源文件中[含有16位圖]或者[圖片顯示模式γ值爲'P3']且iOS targets設定爲iOS 9.3如下就會出現這個問題。若是你的app須要支持廣色域顯示的話,那你必須得把target設置成iOS 9.3+,相反,若是你的app不須要支持廣色域且你想兼容 iOS 9.3 以前的項目,你就得把全部的16位的或者顯示模式爲'P3'圖片全都替換成8位模式的SRGB顏色的圖片。
  

解決辦法 :
一、導出ipa包;ios

二、而後把該ipa文件修改後綴名.ipa 爲 .zip. 這時候就變成了一個.zip的壓縮包了;json

三、解壓該 .zip 文件. 解壓後的目錄裏面會有一個包含着你的 app bundle 文件的 Payload 文件夾。xcode

四、打開終端病切換到你的app的Payload文件夾下的 .app bundle 文件夾內,形式以下:app

cd path/to/Payload/your.appiphone

五、用 find 命令定位到 Assets.car 文件 .app bundle , 形式以下:code

find . -name 'Assets.car'blog

六、使用 assetutil 命令找到任何包含着 16-bit or P3 的資源文件, 對每一個 Assets.car 之行如下命令 :圖片

sudo xcrun --sdk iphoneos assetutil --info /Users/feng/Desktop/Payload/cocc-passengerservice-ios.app/Assets.car> ~/Desktop/Assets.jsonip

注:這裏的/path/to/a/Assets.car指的是Assets.car的路徑,不要直接複製!!!使用上一步find命令的結果。資源

七、打開上一步生成的 /tmp/Assets.json 文件並查找包含有 「DisplayGamut": 「P3」 或者相關的內容. 這段json的"Name"字段對應的值就是16位或顯示的γ值爲P3的資源文件名.



執行完上述的命令就能看到下邊的界面了

這個是正常的

看下邊的這個圖片就有問題了

找到相似於上邊的圖片 都是有問題的 而後去你的xcode中 找到這些圖片 我是直接刪除了而後讓UI在作圖

相關文章
相關標籤/搜索