Cordova v5.3.1 / Ionic v1.1.0(library v1.6.4)
将我们的应用程序从8.4升级到iOS 9。该应用程序在iPad / iPad mini上构建并运行良好。但是,它在部署到iPhone时会崩溃。
以下是调试输出:
2015-09-23 11:17:09.920 AnApplicaiton [6490:1359695] ***断言 失败 - [UIApplication _cachedSystemAnimationFenceCreatingIfNecessary:],/ BuildRoot / Library / People / com.apple.xbs / Sources / UIKit_Sim / UIKit-3505.16 / UIApplication.m:1697
2015-09-23 11:17:09.926 AnApplication [6490:1359695] ***终止 应用程序由于未捕获的异常' NSInternalInconsistencyException', 原因:'访问_cachedSystemAnimationFence需要main 螺纹'
到目前为止,调试控制台是完全相同的。
答案 0 :(得分:6)
我不知道真正的原因但是当App有WebView和第三方键盘如Swype时,程序崩溃了。我多次复制这个问题。因此,如果您的应用使用WebView,如Cordova,iAd,Admob,您将看到这些奇怪的崩溃。我不知道如何防止这个问题。它只发生在iOS上,只发生在iPhone上。我的崩溃报告显示iPhone 5s,iPhone 6,iPhone 6 Plus。
编辑:我认为@ Kurt.F提供的代码现在可以解决这个问题。将以下代码添加到AppDelegate.swift
文件中。所有学分都归@ Kurt.F
func application(application: UIApplication, shouldAllowExtensionPointIdentifier extensionPointIdentifier: String) -> Bool {
if extensionPointIdentifier == UIApplicationKeyboardExtensionPointIdentifier {
return false
}
return true
}
答案 1 :(得分:5)
这似乎是第三方键盘和WebView之间的冲突。我也能够在iOS 9上崩溃Chrome(在Cordova之外)。我只是去一个热门的网站,并专注于一些编辑领域几次。您可以在加载页面时执行此操作以启动键盘,同时启用某个自定义键盘并使其崩溃。
我创建了一个简单的Cordova插件,不允许任何键盘扩展程序与该应用程序一起运行。不是永久的解决方案,但它现在将停止崩溃。只需添加插件,无需更改代码。