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

时间:2013-02-05 09:02:10

标签: ios safari ios6.1

我收到了一个错误报告,当在iOS 6.1上查看时this website崩溃,但我猜这是iOS 6.1附带的浏览器版本,它比操作系统本身更具相关性。我没有任何iOS设备,所以我不确定如何重现/调查此问题。

是否有人建议我如何在Windows / Ubunutu上重现此问题?我试过http://www.browserstack.com/,但他们提供的最新版本是iOS 6.0。

如果有人知道崩溃发生的原因,请告诉我。在主页上有一个嵌入式YouTube视频,我听说flash和iOS都是不安的同床人,所以我想知道这是否可能是原因?

5 个答案:

答案 0 :(得分:6)

更新

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

  

Feb 14 12:45:54 Aaron-Bragers-iPhone MobileSafari [45279]:   CGAffineTransformInvert:奇异矩阵。 2月14日12:45:56   Aaron-Bragers-iPhone MobileSafari [45279]:   CGAffineTransformInvert:奇异矩阵。 2月14日12:45:56   Aaron-Bragers-iPhone MobileSafari [45279]:   CGAffineTransformInvert:奇异矩阵。 2月14日12:45:57   Aaron-Bragers-iPhone MobileSafari [45279]:   CGAffineTransformInvert:奇异矩阵。 2月14日12:45:59   Aaron-Bragers-iPhone ReportCrash [46048]:不保存Jetsam   log因为没有来自内核的数据。 2月14日12:45:59   Aaron-Bragers-iPhone UserEventAgent [13]:jetsam:内核   终止快照正在创建2月14日12:45:59   Aaron-Bragers-iPhone MobileSafari [45279]:   CGAffineTransformInvert:奇异矩阵。 2月14日12:46:04   Aaron-Bragers-iPhone MobileSafari [45279]:   CGAffineTransformInvert:奇异矩阵。 2月14日12:46:04   Aaron-Bragers-iPhone MobileSafari [45279]:   CGAffineTransformInvert:奇异矩阵。 2月14日12:46:05   Aaron-Bragers-iPhone MobileSafari [45279]:   CGAffineTransformInvert:奇异矩阵。 2月14日12:46:06   Aaron-Bragers-iPhone MobileSafari [45279]:   CGAffineTransformInvert:奇异矩阵。

......后面跟着很多记忆警告。

您的网站导致内存泄漏,因此iOS正在关闭Safari。看起来你必须follow these instructions来调试它。


您无法尝试在Windows中重现它。唯一的选择是download Safari 5 for Windows,这可能会产生类似的错误。

但是,这并不使用与Mobile Safari相同的WebKit版本(适用于Windows的Safari更老),因此您可能需要借用朋友的Mac并继续使用:

的Mac

1。在iOS模拟器中测试您的网站

获取Xcode

如果您还没有,download Xcode from the Mac App Store

制作空白项目

档案 - >新项目。选择Single View应用程序(或任何其他iOS应用程序,无所谓)。按Next。选择任何项目名称(无关紧要)。按next,然后指定一些位置,然后按“创建”。

运行项目

按左上角的播放按钮,或按Command-R,或从产品菜单中选择运行。

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

切换到Safari

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

2。记录输出。

打开终端,然后运行tail -f /var/log/system.log | egrep 'MobileSafari'。这将显示所有Mobile Safari的日志。 (如果崩溃在Safari之外,您可以删除egrep以查看所有日志。)

2。重现问题

我无法在您的网站上造成iOS或Safari崩溃,但您需要这样做来调试此问题。

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

切换回终端并查看日志,了解可能导致崩溃的原因。

答案 1 :(得分:6)

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

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

enter image description here

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

所以我删除了要检查的样式表http://festivals.ie/static/mNga2i69LFf9ezK2IBanFA9rPb7jjsGzC6PNOP5MjO1.css,并停止了矩阵错误。所以这证实了我的担忧。

接下来,我们需要能够分开,造成这种情况的原因。

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

enter image description here

重绘区域为320 x 75像素,我猜是顶部标题。 enter image description here

因此,我使用网络检查程序删除了<div class="navbar navbar-fixed-top top-nav">,并且不再出现singular matrix错误。

enter image description here

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

enter image description here

我尝试了内部的所有元素,我发现只删除<button>修复了问题。

enter image description here
enter image description here

现在我认为您可以跟踪该按钮的问题。

这是与按钮相关的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;
}

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

答案 2 :(得分:2)

  1. 您需要在iOS设备上查看此内容。
  2. iOS不支持Flash
  3. 我认为在Windows或其他平台上安装的Safari中不会发生这种情况。我认为这是与iOS相关的特定问题。

    注意:

    我的网站崩溃了。当我使用你的网站并点击向前,向后箭头5至6次。当我点击图片后,它会转到 festivals.ie/festival/map 这样的页面并崩溃。

    修改

    在我的mac上安装的safari上测试了相同的内容。在上述情况下没有发现崩溃。所以我认为这是iOS特定的崩溃。 (我认为与记忆或类似的东西有关)。

答案 3 :(得分:1)

您需要注册为Apple Developer才能使用模拟器并使用Web检查器进行调试。

您可以尝试以下链接获取更多信息。

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

答案 4 :(得分:1)

问题是由

下面注释掉的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;
}

删除这些属性后,问题不再出现