1. 程式人生 > >ios9.2執行App,模擬器執行沒問題,但是上架AppStore後在下載執行就會閃退的問題

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並且你希望相容

iOS老版本,那麼你需要將所有16-bit or P3 assets的圖片轉換為8-bit sRGB assets

定位到問題圖片

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