美文网首页
iOS 证书过期应用闪退的重现及实验

iOS 证书过期应用闪退的重现及实验

作者: F森 | 来源:发表于2018-10-09 11:26 被阅读816次

    这段时间一直用旧的证书打包做测试,给几位同事安装了应用,最近一段时间反馈应用启动时会闪退,把手机拿过来重新装一个发现又没有问题,想复现问题一直没找到方法,开始怀疑是不是证书有问题了,但是总是因为一些临时的事情又把这事给忘了。

    今天早上一位同事又反馈应用又闪退了,从前面多次的反馈得知:
    1、总是在应用启动的那瞬间闪退;
    2、不是在使用期间闪退;
    3、每次我设备上打开的都没有问题;
    4、给他们重新安装后恢复正常。

    从前面几点分析了一下,猜测可能是:应用安装后超过一定时间就会闪退,我手中的设备几乎每天都会安装新包所以我一直没遇到这个问题。

    想了一下是不是因为证书过期了?

    我手上的开发者账号因为一些原因被弃用了(还忘记了密保😑),没有继续续费,新证书还没下来,所以还是一直用旧的账号做打包测试,可以肯定的是证书是过期了。

    从上面不难看出,苹果的开发者证书虽然过期了,但是还是可以进行真机测试的!!!

    既然猜到可能是证书过期引起的,而且是在安装后间隔一定时间,那么怎么进行问题重现呢?

    准备工作

    1. 打包一个新的安装包,确认运行没有问题
    2. 修改系统时间:设置-通用-日期与时间-关闭“自动设置”-修改日期

    实验一:将当前时间往前设置“一”天
    结果:正常运行

    实验二:将当前时间往前设置“三”天
    结果:正常运行

    实验三:将当前时间往前设置“五”天
    结果:正常运行

    实验四:将当前时间往前设置“七”天
    结果:闪退

    通过上面的实验可以验证我们前面反馈的问题:间隔一段时间后应用会闪退,也验证了前面的猜测:证书过期导致应用闪退。

    为了进一步确认问题,闪退后,多次点击应用图标启动,结果都是一样:启动闪退。
    将系统时间设置为:自动设置,让系统时间恢复正常,重新点击图标启动应用,结果还是闪退,试着修改成其他时间,应用还是处于闪退状态。

    可以得出一个结论:一旦证书过期,应用闪退后,不管如何修改系统时间,应用都会启动失败。

    至此,还有一个问题没有确定,之前的实验我们是将时间设置为间隔2天。那么安装打包应用后间隔“六”天会不会闪退呢,是间隔“六”天还是间隔“七”天算作一个周期呢?

    在进行实验前先做些准备工作:

    1. 恢复系统默认时间
    2. 重新打包应用

    实验一:打包应用
    结果:正常运行

    实验二:将当前时间往前设置“六”天
    结果:正常运行

    实验三:将当前时间往前设置“七”天
    结果:闪退

    结论:证书过期后,打包安装应用,间隔“七”天后应用会闪退。

    最后还有一个问题:将系统时间设置为过去的时间会怎么样。

    同样的在进行实验前先做些准备工作:

    1. 恢复系统默认时间
    2. 重新打包应用

    实验一:打包应用
    结果:正常运行

    实验二:将当前时间往后设置“五”天
    结果:正常运行

    实验三:将当前时间往后设置“9”天
    结果:正常运行

    实验三:将当前时间往后设置“28”天
    结果:正常运行

    结论:将系统时间设置为过去的任意时间应用正常运行。

    最终结论:证书过期还是能够进行真机测试的,间隔“七”天没有重新打包更新程序会导致应用闪退。

    希望上面的实验能够帮助到有需要的朋友,或是感兴趣的朋友可以安照上面的步骤进行实验和重现。

    相关文章

      网友评论

          本文标题:iOS 证书过期应用闪退的重现及实验

          本文链接:https://www.haomeiwen.com/subject/dhleaftx.html