ios9.2執行App,模擬器執行沒問題,但是上架AppStore後在下載執行就會閃退的問題
最近有使用者反映,在ios9.2系統上使用App,第一次開啟會閃退,但是沒有9.2系統的真機,不能直接除錯,模擬器執行又沒有問題,後來在網上查了一些資料,找到了一個解決辦法,感謝博主:http://blog.csdn.net/zhanglizhi111/article/details/654440 01
崩潰原因
在Xcode8中,如果你的圖片資原始檔裡有16點陣圖或者圖片顯示模式為P3,並且Deployment Target是iOS9.3以下的就會出現這個問題。(話說我公司的專案裡面就出現了一個小按鈕,導致了這次崩潰,不知道設計師是怎麼弄出來的這個特殊圖片…)如果你的App需要支援wide color functionality,那你就必須設定Deployment Target為iOS9.3以上。如果你的APP不需要支援wide color functionality並且你希望相容
定位到問題圖片
1.打一個ipa包,解壓你的應用的ipa包,進入到你應用的Playload資料夾。
2.用find命令定位到Assets.car檔案
find . -name 'Assets.car'
3.使用 assetutil 命令匯出圖片的資訊儲存到Assets.json檔案中
sudo xcrun --sdk iphoneos assetutil --info /path/to/a/Assets.car > /tmp/Assets.json
4.開啟剛才生成的Assets.json檔案,查詢含有”DisplayGamut” : “P3”, “Encoding” : “ARGB-16″的內容。這個對應的Name就是出現問題的圖片了。
{ "SizeClass Vertical" : "universal", "Graphics" : "GLES2,0", "Name" : "ianisme.com", "Scale" : 2, "Idiom" : "universal", "Memory" : "512MB", "LayoutDirection" : "0 - Horizontal", "DisplayGamut" : "P3", "Encoding" : "ARGB-16", "SizeClass Horizontal" : "universal", "Image Type" : "kCoreThemeOnePartScale", "AssetType" : "Image", "Subtype" : 0, "EdgeInsets" : "top:0 left:0 bottom:0 right:0" },
找到問題圖片就好辦了,要麼刪了在做一個,要麼直接轉換圖片格式,轉換方法請看原文:http://blog.csdn.net/zhanglizhi111/article/details/65444001