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

Jar*_*sen 9 extjs ios sencha-touch cordova

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

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

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

[UIViewAnimationState release]: message sent to deallocated instance 0x17675080
Run Code Online (Sandbox Code Playgroud)

它出现在一个全新的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

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

And*_*cia 3

编辑 24/03/2015

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


正如Xamarin 上的错误报告所证明的那样,这似乎与 Sencha Touch 和/或 Cordova 没有直接关系。

Xamarin 是一个用于构建本机移动应用程序的 .NET 框架,因此这意味着它不是 Cordova/Phonegap 错误,此外错误报告者重现了将http://www.xamarin.com网页加载到 WebView 中的错误,这证明它不是Sencha Touch 错误。他表示“这似乎更有可能是 JavaScriptCore 错误”。

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

因此,我尝试从我的 Sencha 应用程序中删除所有外部库app.json(它曾经依赖于Chart.jsjQuery和其他一些库),我注意到,如果不包含它们,应用程序会变得更加稳定。

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

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

我希望这可以有所帮助,至少可以提高应用程序的稳定性,直到 Apple 修复 WebView。