Xcode10打包的App在iOS 9上闪退问题的解决方案

前言

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!


Xcode10打包的App在iOS 9上闪退问题的解决方案_第1张图片
image.png

补充

Xcode 10.1 GM版并没有修复掉这个问题,所以暂时还需要采取上边提到的几种解决方案。

参考链接

Xcode 10.1 beta 3 Release Notes

你可能感兴趣的:(Xcode10打包的App在iOS 9上闪退问题的解决方案)