首页 > 解决方案 > xcode 10 迁移错误获取段错误 11

问题描述

将 Xcode 迁移到 10 后,一个在以前的 Xcode 9 上完美构建和运行的 iOS 项目在编译期间因“Segmentation fault 11”而崩溃

我确实将我的 MacOS 升级到了 Mojave,但问题仍然存在。

我收到以下错误:

  1. 在为 'application(_:didRegisterForRemoteNotificationsWithDeviceToken:)' 发出 SIL 时

    /Users/swanandpatil/Desktop/omerApp/CustomerApp/AppDelegate.swift:955:5

  2. 而 silgen emitFunction SIL 函数“@$S17CustomerApp0C8DelegateC11application_48didRegisterForRemoteNotifications WithDeviceTokenySo13UIApplicationC_10Foundation4DataVtF”。'application(_:didRegisterForRemoteNotificationsWithDeviceToken:)' at /Users/swanandpatil/Desktop/RSA247CustomerApp/RSA247CustomerApp/AppDelegate.swift:955:5 错误:分段错误:11

下面是我的代码:

func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
    //print("deviceToken is \(deviceToken)");

    if let token = InstanceID.instanceID().token() {

        UserDefaults.standard.set(token, forKey:"fcm_tokenNew")
        let token2 = UserDefaults.standard.object(forKey:"fcm_tokenNew") as? String
        print("FCM TOKEN2 IS\(describing: token2 )");
    }
}

标签: iosswiftxcodexcode10ios12

解决方案


恭喜,您发现了一个 Xcode 编译器错误。

问题在这里:

print("FCM TOKEN2 IS\(describing: token2 )");

正确的语法是:

 print("FCM TOKEN2 IS\(String(describing:token2))");

编译器应该给你一个有意义的错误信息,但是却是崩溃了。

我已经提交了雷达: https ://openradar.appspot.com/45330067


推荐阅读