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

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

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

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

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

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

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

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

准备工作

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 137,131评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 180,259评论 25 708
  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 14,512评论 2 59
  • 专业考题类型管理运行工作负责人一般作业考题内容选项A选项B选项C选项D选项E选项F正确答案 变电单选GYSZ本规程...
    小白兔去钓鱼阅读 11,000评论 0 13
  • ‌颠覆式创新是来把你的蛋糕整体拿走的 ‌无痛截肢型的手术 熊猫 熊体型大,能杂食,能冬眠 1.2000多万年前,气...
    程本超阅读 197评论 0 0

友情链接更多精彩内容