Xcode10打包的App在iOS 9上閃退問題的解決方案

weixin_34370347發表於2018-10-21

前言

iOS 12一發布,Xcode10的更新也就變為必須。當然,第一批更新的開發者也就更容易成為烈士,而我,也非常榮幸成的為其中一名烈士。

近幾天看到還有開發者陸續遇到這個問題,因此寫下我們踩過的坑,希望可以減少同行的工作量。

問題

Xcode 10打包提審後,iOS 9.1 以及iOS 9.2的使用者crash率飆升

原因分析

Xcode 10打包後,IPA包中的Assets.car在上傳到Testflight或者App Store後安裝到真機會閃退。真機除錯以及直接安裝IPA包到iOS 9.1以及9.2上並不會閃退。

解決方案

方案一、放棄iOS 9.2以及以下的使用者

方案二、切回Xcode 9重新打包提審

方案三、分別使用Xcode 9 和Xcode 10提審2個版本,其中Xcode 10打包的版本的Deploy Target設定為iOS 9.3,Xcode 9 打包的版本Deploy Target保持不變。

每種方案都有其優劣,具體要根據專案特點進行取捨。比如有些產品面向的使用者比較高階,iOS9的使用者數量很低,在經過產品和運營同學的同意後,可以選擇方案一。

我所在的專案iOS 9的使用者數量,鑑於投入產出比考慮,我選擇了方案二。這也是我個人比較建議的方式,成本和方案一幾乎一樣,同時也無需放棄一部分使用者。當然如果新的版本中要使用到iOS 12的特性,那麼就只能選擇方案三了,分開兩個包提審,可以兼顧新的SDK特性,同時也不需要放棄使用者。

彩蛋

Xcode 10.1中修復了這個bug,hooray!


4491497-5cbd3542da9e6399.png
image.png

補充

Xcode 10.1 GM版並沒有修復掉這個問題,所以暫時還需要採取上邊提到的幾種解決方案。

參考連結

Xcode 10.1 beta 3 Release Notes

相關文章