Skip to content

トラブルシューティング

この記事では、Swift SDK の iOS プッシュのトラブルシューティング シナリオをいくつか紹介します。

Braze/APNs のワークフローについて

Apple Push Notification Service (APNs) は、Apple のプラットフォームで実行されているアプリケーションにプッシュ通知を送信するためのインフラストラクチャです。ユーザーのデバイスに対してプッシュ通知を有効にする方法と、Braze がユーザーにプッシュ通知を送信する方法の簡単な構造を次に示します。

  1. プッシュ証明書とプロビジョニングプロファイルを構成します
  2. デバイスは APNs に登録し、Braze にプッシュトークンを提供します
  3. Braze プッシュキャンペーンを開始します
  4. Braze は無効なトークンを削除します

ステップ1: プッシュ証明書とプロビジョニングプロファイルの構成

アプリの開発では、プッシュ通知を有効にするには SSL 証明書を作成する必要があります。この証明書はアプリのビルドに使用されるプロビジョニングプロファイルに含まれ、Braze ダッシュボードにアップロードする必要もあります。証明書を使用すると、、Braze は APNs に対して、あなたに代わってプッシュ通知を送信することが許可されていることを伝えることができます。

プロビジョニングプロファイル と証明書には、開発用と配布用の 2 種類があります。混乱を避けるために、配布プロファイルと証明書だけを使用することをお勧めします。開発と配布で異なるプロファイルと証明書を使用することを選択した場合は、ダッシュボードにアップロードされた証明書が現在使用しているプロビジョニングプロファイルと一致することを確認してください。

ステップ2: デバイスは APNs に登録し、Braze にプッシュトークンを提供します

ユーザーがアプリを開くと、プッシュ通知を受け入れるように求められます。このプロンプトを受け入れると、APNs はその特定のデバイスのプッシュトークンを生成します。iOS SDK は、デフォルトの 自動フラッシュポリシー を使用して、アプリのプッシュトークンを即時かつ非同期に送信します。ユーザーにプッシュトークンを関連付けると、[エンゲージメント] タブのユーザープロファイルのダッシュボードに「プッシュ登録済み」と表示され、Braze キャンペーンからプッシュ通知を受け取る資格が得られます。

ステップ3: Braze プッシュキャンペーンの開始

プッシュキャンペーンが開始されると、Braze は APNs にメッセージの配信リクエストを行います。Braze は、ダッシュボードにアップロードされた SSL プッシュ証明書を使用して認証を行い、提供されたプッシュトークンへのプッシュ通知の送信が許可されていることを確認します。デバイスがオンラインの場合は、キャンペーンが送信された後すぐに通知が受信されます。なお、Braze は通知のデフォルトの APNs 有効期限を30日に設定していることに注意してください。

ステップ4: 無効なトークンの削除

[APNs ] [ 20] から、メッセージを送信しようとしたプッシュトークンのいずれかが無効であると通知された場合、関連付けられていたユーザープロファイルからそれらのトークンを削除します。

プッシュ・エラー・ログの使用

メッセージアクティビティログでは、プッシュ通知エラーなど、キャンペーンや送信に関連するメッセージ(特にエラーメッセージ)を確認できます。このエラーログは、キャンペーンが期待どおりに機能していない理由を特定するのに非常に役立つさまざまな警告を提供します。エラーメッセージをクリックすると、特定のインシデントのトラブルシューティングに役立つ関連ドキュメントにリダイレクトされます。

エラー発生時刻、アプリ名、チャネル、エラータイプ、エラーメッセージを表示するプッシュエラーログ

ここでよく見かけるエラーとしては、「プッシュトークンへの登録されていない送信の受信」 など、ユーザー固有の通知があります。

さらに、Braze は [エンゲージメント] タブのユーザープロファイルにプッシュ通知の変更ログも提供します。この変更ログは、トークンの無効化、プッシュ登録エラー、トークンの新規ユーザーへの移動などのプッシュ登録動作に関するインサイトを提供します。

メッセージアクティビティログのエラー

