尝试将设备注册到Bluemix上的IBM Mobile First Push服务时,iOS应用程序崩溃 [英] iOS Application crashes when trying to register the device to IBM Mobile First Push service on Bluemix

查看:109
本文介绍了尝试将设备注册到Bluemix上的IBM Mobile First Push服务时,iOS应用程序崩溃的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I have an iOS 9 application running on an iPad mini 4 (iOS 9.0.2). It crashes when trying to register the device to my IMFPush service instance on Bluemix.

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

Here is the code that performs the registration in my App delegate:

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)")
        }
    })
}

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

And here is the console output when running the app (that crashes on startup):

-> 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

对问题有什么看法以及如何解决?感谢您的帮助......

Any idea of the issue and how to fix it ? Thanks for your help...

推荐答案

确保使用-ObjC标志编译客户端应用程序。

Make sure that your client application is being compiled with the -ObjC flag.

此设置可以添加到目标的构建设置>链接>其他链接标记部分下。

This setting can added under your target's Build Settings>Linking>Other Linker Flags section.

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

Double-click the existing settings and click the + sign. Then add "-ObjC" in the text field. This can be accomplished for both Debug and Release settings.

可以从Apple的Q& A会话中找到有关此设置的更多信息,涵盖构建带有类别的Objective-C静态库

Further information can be found regarding this setting from Apple's Q&A session covering Building Objective-C static libraries with categories

这篇关于尝试将设备注册到Bluemix上的IBM Mobile First Push服务时,iOS应用程序崩溃的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