首次注册服务时,iOS上的IBM-Bluemix Push Service会崩溃应用程序

时间:2016-06-07 15:46:35

标签: ios push-notification ibm-cloud ibm-mobile-services

我使用iOS设备在bluemix上使用新的推送通知服务。

设备注册成功。当我查看REST-API时,我会看到设备ID,令牌等等。

但是,在设备上运行iOS应用程序会在首次运行和注册时崩溃应用程序。

崩溃发生在CDVMFPPush.swift func didRegisterForRemoteNotifications(deviceToken: NSData) 在第309行(let pushToken = response.responseJson["token"] as! String)。

我在这个函数中做了print(response),似乎responseJson只包含deviceId和userId。令牌丢失。 当我再次使用REST-Api执行相同的请求时,响应似乎已完成。

我认为由于此错误,推送注册无法完成,因为当我尝试在沙盒模式下运行服务时,我没有收到任何通知。

有什么想法吗?

(P.S。我检查了这个解决方案 - iOS Application crashes when trying to register the device to IBM Mobile First Push service on Bluemix - 链接器标志设置为[-ObjC])

这是来自我的控制台的请求(app-id / secret / device已编辑)

Response text: {"createdTime":"2016-06-07T15:28:55Z","lastUpdatedTime":"2016-06-07T15:28:55Z","createdMode":"API","deviceId":"xxxx","userId":"","token":"xxxx","platform":"A","href":"https://myapp.mybluemix.net:443/imfpush/v1/apps/xxxx/devices/xxxx"}
httpStatus: 201
responseHeaders: {
    Connection = "Keep-Alive";
    "Content-Type" = "application/json";
    Date = "Tue, 07 Jun 2016 15:28:55 GMT";
    Location = "https://myapp.mybluemix.net:443/imfpush/v1/apps/xxxx/devices/xxxx";
    "Transfer-Encoding" = Identity;
    "X-Backside-Transport" = "OK OK";
    "X-Global-Transaction-ID" = xxxx;
    "X-Powered-By" = "Servlet/3.0";
}
responseJson: {
    deviceId = "xxxxx";
    userId = "";
}

1 个答案:

答案 0 :(得分:1)

我们已更新MFPPush iOS Framework以解决此问题,MFPPush Cordova插件已更新,以包含这些修复程序。我们怀疑崩溃的原因是你通过回调发送了第二个IMFResponse对象,而第二个IMFResponse的responseJson没有你看到导致崩溃的令牌。这些更改应解决该问题。

更新插件的最简单方法就是删除旧插件并重新添加,您应该使用1.0.14的{​​{1}}版本来查看修复程序。

也可以在今天早上看到相关Github上的更新 https://github.com/ibm-bluemix-mobile-services/bms-clientsdk-cordova-plugin-push