プッシュトークン {#received-unregistered-sending} への未登録送信を受信した

  • メソッド AppDelegate.braze?.notifications.register(deviceToken:) から Braze に送信されているプッシュトークンが有効であることを確認してください。メッセージアクティビティログを見ると、プッシュトークンを確認できます。これは 6e407a9be8d07f0cdeb9e724733a89445f57a89ec890d63867c482a483506fa6 のようになり、文字と数字が混在する長い文字列になります。プッシュトークンが異なるように見える場合は、Braze にプッシュトークンを送信するための コード を確認してください。
  • プッシュプロビジョニングプロファイルがテスト対象の環境と一致することを確認します。ユニバーサル証明書は、開発または実稼働の APNs 環境のいずれかに送信するように Braze ダッシュボードで構成できます。実稼働アプリ用の開発証明書または開発アプリ用の実稼働証明書は動作しません。
  • Braze にアップロードしたプッシュトークンが、プッシュトークンの送信元のアプリのビルドに使用したプロビジョニングプロファイルと一致することを確認します。

デバイストークンがトピック用ではない

このエラーは、アプリのプッシュ証明書とバンドル ID が一致しないことを示しています。Brazeにアップロードしたプッシュ証明書が、プッシュトークンの送信元となるアプリのビルドに使用したプロビジョニングプロファイルと一致することを確認します。

プッシュトークンへの BadDeviceToken の送信

BadDeviceToken は APNs のエラーコードであり、Braze から発信されたものではありません。この応答が返されるには、次のようなさまざまな理由が考えられます。

  • アプリは、ダッシュボードにアップロードされた認証情報に対して無効なプッシュトークンを受け取った。
  • このワークスペースではプッシュが無効になった。
  • ユーザーがプッシュをオプトアウトした。
  • アプリがアンインストールされた。
  • Apple がプッシュトークンを更新したため、古いトークンが無効になった。
  • アプリは本番環境用にビルドされていますが、Braze にアップロードされたプッシュ認証情報は開発環境用に設定されます (または逆の場合もあります)。

プッシュ登録に関する問題

プッシュ登録プロンプトが表示されない

アプリケーションでプッシュ通知の登録を求めるメッセージが表示されない場合は、プッシュ登録の統合に問題がある可能性があります。当社の ドキュメント に従い、プッシュ登録が正しく統合されていることを確認してください。コードにブレークポイントを設定して、プッシュ登録コードを確実に実行することもできます。

ダッシュボードに「プッシュ登録済み」ユーザーが表示されない(メッセージ送信前)

アプリがプッシュ通知を許可するように正しく構成されていることを確認してください。チェックすべき一般的な障害点は次のとおりです。

  • アプリがプッシュ通知を許可するように求めるメッセージを表示していることを確認します。通常、このプロンプトはアプリを初めて起動したときに表示されますが、他の場所に表示されるようにプログラムすることもできます。表示されるべき場所に表示されない場合は、アプリのプッシュ機能の基本構成に問題がある可能性があります。
    • プッシュ統合 の手順が正常に完了したことを確認します。
    • アプリのビルドに使用されたプロビジョニングプロファイルにプッシュの権限が含まれていることを確認します。Apple 開発者アカウントから利用可能なプロビジョニングプロファイルをすべてプルダウンしていることを確認してください。これを確認するには、次の手順を実行します。
      1. Xcodeで、[環境設定] > [アカウント] に移動します (または、キーボードショートカット コマンド+,] を使用します)。
      2. 開発者アカウントに使用する Apple ID を選択し、[詳細を表示] をクリックします。
      3. 次のページで、[更新] をクリックし、使用可能なすべてのプロビジョニングプロファイルをプルしていることを確認します。
  • アプリで プッシュ機能が正しく有効化されている ことを確認してください。
  • プッシュプロビジョニングプロファイルがテスト環境と一致することを確認します。ユニバーサル証明書は、開発または実稼働の APNs 環境のいずれかに送信するように Braze ダッシュボードで構成できます。実稼働アプリ用の開発証明書または開発アプリ用の実稼働証明書は動作しません。
  • コードにブレークポイントを設定して、registerPushToken メソッドを呼び出していることを確認します。
  • デバイスを使用してテストしていること (シミュレーターではプッシュは機能しません) と、ネットワーク接続が良好であることを確認してください。

プッシュ通知は送信されるが、ユーザーのデバイスに表示されない

