> ## Documentation Index
> Fetch the complete documentation index at: https://documentation.onesignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# モバイルSDKトラブルシューティング

> OneSignal Mobile SDKの一般的な問題を解決します。iOS、Android、クロスプラットフォームフレームワーク全体でのプッシュ配信の失敗、APNSエラー、アプリ内メッセージングの問題が含まれます。

<Note>
  Webサイトで問題が発生している場合は、[Webプッシュトラブルシューティングガイド](./troubleshooting-web-push)を参照してください。
</Note>

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

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

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

<Card title="モバイルSDKセットアップ" icon="wrench" href="./mobile-sdk-setup">
  一般的な問題を防ぎ、統合をテストするのに役立つセットアップ手順。
</Card>

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

<Columns cols={2}>
  <Card title="通知が表示されない、または遅延する" icon="bell-slash" href="./notifications-show-successful-but-are-not-being-shown">
    プッシュ通知がデバイスに表示されないか遅延します。
  </Card>

  <Card title="通知画像が表示されない" icon="image" href="./notification-images-not-showing">
    通知の展開ビューで画像が表示されません。
  </Card>

  <Card title="通知CTR" icon="arrow-pointer" href="./notification-ctr">
    通知のクリック数が少ない、またはクリックがありません。
  </Card>

  <Card title="重複通知" icon="copy" href="./duplicated-notifications">
    通知が複数回表示されています。
  </Card>

  <Card title="アプリ内メッセージのトラブルシューティング" icon="message" href="./in-app-message-troubleshooting">
    アプリ内メッセージが期待どおりに表示または動作しません。
  </Card>
</Columns>

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

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

