Sencha touch / cordova应用程序在ios8启动时随机崩溃

时间:2014-10-03 06:08:31

标签: ios cordova extjs sencha-touch

我的应用程序是用sencha touch 2.4编写的,并使用最新版本的cordova。从iOS8开始,我的应用随机崩溃了。只有在我完全关闭应用程序时才会发生这种情况。崩溃似乎是在显示启动画面后直接发生的。没有出现sencha触摸加载图标,应用程序只是关闭。如果我再次尝试打开应用程序,则可以正常运行。

我几乎立即使用localstorage来填充用户名等等,我试图删除它,因为我读它导致了问题,但它没有帮助。

编辑: 经过更多调查后,我现在收到此错误:

[UIViewAnimationState release]: message sent to deallocated instance 0x17675080

它出现在一个全新的cordova / sencha触摸示例项目中,以及iOS8。 不知道这可能是什么原因? 有没有关于如何调试此问题的提示?

EDIT2: Sencha表示他们不会在下一版本2.4.1之前正式支持ios8。 http://www.sencha.com/forum/showthread.php?292883-Touch-2.4.0-apps-crashing-on-iOS8

EDIT3: 我想通过遵循上面链接的论坛主题中的建议我能够改进这一点。我将sencha touch,sencha cmd和cordova更新到最新版本,并为cordova安装了splashscreen-plugin。我从未有过创业公司的崩溃,希望这已经解决了这个问题。

1 个答案:

答案 0 :(得分:3)

编辑24/03/2015

我们发现这个插件https://github.com/Telerik-Verified-Plugins/WKWebView使用新的WKWebView而不是旧的UIWebView来修复随机崩溃。


这似乎与Sencha Touch和Cordova没有直接关系,因为Xamarin上的bug report证明了这一点。

Xamarin是一个用于构建原生移动应用程序的.NET框架,因此这意味着它不是Cordova / Phonegap错误,另外bug报告者将错误加载http://www.xamarin.com网页添加到WebView中,这证明它不是Sencha Touch bug。他声称“它似乎更像是一个JavaScriptCore错误”。

错误报告的海报用外部网页设置了一些测试,jQuery Mobile应用程序和Sencha Touch发现不同的页面使应用程序以不同的速率崩溃,特别是非常简单的jQuery Mobile应用程序是三者中比较稳定。

所以我尝试从我的Sencha应用程序app.json中删除所有外部库(它过去依赖于Chart.jsjQuery和其他一些库)我发现没有包括他们应用程序已经更多稳定。

我重写了需要这些库的代码部分,重新​​实现了普通Javascript中的功能,并进行了一些测试,发现在加载外部库的情况下,它崩溃了1/2次,较轻的版本崩溃了大约1 / 50次(这些统计数据是在每个版本的应用程序中启动50次)。

这些测试似乎表明该错误与加载到webview上的页面的重量有关,页面越轻,崩溃的可能性就越小。

我希望这可以提供帮助,至少在Apple修复WebView之前提高应用程序的稳定性。