如何在iOS 6.1上重现网站崩溃

我收到一个错误报告,说这个网站在iOS 6.1上查看时崩溃了,不过我猜这是iOS 6.1以上的浏览器版本比操作系统本身更重要。 我不拥有任何iOS设备,所以我不知道如何重现/调查问题。

有没有人有一个build议,我可能会重现这个问题在Windows / Ubunutu? 我尝试http://www.browserstack.com/,但他们提供的最新版本是iOS 6.0。

在不太可能的情况下,任何人有一个想法为什么崩溃发生,请让我知道。 在主页上有一个embedded的YouTubevideo,我听说闪光灯和iOS是同床异梦,所以我想知道这是否是原因?

更新

我能够重现该问题,并从控制台日志中获取此信息:

Feb 14 12:45:54 Aaron Bragers-iPhone MobileSafari [45279]:CGAffineTransformInvert:奇异matrix。 Feb 14 12:45:56 Aaron Bragers-iPhone MobileSafari [45279]:CGAffineTransformInvert:奇异matrix。 Feb 14 12:45:56 Aaron Bragers-iPhone MobileSafari [45279]:CGAffineTransformInvert:奇异matrix。 Feb 14 12:45:57 Aaron Bragers-iPhone MobileSafari [45279]:CGAffineTransformInvert:奇异matrix。 Feb 14 12:45:59 Aaron Bragers-iPhone ReportCrash [46048]:不保存Jetsam日志,因为内核没有数据。 2月14日12:45:59 Aaron-Bragers-iPhone UserEventAgent [13]:jetsam:内核终止快照被创buildFeb 14 12:45:59 Aaron Bragers-iPhone MobileSafari [45279]:CGAffineTransformInvert:奇异matrix。 Feb 14 12:46:04 Aaron Bragers-iPhone MobileSafari [45279]:CGAffineTransformInvert:奇异matrix。 Feb 14 12:46:04 Aaron Bragers-iPhone MobileSafari [45279]:CGAffineTransformInvert:奇异matrix。 Feb 14 12:46:05 Aaron Bragers-iPhone MobileSafari [45279]:CGAffineTransformInvert:奇异matrix。 Feb 14 12:46:06 Aaron Bragers-iPhone MobileSafari [45279]:CGAffineTransformInvert:奇异matrix。

…接着是大量的内存警告。

您的网站导致内存泄漏,所以iOS正在closuresSafari。 看起来你将不得不按照这些说明进行debugging。


视窗

在Windows中尝试重现它并不是什么好事。 唯一的select是下载适用于Windows的Safari 5 ,这可能会产生类似的错误。

但是,这并不使用与移动Safari相同的WebKit版本(Safari的Windows版本比较老),所以您可能需要借用朋友的Mac并遵循以下步骤:

苹果电脑

1.在iOS模拟器中testing您的网站

获取Xcode

如果您还没有,请从Mac App Store下载Xcode 。

做一个空白的项目

文件 – >新build项目。 selectSingle View应用程序(或任何其他iOS应用程序,没关系)。 按下一步。 select任何项目名称(无所谓)。 按next,然后指定一些位置,然后按Create。

运行该项目

按下左上angular的播放button,或者按下Command-R,或从产品菜单中select运行。

应用程序应该在模拟器中启动。

切换到Safari

按主页button(或命令shift-H)。 然后点击Safari,然后导航到您的网站。

2.日志输出。

打开terminal,运行tail -f /var/log/system.log | egrep 'MobileSafari' tail -f /var/log/system.log | egrep 'MobileSafari' 。 这将显示移动Safari的所有日志。 (您可以删除egrep以查看所有日志,以防崩溃超出Safari的范围。)

2.重现问题

我无法使iOS或Safari在您的网站上崩溃,但是您需要这样做来debugging问题。

3.查看模拟器的控制台日志以获取详细信息

切换回terminal并查看日志以了解可能导致崩溃的信息。

我能够在我的iPhone 3GS iOS 6.1上重现这个问题,它立即崩溃,无需在页面上进行任何操作。 Web Inspector没有错误。 当使用iOS模拟器,它不会崩溃,但它显示MobileSafari[11079]: CGAffineTransformInvert: singular matrix. 在设备日志上。

如果我滚动页面而不与任何元素进行交互,则在控制台上重复错误singular matrix ,即使我逐个像素滚动。

在这里输入图像说明

