1. 程式人生 > >Xcode10打包釋出App Store,iOS9崩潰

Xcode10打包釋出App Store,iOS9崩潰

最近更新了Xcode10和macOS10.14,想著可以在暗黑模式下盡情瀟灑。然而,在用Xcode10打包提交一個版本之後,線上崩潰接踵而至。這就很尷尬了,釋出前,不管是開發自測還是測試同學的除錯,都沒有問題,一上線就各種問題。

查看了bugtags上的反饋情況,發現崩潰基本集中在iOS9系統上,Google了一波,大神們說,是Xcode10的毛病。具體情況是這樣的:

bug復現條件:
1、APP最低版本支援iOS9.0-iOS9.2.1之間的系統;

2、Xcode10打包;

3、使用xcassets管理圖片;

4、xcassets中有非jpg的圖片;

注:該問題,打蒲公英的測試包無法復現,直接在手機上執行無法復現,模擬器上無法復現(本人親測)。

解決方案:

方案一:如果沒有使用iOS12 的新功能,建議暫時用Xcode9打包,等待Xcode10.1版本修復該問題;

方案二:把xcassets圖片放到bundle裡;

方案三:最低版本支援設定為iOS9.3及以上;

方案四:把xcassets圖片全部替換成jpg,必須全部替換,不然已然存在crash風險;

方案五:把Xcode9打包生成的Assets.car替換Xcode10打包生成的Assets.car。

具體crash原因:Xcode10打包生成的Assets.car,非jpg圖片會多一套palette-img壓縮演算法的圖片(Xcode9是lzfse壓縮演算法),這也解釋了Xcode10打包生成的Assets.car會大一些的原因,jpg圖片用Xcode10打包和用Xcode9打包都只有lzfse,所以直接替換Assets.car是相容的。

至此,Xcode10打包在iOS9上引發crash的問題得到解決。

如果有說的不對,或者理解不到位的地方,還請各位大佬批評指正,謝謝您的耐心閱讀。