ニフクラ mobile backend(mBaaS)お役立ちブログ

スマホアプリ開発にニフクラ mobile backend(mBaaS)。アプリ開発に役立つ情報をおとどけ!

認証キーファイル(p8)を使ったプッシュ通知で deviceTokenNotForTopic が発生した際に確認してほしいこと

f:id:mbaasdevrel:20210408185404p:plain NCMBでは先日、iOS向けのプッシュ通知でp8キーファイルを使った方法に対応しました。p8キーファイルを使った場合、同じキーファイルを使って異なるアプリにもプッシュ通知が配信可能であったり、これまでのp12ファイルのように有効期限がなくなったのが利点です。

そんなp8キーファイルを使ってプッシュ通知を送信しようとした際に、起きるかも知れないエラーメッセージについて回避策を解説します。

結論

先に結論からいうと AppleトピックID 、つまりアプリのバンドルIDを見直してください。デバイストークンを取得したアプリのバンドルIDと異なる可能性があります。

エラーメッセージ

例えば次のようなエラーが確認できるようになります。AppleトピックIDは共通で付けるものなので、すべてのメッセージがエラーになるかと思います。

{
    "description": {
        "status": "complete"
    },
    "ios": {
        "deviceTokenNotForTopic": 100,
        "total": 100
    }
}

AppleトピックIDを確認する

AppleトピックIDはmBaaSの管理画面、プッシュ通知の欄で確認できます。アプリのバンドルID(com.nifcloud.mbaas.appのような文字列)を指定します。この文字列が間違っているとdeviceTokenNotForTopicが発生します。デバイストークンを取得する際にはNCMBの管理画面の設定値は関係しないので、デバイストークンの取得自体は成功します。正しいAppleトピックIDを設定すれば配信成功するはずです。

f:id:mbaasdevrel:20210408185404p:plain

まとめ

p8ファイルになってプッシュ通知の管理がしやすくなりましたが、iOSアプリごとにプッシュ通知を分けて管理するのを忘れないでください。同じアプリケーションキーを使っていると異なるアプリであっても同じデータストアに入ってしまいます。そうなると配信が困難になってしまうでしょう。

チュートリアル (iOS) : mBaaSとAPNsの連携に必要な設定(p8認証キー方式) | ニフクラ mobile backend

中津川 篤司

中津川 篤司

NCMBエヴァンジェリスト。プログラマ、エンジニアとしていくつかの企業で働き、28歳のときに独立。 2004年、まだ情報が少なかったオープンソースソフトの技術ブログ「MOONGIFT」を開設し、毎日情報を発信している。2013年に法人化、ビジネスとエンジニアを結ぶDXエージェンシー「DevRel」活動をスタート。