多次分析,在iOS模拟器上,我没有看到任何JavaScript内存泄漏。 所以我想这是渲染相关的。

所以我删除了样式表http://festivals.ie/static/mNga2i69LFf9ezK2IBanFA9rPb7jjsGzC6PNOP5MjO1.css检查,matrix错误停止。 所以这是确认我的关注。

接下来我们需要能够分开,这是什么原因造成的。

我分析了页面,并滚动页面,等待singular matrix错误,并停止分析。 这是我得到的:

在这里输入图像说明

320×75像素的重绘区域,我猜是顶部的标题。 在这里输入图像说明

所以我使用web检查器删除了<div class="navbar navbar-fixed-top top-nav"> ,没有更多的singular matrix错误。

在这里输入图像说明

我尝试启用和禁用与div匹配的每个样式,唯一有所作为的是position: fixed ,但它可能是固定div内的冲突。

在这里输入图像说明

我尝试了里面的每一个元素, 我发现删除只是<button>解决了问题。

在这里输入图像说明
在这里输入图像说明

现在我认为你可以跟踪那个button的问题。

这是与button相关的CSS:

 media="screen, projection" mNga2i69LFf9ezK2IBanFA9rPb7jjsGzC6PNOP5MjO1.css:175 label, input, button, select, textarea { font-size: 14px; font-weight: normal; line-height: 20px; } festivals.ie media="screen, projection" mNga2i69LFf9ezK2IBanFA9rPb7jjsGzC6PNOP5MjO1.css:21 button, input[type="button"], input[type="reset"], input[type="submit"] { cursor: pointer; -webkit-appearance: button; } festivals.ie media="screen, projection" mNga2i69LFf9ezK2IBanFA9rPb7jjsGzC6PNOP5MjO1.css:19 button, input { line-height: normal; } festivals.ie media="screen, projection" mNga2i69LFf9ezK2IBanFA9rPb7jjsGzC6PNOP5MjO1.css:18 button, input, select, textarea { margin: 0; font-size: 100%; vertical-align: middle; } festivals.ie media="screen, projection" mNga2i69LFf9ezK2IBanFA9rPb7jjsGzC6PNOP5MjO1.css:859 * { margin: 0; } festivals.ie media="screen, projection" mNga2i69LFf9ezK2IBanFA9rPb7jjsGzC6PNOP5MjO1.css:798 ::selection { background: #4e87e1; color: #ffffff; } Base Style Rules input[type="button"], input[type="submit"], input[type="reset"], input[type="file"]::-webkit-file-upload-button, button { -webkit-box-align: center; text-align: center; cursor: default; color: buttontext; padding: 0px 1em; border: 1px solid rgb(76, 76, 76); border-image: initial; background-color: rgba(255, 255, 255, 0.0078125); font: 11px Helvetica; box-sizing: border-box; } input, textarea, keygen, select, button, isindex { margin: 0em; color: initial; letter-spacing: normal; word-spacing: normal; line-height: normal; text-transform: none; text-indent: 0px; text-shadow: none; display: inline-block; text-align: -webkit-auto; } button { -webkit-appearance: button; } 

我希望这是有用的,因为我花了很长时间才到这里。

  1. 你需要在iOS设备上检查这个。
  2. iOS不支持Flash

我认为这不会发生在Windows或其他平台上安装的Safari浏览器。 我认为这是一个与iOS相关的特定问题。

注意:

我的网站崩溃了。 当我用你的网站点击向前,向后箭头5到6次。 而当我点击图片后,它进入一个页面festivals.ie/festival/map类似的东西,坠毁。

编辑:

在我的Mac上安装的safari上testing相同。 在上面的情况下没有发现碰撞。 所以我认为这是一个iOS特定的崩溃。 (我认为与记忆或类似的东西有关)。

您需要注册为Apple Developer以使用模拟器并使用Web检查器进行debugging。

您可以尝试以下链接了解更多信息。

http://webdesign.tutsplus.com/tutorials/workflow-tutorials/quick-tip-using-web-inspector-to-debug-mobile-safari/

问题是由下面的注释掉的CSS属性造成的

 html { background: url(../images/responsive/bg.svg) no-repeat center center fixed; /* -webkit-background-size: cover; -moz-background-size: cover; -o-background-size: cover; background-size: cover; */ outline: 0!important; } 

删除这些属性后,问题不再发生