Репост из: Apple Nuts
🤯 iOS 14.2 b4 弹窗 bug 的技术解读和解决方案
使用 iOS 14.2 beta 4 的用户会在解锁后收到 「现在有新的 iOS 更新可用。请从 iOS 14 beta 版进行更新」的提示消息,非常闹心。
这个问题其实在 2018 年的iOS 12 beta 时代发生过一次一模一样的问题。当时导致问题的原因是因为 lockdownd 二进制文件控制系统激活,会针对ReleaseType 是 beta 的设定一个时间戳控制过期时间,然后 Springboard 会有相关函数对比验证是否测试版系统已经过期。
这个过期时间其实从 iOS 7 开始就设置的非常久远,可能会长达一年之久,就是为了确保过期前一定会有新的 beta 版本释放。
一旦到达这个过期时间,系统界面就会弹出这个窗口,要求你更新系统版本。
但是就是这个计算函数出现了问题,导致它认为现在的时刻已经过期了,所以要求你更新。
通过我的解释,你可能已经意识到了,这个bug无法通过屏蔽 OTA URL、卸载描述文件等方式解决。因为问题原因来自于系统内部,而不是外部。
暂时的解决方法:
1⃣️ 忍忍,每次解锁点一下。直到 Apple 发布新的测试版。
2⃣️ 尝试将系统时间向前调整一小段时间
⚠️ 注意不要调整太多(一周、一年这种),这样会让所有 HTTPS 请求失败。
使用 iOS 14.2 beta 4 的用户会在解锁后收到 「现在有新的 iOS 更新可用。请从 iOS 14 beta 版进行更新」的提示消息,非常闹心。
这个问题其实在 2018 年的iOS 12 beta 时代发生过一次一模一样的问题。当时导致问题的原因是因为 lockdownd 二进制文件控制系统激活,会针对ReleaseType 是 beta 的设定一个时间戳控制过期时间,然后 Springboard 会有相关函数对比验证是否测试版系统已经过期。
这个过期时间其实从 iOS 7 开始就设置的非常久远,可能会长达一年之久,就是为了确保过期前一定会有新的 beta 版本释放。
一旦到达这个过期时间,系统界面就会弹出这个窗口,要求你更新系统版本。
但是就是这个计算函数出现了问题,导致它认为现在的时刻已经过期了,所以要求你更新。
通过我的解释,你可能已经意识到了,这个bug无法通过屏蔽 OTA URL、卸载描述文件等方式解决。因为问题原因来自于系统内部,而不是外部。
暂时的解决方法:
1⃣️ 忍忍,每次解锁点一下。直到 Apple 发布新的测试版。
2⃣️ 尝试将系统时间向前调整一小段时间
⚠️ 注意不要调整太多(一周、一年这种),这样会让所有 HTTPS 请求失败。