3

iOS デバイスを使用して、bluemix で新しいプッシュ通知サービスを使用しています。

デバイスは正常に登録されます。REST-API で確認すると、デバイス ID やトークンなどが表示されます。

ただし、デバイスで iOS アプリを実行すると、最初の実行時と登録時にアプリがクラッシュします。

クラッシュは 309 行目で発生します ( CDVMFPPush.swift) 。func didRegisterForRemoteNotifications(deviceToken: NSData)let pushToken = response.responseJson["token"] as! String

この関数で実行したprint(response)ところ、responseJson には deviceId と userId のみが含まれているようです。トークンがありません。再度 REST-Api を使用して同じ要求を行うと、応答が完了したように見えます。

サンドボックスモードでサービスを実行しようとしても通知が届かないため、このエラーが原因でプッシュ登録が完了していないと思います。

何か案は?

(追記: この解決策を確認しました - Bluemix の IBM Mobile First Push サービスにデバイスを登録しようとすると、iOS アプリケーションがクラッシュします- リンカー フラグが設定されています [-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 = "";
}
4

1 に答える 1