「プッシュ登録済み」ユーザーがメッセージ送信後に有効でなくなる

これは、ユーザーが無効なプッシュトークンを持っていたことを示している可能性があります。これにはいくつかの理由が考えられます。

ダッシュボードとアプリ証明書が一致していない

ダッシュボードでアップロードしたプッシュ証明書が、アプリのビルドに使用したプロビジョニングプロファイルのものと異なる場合、APNs はトークンを拒否します。別のテスト通知を試みる前に、正しい証明書をアップロードし、アプリで別のセッションを完了していることを確認します。

アプリケーションがアンインストールされた

ユーザーがアプリケーションをアンインストールした場合、プッシュトークンは無効となり、次回の送信時に削除されます。

プロビジョニングプロファイルの再生成

最後の手段として、最初からやり直してまったく新しいプロビジョニングプロファイルを作成すると、複数の環境、プロファイル、およびアプリを同時に操作することによって発生する構成エラーを解消できます。プッシュ通知の設定には多くの「可動部分」があるため、最初からやり直すのが最善な場合もあります。また、トラブルシューティングを続ける必要がある場合は、問題を切り分けるのに役立ちます。

「プッシュ登録済み」ユーザーに配信されないメッセージ

アプリがフォアグラウンドにある

UserNotifications フレームワークを介してプッシュを統合していない iOS バージョンでは、プッシュメッセージの受信時にアプリがフォアグラウンドにある場合、そのメッセージは表示されません。テストメッセージを送信する前に、テストデバイスでアプリをバックグラウンドにする必要があります。

テスト通知のスケジュールが正しくない

テストメッセージに設定したスケジュールを確認します。ローカルタイムゾーン配信またはインテリジェントタイミングに設定されている場合、メッセージがまだ受信されていない (または受信時にアプリをフォアグラウンドにしていた) だけかもしれません。

テスト対象のアプリに対してユーザーが「プッシュ登録」されていない

テストメッセージを送信しようとしてしている相手のユーザーのプロファイルを確認します。[エンゲージメント] タブの下に「プッシュ可能なアプリ」のリストがあるはずです。 テストメッセージを送信しようとしているアプリがこのリストにあることを確認します。ユーザーがワークスペース内の任意のアプリのプッシュトークンを持っている場合は「プッシュ登録済み」と表示されるため、誤検知の可能性があります。

以下は、プッシュ登録に問題があるか、プッシュ後にユーザーのトークンが APNs によって無効として Braze に返されたことを示します。

![ユーザの連絡先設定を表示するユーザプロファイル。[プッシュ]の下に「アプリなし」と表示されます。25

プッシュクリックが記録されない

  • プッシュ統合手順に従ったことを確認してください。
  • Brazeは、フォアグラウンドでサイレントに受信されたプッシュ通知を処理しません(フレームワーク前の UserNotifications デフォルトのフォアグラウンドプッシュ動作)。つまり、リンクは開かれず、プッシュクリックは記録されません。アプリケーションが UserNotifications フレームワークをまだ統合していない場合、アプリケーション状態が UIApplicationStateActive のときに Braze はプッシュ通知を処理しません。アプリが push handling methods の呼び出しを遅らせないようにします。そうしないと、Swift SDK がプッシュ通知をサイレントフォアグラウンドプッシュイベントとして扱い、処理しない可能性があります。

ディープリンクが機能しない

プッシュクリックからのWebリンクが開かない

プッシュ通知のリンクを Web ビューで開くには、ATS に準拠している必要があります。WebリンクがHTTPSを使用していることを確認します。詳細は ATS準拠 の記事を参照してください。

プッシュクリックからディープリンクが開かない

ディープリンクを扱うコードのほとんどはプッシュ通知の開封も扱います。まず、プッシュ通知の開封がログに記録されていることを確認します。そうでない場合は その問題を修正します (この修正はリンク処理を修正することが多いため)

開封が記録されている場合は、ディープリンク全般の問題なのか、ディープリンクのプッシュクリック処理の問題なのかを確認してください。そのためには、アプリ内メッセージクリックからのディープリンクが機能するかテストします。

「このページはどの程度役に立ちましたか?」
New Stuff!