App启动就闪退引发的深思

引言:

快下班的时候,测试Q我说:“小哥哥,小哥哥,你的app怎么一启动就闪退啊,而且出现闪退后,就一直都闪退。”我去,这是什么鬼,为啥我以前没发现,没办法,只能找测试妹子,问清楚具体什么情况,然而,妹子也没办法在别的手机上复现这个问题。我只好把日志导出来查看,到底发生了啥,看看,测试妹子对它做了啥。反复查看日志,发现闪退的时候压根没有打印日志,也就是说,app压根还没起来就挂了。这也太神奇了吧。翻看前面的日志,发现测试的小妹妹修改了手机时间(正好要测试跟本地时间有关的功能)。


# 一. 解决方案

说重点了,哈哈,反复测试及用不同的手机测试发现,原来在iOS11及以上系统,当你的本地时间大于描述文件过期时间时,安装在手机里的描述会被删除掉,并且此时就算你想用xcode直接安装应用也会告诉你描述文件无效,而且在手机里也看不到描述文件了,就算你改完后在改回来,app也无法使用,只能重新安装。描述被删除掉后,启动出现以下闪屏就退出了。感觉苹果这样处理不是很好,有点让人摸不着头脑。在测试过程中还发现,iOS11以下的系统就和谐多了,当把时间改到过期以后,你启动app时会显示说app不可用,当再修改回去时app可以正常使用,也就说,在iOS 11以下是没有删除描述文件,只是禁用了。

虽然不是什么大问题,记录分享一下给大家,免得大家跟我一样,加班找闪退的原因。