iOS 9 Ionic Cordova应用程序在iPhone上崩溃;适用于iPad

时间:2015-09-23 16:26:01

标签: ios ionic-framework ios9 iphone-6

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   螺纹'

到目前为止,调试控制台是完全相同的。

2 个答案:

答案 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插件,不允许任何键盘扩展程序与该应用程序一起运行。不是永久的解决方案,但它现在将停止崩溃。只需添加插件,无需更改代码。

https://github.com/kurtisf/cordova-plugin-restrict-keyboard