ニフティクラウドmobile backend(mBaaS)のPush通知を利用して「Apple
Watch」に通知しようと試みたがDeviceTokenが認識(端末)しなかったので調べた結果をまとめました。
上記の例ように送信端末数が表示出来れば良好である。
XcodeでBundle identifier、プロビジョニングファイル証明書を設定してなかったのが原因。
(ニフティクラウドmobile backend(mBaaS)のPush通知の設定解説にこの点を記述していなかったので苦労した。)
Xcodeの info > Bundle identifier 設定、
Xcodeの Build Settings > Code Signing > Provisioning Profile 設定。
設定後DeviceTokenの端末認識が出来てPush通知が成功。
起動時にログメッセージ"DeviceTokenƒ"が出ればデバイストークンが取得されたことになる。
ログメッセージが出ない場合には、設定等の見直しをした方が良いと判断する。
// 配信端末情報を登録する。 DeviceTokenƒ
// ユーザーへの確認後デバイストークンを受け取る
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
// UIApplicationDelegateに宣言されているメソッドで、Push通知のデバイストークン要求後、
// 無事に取得ができた時に呼び出されます。
NSLog(@"DeviceTokenƒ");
NCMBInstallation *currentInstallation = [NCMBInstallation currentInstallation];
[currentInstallation setDeviceTokenFromData:deviceToken];
[currentInstallation save:nil];
}
エラー表示
// 通知に関するエラー時はこちら
- (void) application:(UIApplication *)application
didFailToRegisterForRemoteNotificationsWithError:(NSError *)error {
NSLog(@"error: %@", error);
エラー内容
プッシュ通知のテストの際、Xcodeでビルド・実行した際に、ログに以下のエラーが出力。
※ 端末に「プッシュ通知を送信します。よろしいですか?」のポップアップもなし
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
didFailToRegisterForRemoteNotificationsWithError: Error Domain=NSCocoaErrorDomain Code=3000
"Appの有効な“aps-environment”エンタイトルメント文字列が見つかりません" UserInfo=0x14664340 {NSLocalizedDescription=Appの有効な“aps-environment”エンタイトルメント文字列が見つかりません}
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
▫️参考にしたページ
Apple Watchもくるし、iOS8のプッシュ通知には今からでも対応しておくべきだと思います。
コメントをお書きください