我的网站在桌面端可以正常访问,但在移动端Safari浏览器上会崩溃。
我如何确定它崩溃的原因?
我的网站在桌面端可以正常访问,但在移动端Safari浏览器上会崩溃。
我如何确定它崩溃的原因?
当Safari意外退出并显示您的网站时,您可以采取以下措施:
1. Safari调试控制台
使用Safari的调试控制台。在iPhone上打开:设置->Safari->高级->调试控制台=开。
对我而言,它显示:
下次使用Safari检查您的网页时,将显示调试控制台。
2. Web Inspector(从iOS 6.0开始)
如果在您的网页中找出问题变得更加复杂,请使用Web Inspector调试移动版Safari。这是一个很好的教程。
使用IOS模拟器,我发现对于这个特定的网站,我拥有的所有iOS版本5.0、5.1和6.1都能正确运行页面而不会崩溃,但在设备(iOS 5.0.1)上仍会崩溃。
我的设备运行在iOS 5上,因此我无法访问Web Inspector,但这肯定是您在设备上检查您的网站并检查您的机器上的Web Inspector的下一步。
3. 使用iPhone配置实用程序的控制台
您可以下载苹果的iPhone配置实用程序,然后可以在Safari测试期间访问移动设备的控制台。
检查您的网站,我发现了几个内存警告,最终导致Safari崩溃。
4a. 使用Xcode的调试工具
使用Xcode,您还可以访问设备的控制台(“窗口”->“组织者”->“设备”选项卡->“控制台”)。
您的情况在控制台上报告如下:
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
使用Instruments是另一种检查发生情况的复杂方式。
重新检查您的网站,我发现在Safari退出之前有很多低内存警告报告。不幸的是,这并没有直接帮助您发现网站问题,但也许可以帮助找到Safari开放的错误报告。
我通过以下方式成功调试了崩溃问题:
在控制台中找到崩溃信息,我的情况如下:
Sep 2 17:16:21 Edwards-iPhone ReportCrash[7093] : Saved report to /Library/Logs/CrashReporter/JetsamEvent-2015-09-02-171621.ips
然后进入设置中的诊断(设置>隐私>诊断和用量数据-在iOS 8.4上是这样的,在其他版本上可能位置不同),找到崩溃文件。
这样就不需要猜测哪个崩溃报告是你遇到的问题。