为什么某些Unicode文本消息会使iPhone OS崩溃?


31

最近,过去几周,Internet上出现了新的“小故障”,如果发送了iPhone用户,则会出现以下情况:

  effective. 
      Power
           لُلُصّبُلُلصّبُررً ॣ ॣh ॣ ॣ
 冗

通过iMe​​ssage,它将使手机操作系统暂时崩溃,并强制重新启动接收手机。

为什么这样做?


3
实际上,我认为只需要阿拉伯字符(也许后面还有阿拉伯字符)。“有效功率”文本只是一个填充符,可以是任何内容,但应足够长,以使通知在外来字符处被截断(或至少尝试这样做,因为这会导致崩溃)。

Answers:


36

如果您需要解决此问题,请使用Siri或使用iMessage的Mac向自己发送新消息。参见https://support.apple.com/zh-cn/HT204897

这是一个三步恢复过程,将来的软件更新将修复此错误。

  1. 要求Siri“阅读未读的邮件”。
  2. 使用Siri回复恶意消息。回复后,您将可以再次打开“消息”。
  3. 如果问题仍然存在,请点击并按住恶意消息,再点击“更多”,然后从线程中删除该消息。

至于为什么发生,这是Notification Center呈现此消息的Unicode内容的方式中的一个特定错误。该代码执行“ unsafe”操作(类似于5除以0,然后不检查意外结果),从而导致未处理的错误。

然后,由于Notification Center无法呈现文本块,最终导致Springboard崩溃,后者没有代码来优雅地处理此故障。当没有特定的错误处理程序时,大多数操作都具有故障保护功能“自行重启”以尝试纠正错误。

Unicode是一种编码字符的方式,用于处理字符数大于英语的语言。程序员可能会遇到问题,因为他们学会了使用ASCII文本进行编程,而忽略了编写具有完全Unicode支持的软件。

一篇不错的文章解释说:“如果您仍以这种方式进行编程,那您将比不相信细菌的医生好太多了”。

另一篇文章解释了这一具体情况良好。

Apple可以进行更严格的代码审查,进行特定的单元测试,或者让最终用户像在这种情况下类似情况下对它们的代码进行模糊测试


6

苹果需要修复。

问题似乎来自电话尝试在通知中显示消息的方式。这些字符会导致该系统损坏,因此它会在崩溃前短暂尝试显示它,然后重新设置手机以进行修复。

这是在Apple解决问题之前可以做的一些短期修复。

  • 让发送给您恶意消息的人发送另一条消息,以有效地消除初始链

  • 通过Siri,共享表或Mac发送消息。

  • 另一位读者指出,“通过“照片”应用向联系人发送照片可以使他们访问消息历史记录并删除对话”

来源:http//www.redmondpie.com/how-to-fix-ios-text-messages-crash-bug/

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.