`OneSignal.User.pushSubscription.optOut()` などの `optOut()` や、REST APIで `enabled: false` を設定していないか確認してください。これによりプッシュサブスクリプションのステータスが `unsubscribed` に設定されます。詳細は[Mobile SDK リファレンス](./mobile-sdk-reference#optout-%2C-optin-%2C-optedin)を参照してください。

プッシュ送信中にアプリが開いている場合、`preventDefault()` メソッドによってプッシュの表示が阻止されている可能性があります。これは通常、[フォアグラウンドイベントリスナー](./mobile-sdk-reference#addforegroundlifecyclelistener-push)または[Android通知サービス拡張機能](./service-extensions)で設定されます。

#### Firebase Messagingまたは他のSDKの競合

アプリにFirebase Messaging SDKや他のプッシュ通知SDKも含まれている場合、OneSignalがメッセージを処理する前にそれらがメッセージを傍受していないか確認してください。

この問題は次の場合によく発生します：

* 通知がOneSignalで**配信済み**と表示されているにもかかわらず、デバイスに表示されない。
* アプリにOneSignalと `firebase_messaging`（またはカスタム `FirebaseMessagingService`）の両方が含まれている。
* Firebase Messagingを削除するとプッシュが機能するが、両方のSDKが存在すると失敗する。

1. `AndroidManifest.xml` に `com.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](./mobile-sdk-reference#addobserver-push-subscription-changes)を使用してサブスクリプション/トークンの変更をリッスンしてください。

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

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

* [iOSサンプルプロジェクト](https://github.com/OneSignal/OneSignal-iOS-SDK/tree/main/OneSignalSwiftUIExample)
* [Androidサンプルプロジェクト](https://github.com/OneSignal/OneSignal-Android-SDK/tree/main/examples)
* [Cordovaバリアントサンプルプロジェクト](https://github.com/OneSignal/OneSignal-Cordova-SDK/tree/main/examples)
* [React Nativeサンプルプロジェクト](https://github.com/OneSignal/react-native-onesignal/tree/main/examples)
* [Flutterサンプルプロジェクト](https://github.com/OneSignal/OneSignal-Flutter-SDK/tree/main/examples)
* [Unityサンプルプロジェクト](https://github.com/OneSignal/OneSignal-Unity-SDK/tree/main/examples)
* [.NET MAUIサンプルプロジェクト](https://github.com/OneSignal/OneSignal-DotNet-SDK/tree/main/examples)

### エラーログを確認する

さらに診断する前にログデータを収集してください：

* [デバッグログの取得](./capturing-a-debug-log)に関するガイドに従ってください。
* 動作を説明できるエラー、警告、または非推奨の通知を探してください。

<Card title="デバッグログの取得" icon="bug" href="./capturing-a-debug-log">
  詳細ログを有効にしてトラブルシューティング用のSDK出力をキャプチャする方法。
</Card>

### サポートに連絡する

それでも問題が解決しない場合は、次の情報を添えて `support@onesignal.com` に連絡してください：

* OneSignalアプリID
* 影響を受けているデバイスの外部IDまたはサブスクリプションID
* 該当する場合、通知IDまたはダッシュボードの通知へのリンク
* 問題を再現する[デバイスからのデバッグログ](./capturing-a-debug-log)

***

## 一般的なエラー

### 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. 詳細については、[デバイスからのデバッグログ](./capturing-a-debug-log)を確認してください。
3. エラーが解決しない場合は、[サポートに連絡](#トラブルシューティング手順)してください。

Capacitorを使用している場合は、OneSignalがプッシュ通知を処理できるようにこの設定を追加してください。

<CodeGroup>
  ```json json theme={null}
  {
    "ios": {
      "handleApplicationNotifications": false
    }
  }
  ```

  ```typescript capacitor.config.ts theme={null}
  const config: CapacitorConfig = {
    // ... additional configuration

    ios: {
      // ... additional configuration
      handleApplicationNotifications: false
    }
  };
  ```
</CodeGroup>

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

`Debug`ビルドでテストしていないことを確認してください。例えば、Flutterアプリの場合：

* Flutterを介してリリースビルドを使用します。例：`flutter run --release`（物理デバイスが必要）
* Xcodeスキームを`Debug`ではなく`Release`に更新します

***

## 関連ページ

<Columns cols={2}>
  <Card title="モバイルSDKセットアップ" icon="wrench" href="./mobile-sdk-setup">
    サポートされているすべてのモバイルおよびクロスプラットフォームSDKのセットアップ手順。
  </Card>

  <Card title="デバッグログの取得" icon="bug" href="./capturing-a-debug-log">
    トラブルシューティング用のSDKログをキャプチャする方法。
  </Card>

  <Card title="Webプッシュのトラブルシューティング" icon="globe" href="./troubleshooting-web-push">
    Webプッシュ通知の問題をトラブルシューティングします。
  </Card>

  <Card title="モバイルSDKリファレンス" icon="book" href="./mobile-sdk-reference">
    OneSignal Mobile SDKの完全なAPIリファレンス。
  </Card>
</Columns>

***

## FAQ

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

アプリの初期化コードでOneSignalアプリIDを変更すると、ユーザーがアプリを最新バージョンに更新して開いたときに、新しいアプリIDの下に新しいユーザーとプッシュサブスクリプションが作成されます。

iOSバンドルIDまたはAndroidパッケージIDが同じ場合、デバイスは同じプッシュサブスクリプションステータスを継続します。ユーザーデータは新しくなります。つまり、新しいレコードにエイリアス、タグ、メールアドレス、電話番号を追加し直す必要があります。

iOSバンドルIDまたはAndroidパッケージIDが異なる場合、これは新しいアプリであり、異なるプッシュ証明書/キーが必要です。

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

クローズドネットワーク上のコンピュータが、サポートしたいプッシュゲートウェイサーバーにアクセスできる限り、これは機能します：

* [https://support.apple.com/en-us/HT203609](https://support.apple.com/en-us/HT203609)
* [https://firebase.google.com/docs/cloud-messaging/concept-options#messaging-ports-and-your-firewall](https://firebase.google.com/docs/cloud-messaging/concept-options#messaging-ports-and-your-firewall)

ネットワークがインターネットから完全に切断されている場合、プッシュ通知は標準のOS/ブラウザサービス経由で配信できません。これが当社がサポートしているものです。

***
