尝试将设备注册到Bluemix上的IBM Mobile First Push服务时,iOS应用程序崩溃

我有一个运行在iPad mini 4(iOS 9.0.2)上的iOS 9应用程序。 尝试将设备注册到Bluemix上的我的IMFPush服务实例时,它崩溃。

以下是在我的App委托中执行注册的代码:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { // Push notifications let notificationTypes: UIUserNotificationType = [UIUserNotificationType.Badge, UIUserNotificationType.Alert, UIUserNotificationType.Sound] let notificationSettings: UIUserNotificationSettings = UIUserNotificationSettings(forTypes: notificationTypes, categories: nil) application.registerUserNotificationSettings(notificationSettings) application.registerForRemoteNotifications() return true } func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData) { // Initialize the Mobile First SDK with IBM Bluemix GUID and route IMFClient.sharedInstance().initializeWithBackendRoute(MY_APP_ROUTE_HERE, backendGUID: MY_BACKEND_GUID_HERE) let push = IMFPushClient.sharedInstance() print("-> Register device token to Mobile First Push for iOS8 Service \(IMFPush.version())"); push.registerDeviceToken(deviceToken, completionHandler: { (response, error) -> Void in if error != nil { print("-> Error during device registration to Mobile First Push for iOS8 Service \(error.description)") } else { print("-> Response after device registration (json): \(response.responseJson.description)") } }) } 

以下是运行应用程序时的控制台输出(启动时崩溃):

 -> Register device token to Mobile First Push for iOS8 Service 1.0 2015-10-07 09:53:52.895 greenwell[578:152833] [INFO] [IMFPushClient] -[IMFPushClient registerDeviceToken:completionHandler:] in IMFPushClient.m:70 :: Verifying previous device registration. 2015-10-07 09:53:52.900 greenwell[578:152833] [WARN] [IMF] -[IMFAuthorizationManager cachedAuthorizationHeader] in IMFAuthorizationManager.m:447 :: There is no cached authorization header, use obtainAuthorizationHeaderWithCompletionHandler to get the header 2015-10-07 09:53:52.969 greenwell[578:152833] +[IMFResponse responseWithWLResponse:]: unrecognized selector sent to class 0x100113b48 2015-10-07 09:53:52.969 greenwell[578:152833] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '+[IMFResponse responseWithWLResponse:]: unrecognized selector sent to class 0x100113b48' *** First throw call stack: (0x185e98f5c 0x19a897f80 0x185e9fb64 0x185e9cc14 0x185da0dcc 0x10009c088 0x100093648 0x1000923fc 0x100099cb4 0x101315d70 0x101315d30 0x10131b780 0x185e50258 0x185e4e0c0 0x185d7cdc0 0x190d10088 0x18b456f44 0x10004d744 0x19b0b68b8) libc++abi.dylib: terminating with uncaught exception of type NSException 

任何想法的问题,以及如何解决它? 谢谢你的帮助…

确保您的客户端应用程序正在使用-ObjC标志进行编译。

此设置可以添加到您的目标的“ 生成设置”>“链接”>“其他链接程序标志”部分下。

双击现有设置,然后单击+号。 然后在文本字段中添加“-ObjC”。 这可以在debugging和发布设置中完成。

有关此设置的更多信息,请参阅Apple的Q&A会议,内容涉及构build具有类别的Objective-C静态库