發現9.0 ---9.3 崩潰較多。xcode的鍋。目前 10.1 還沒解決此問題。
解決方法
:
1用xcode9 打包
2.不再兼容9.3以下的用戶
Xcode 更新文檔
已知問題:
包含使用Xcode 10或更高版本構建的資產目錄且部署目標設置為iOS 9.0,9.1或9.2的應用程序會生成與這些iOS版本的運行時不兼容的內容。(44535967,45723580,45723189)
參考資料:
查看了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的問題得到解決。
原文:https://blog.csdn.net/buyu03/article/details/83068638