【问题标题】:xcode 10 migration error getting segment fault 11xcode 10 迁移错误获取段错误 11
【发布时间】:2019-03-20 22:15:44
【问题描述】:

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

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

我收到以下错误:

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

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

  2. 虽然silgen emitFunction SIL功能 “@$S17CustomerApp0C8DelegateC11application_48didRegisterForRemoteNotifications WithDeviceTokenySo13UIApplicationC_10Foundation4DataVtF”。 在 /Users/swanandpatil/Desktop/RSA247CustomerApp/RSA247CustomerApp/AppDelegate.swift:955:5 的“应用程序(_:didRegisterForRemoteNotificationsWithDeviceToken:)” 错误:分段错误: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 )");
    }
}

【问题讨论】:

  • 错误提示问题与didRegisterForRemoteNotificationsWithDeviceToken有关
  • 请不要只发布屏幕截图,而是复制/粘贴整个错误,不仅仅是“段错误 11”,而是导致它的原因,它上面的内容。
  • 我认为这是一个 Xcode 错误。您必须发布代码(AppDelegate.swift,第 955 行及周边)。
  • 这是完整的错误 1. 在 /Users/swanandpatil/Desktop/RSA247CustomerApp/RSA247CustomerApp/AppDelegate.swift:955:5 2 . 而 silgen emitFunction SIL 函数“@$S17RSA247CustomerApp0C8DelegateC11application_48didRegisterForRemoteNotificationsWithDeviceTokenySo13UIApplicationC_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(描述:token2)"); } }

标签: ios swift xcode xcode10 ios12


【解决方案1】:

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

问题出在这里:

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

正确的语法是:

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

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

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

【讨论】:

  • :-1: 多个命令产生'/Users/asd/Library/Developer/Xcode/DerivedData/CustomerApp-fqcceceikstdqzctsjuwfwrspvad/Build/Products/Debug-iphonesimulator/SwiftyGif/SwiftyGif.framework/Info.plist ':1)目标'SwiftyGif'(项目'Pods')具有从'/Users/swanandpatil/Desktop/CustomerApp/Pods/SwiftyGif/SwiftyGif/Info.plist'到'/Users/swanandpatil/Library/Developer/Xcode的复制命令/DerivedData/CustomerApp-fqcceceikstdqzctsjuwfwrspvad/Build/Products/Debug-iphonesimulator/SwiftyGif/SwiftyGif.framework/Info.plist'
  • 2) 目标“SwiftyGif”(项目“Pods”)具有带有输出“/Users/swanandpatil/Library/Developer/Xcode/DerivedData/CustomerApp-fqcceceikstdqzctsjuwfwrspvad/Build/Products/Debug-iphonesimulator”的进程命令/SwiftyGif/SwiftyGif.framework/Info.plist'
  • @user2606884 如果可以解决您的问题,请将我的回答标记为“已接受”。对于您的第二个问题:这是完全不同的事情。通常,您应该为个别问题创建个别问题。在您的特殊情况下,您也可以在这里查看:stackoverflow.com/questions/50718018/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多