メインコンテンツへスキップ
Webサイトで問題が発生している場合は、Webプッシュトラブルシューティングガイドを参照してください。

トラブルシューティング手順

セットアップ手順を確認し、SDKを更新する

バグ修正、改善、および最新のオペレーティングシステムの変更のサポートを含む更新を頻繁にリリースしています。最新のSDKバージョンを使用していることを確認し、セットアップ手順に従ってください。

モバイルSDKセットアップ

一般的な問題を防ぎ、統合をテストするのに役立つセットアップ手順。

一般的なトラブルシューティングガイドを確認する

アプリの一般的な問題を確認する

プッシュ表示をブロックするOneSignalメソッド

OneSignal.User.pushSubscription.optOut() などの optOut() や、REST APIで enabled: false を設定していないか確認してください。これによりプッシュサブスクリプションのステータスが unsubscribed に設定されます。詳細はMobile SDK リファレンスを参照してください。 プッシュ送信中にアプリが開いている場合、preventDefault() メソッドによってプッシュの表示が阻止されている可能性があります。これは通常、フォアグラウンドイベントリスナーまたはAndroid通知サービス拡張機能で設定されます。

Firebase Messagingまたは他のSDKの競合

アプリにFirebase Messaging SDKや他のプッシュ通知SDKも含まれている場合、OneSignalがメッセージを処理する前にそれらがメッセージを傍受していないか確認してください。 この問題は次の場合によく発生します:
  • 通知がOneSignalで配信済みと表示されているにもかかわらず、デバイスに表示されない。
  • アプリにOneSignalと firebase_messaging(またはカスタム FirebaseMessagingService)の両方が含まれている。
  • Firebase Messagingを削除するとプッシュが機能するが、両方のSDKが存在すると失敗する。
  1. AndroidManifest.xmlcom.google.firebase.iid.FirebaseInstanceIdReceiver などのレガシーFirebaseレシーバーがないか確認し、OneSignalがプッシュ配信を担当している場合は削除/条件付きで除外してください。
  2. onMessageReceived をオーバーライドするカスタム FirebaseMessagingService の実装(またはFlutterの firebase_messaging などのライブラリ)がないか確認してください。別のサービスがメッセージを完全に処理または抑制している場合、OneSignalが通知を表示する前にFCMペイロードを消費する可能性があります。
  3. FirebaseMessaging.getToken()FirebaseMessaging.deleteToken() などのFirebaseトークン管理APIの呼び出しを避けてください。
OneSignalがプッシュ配信を担当している場合、プッシュトークンのライフサイクルを管理するSDKはOneSignalのみであるべきです。FCMトークンを直接取得または管理すると、トークンの所有権の競合や一貫性のない配信動作につながる可能性があります。 他のシステム向けにデバイスのプッシュトークンが必要な場合は、OneSignalから読み取り(例:User.pushSubscription.token)、SDKのオブザーバーAPIを使用してサブスクリプション/トークンの変更をリッスンしてください。

SDKのサンプルプロジェクトをテストする

エンジニアリングチームが各SDKのために維持しているサンプルプロジェクトを使用して、問題が再現可能かどうかを確認してください。

エラーログを確認する

さらに診断する前にログデータを収集してください:
  • デバッグログの取得に関するガイドに従ってください。
  • 動作を説明できるエラー、警告、または非推奨の通知を探してください。

デバッグログの取得

詳細ログを有効にしてトラブルシューティング用のSDK出力をキャプチャする方法。

サポートに連絡する

それでも問題が解決しない場合は、次の情報を添えて support@onesignal.com に連絡してください:
  • OneSignalアプリID
  • 影響を受けているデバイスの外部IDまたはサブスクリプションID
  • 該当する場合、通知IDまたはダッシュボードの通知へのリンク
  • 問題を再現するデバイスからのデバッグログ

一般的なエラー

APNS Delegate never fired

「APNS Delegate Never Fired」や「APNS 3000」などのエラーは、デバイスがAppleのAPNSサーバーに接続できなかったことを示す、Appleが提供するタイムアウトメッセージです。これは次の場合に最も一般的です:
  • APNS開発環境でテストしている
  • OneSignalで複数のプッシュ通知依存関係またはネイティブiOSプッシュAPIを使用している
  • 一時的な接続の問題——ユーザーが次回新しいセッションを開始するときに自動的に解決されることが多い(アプリが30秒以上バックグラウンドで、その後再度開かれる)
解決手順:
  1. 他のプッシュ通知依存関係またはネイティブiOSプッシュAPIを削除し、OneSignalのみを使用してください。エラーが解決したら、他のコードを追加し直してください。共存のベストプラクティスについては support@onesignal.com に連絡してください。
  2. 詳細については、デバイスからのデバッグログを確認してください。
  3. エラーが解決しない場合は、サポートに連絡してください。
Capacitorを使用している場合は、OneSignalがプッシュ通知を処理できるようにこの設定を追加してください。
{
  "ios": {
    "handleApplicationNotifications": false
  }
}

アプリが強制終了された後、通知をクリックしてもアプリが開かない

Debugビルドでテストしていないことを確認してください。例えば、Flutterアプリの場合:
  • Flutterを介してリリースビルドを使用します。例:flutter run --release(物理デバイスが必要)
  • XcodeスキームをDebugではなくReleaseに更新します

関連ページ


FAQ

アプリでOneSignalアプリIDを変更するとどうなりますか?

アプリの初期化コードでOneSignalアプリIDを変更すると、ユーザーがアプリを最新バージョンに更新して開いたときに、新しいアプリIDの下に新しいユーザーとプッシュサブスクリプションが作成されます。 iOSバンドルIDまたはAndroidパッケージIDが同じ場合、デバイスは同じプッシュサブスクリプションステータスを継続します。ユーザーデータは新しくなります。つまり、新しいレコードにエイリアス、タグ、メールアドレス、電話番号を追加し直す必要があります。 iOSバンドルIDまたはAndroidパッケージIDが異なる場合、これは新しいアプリであり、異なるプッシュ証明書/キーが必要です。

OneSignalはオンプレミスのクローズドネットワークでプッシュ通知を送信できますか?

クローズドネットワーク上のコンピュータが、サポートしたいプッシュゲートウェイサーバーにアクセスできる限り、これは機能します: ネットワークがインターネットから完全に切断されている場合、プッシュ通知は標準のOS/ブラウザサービス経由で配信できません。これが当社がサポートしているものです。