如何确定Mobile Safari崩溃的原因?

时间:2013-04-29 18:51:16

标签: iphone crash mobile-safari

我的网站在Mobile Safari上崩溃,但在桌面上运行正常。

如何确定崩溃的原因?

2 个答案:

答案 0 :(得分:22)

当Safari退出意外显示您的网站时,您可以执行以下操作:

<强> 1。 Safari调试控制台

使用Safari的调试控制台。在iPhone中打开:设置 - &gt; Safari-&gt;高级 - &gt;调试控制台=打开。

对我说它

  • 第6行上的HTML错误(无法识别键“宽度”的视口参数值“设备宽度”和无法识别键“用户可扩展”的视口参数值“否”。)
  • 2个HTML提示也在第6行。

下次使用Safari检查网页时,将显示调试控制台。

<强> 2。 Web Inspector(来自iOS 6.0)

如果在网页中发现问题变得越来越复杂,请使用Web Inspector调试Mobile Safari。 It is a great tutorial for this.

使用IOS模拟器我发现对于这个特定的网站,我拥有的所有iOS版本,5.0,5.1和6.1都正确地运行页面,但页面崩溃却在设备(iOS 5.0.1)上仍然崩溃。

我的设备在iOS 5上运行,因此我无法访问Web Inspector,但这肯定是您在设备上检查站点并检查计算机上的Web Inspector的下一步。

第3。使用iPhone配置实用程序的控制台

您可以下载Apple的iPhone Configuration Utility,然后您可以在Safari测试期间访问移动设备的控制台。

检查您的网站我看到几个内存警告,最终导致Safari崩溃。

<强> 4A。使用Xcode的调试工具

使用Xcode,您还可以访问设备的控制台(Window-&gt; Organizer-&gt; Devices标签 - &gt;控制台)。

您的案例在控制台上报告了以下内容:

Apr 30 10:15:18 unknown kernel[0] <Debug>: launchd[2489] Builtin profile: MobileSafari (sandbox)   
Apr 30 10:15:38 unknown MobileSafari[2489] <Warning>: Received memory warning. 
Apr 30 10:15:39 unknown SpringBoard[15] <Warning>: Received memory warning. 
Apr 30 10:15:50 unknown UserEventAgent[12] <Notice>: jetsam: kernel termination snapshot being created 
Apr 30 10:15:50 unknown com.apple.launchd[1] <Notice>: (UIKitApplication:com.apple.mobilephone[0xb2a4]) Exited: Killed: 9
Apr 30 10:15:50 unknown com.apple.launchd[1] <Notice>: (UIKitApplication:com.apple.mobilesafari[0xf755]) Exited: Killed: 9
Apr 30 10:15:50 unknown SpringBoard[15] <Warning>: Application 'Phone' exited abnormally with signal 9: Killed: 9
Apr 30 10:15:50 unknown SpringBoard[15] <Warning>: Application 'Safari' exited abnormally with signal 9: Killed: 9
Apr 30 10:15:52 unknown ReportCrash[2491] <Error>: Saved crashreport to /Library/Logs/CrashReporter/LowMemory-2013-04-30-101552.plist using uid: 0 gid: 0, synthetic_euid: 0 egid: 0

<强> 4b中。使用Xcode的调试工具,Instruments

检查正在发生的事情的另一种复杂方法是​​使用仪器。

再次检查您的网站我看到Safari在退出之前报告了许多低内存警告。遗憾的是,它并不能帮助您发现网站问题,但可能有助于查找Safari开放式错误报告。

答案 1 :(得分:3)

通过执行以下操作,我成功调试了崩溃:

  1. 使用xcode连接到手机控制台
  2. 在控制台中找到崩溃,在我看来是这样的:

    Sep 2 17:16:21 Edwards-iPhone ReportCrash [7093]:保存的报告到/Library/Logs/CrashReporter/JetsamEvent-2015-09-02-171621.ips

  3. 然后转到诊断设置(设置&gt;隐私&gt;诊断和使用数据 - 在ios 8.4上。它在其他版本的不同位置)并找到崩溃文件。

  4. 这样就无需猜测哪个崩溃报告了您遇到的崩溃。