概要
iOSプッシュ通知は、iOSアプリでの持続的なユーザーエンゲージメントとリテンションを促進するために不可欠です。これにより、リアルタイムの更新、リマインダー、パーソナライズされたメッセージをユーザーに直接配信でき、アプリの全体的なユーザーエクスペリエンスと定着性が向上します。OneSignalのSDKをアプリと統合することで、Apple Push Notification Service(APNS)を活用して、iOSデバイス全体で通知がシームレスに配信されるようにすることができます。このガイドでは、SDKをiOSアプリに統合する手順を説明します。要件
- Xcode 14以降を搭載したmacOS(セットアップ手順ではXcode 16.2を使用)
- iOS 12以降、iPadOS 12以降、またはiOS 16.2以降を実行するXcodeシミュレーターを搭載したデバイス
- 設定されたOneSignalアプリとプラットフォーム
OneSignalアプリとプラットフォームを設定
プッシュ通知の必須セットアップ OneSignalでプッシュ通知の送信を開始するには、まずサポートするすべてのプラットフォーム(Apple(APNs)、Google(FCM)、Huawei(HMS)、Amazon(ADM))でOneSignalアプリを設定する必要があります。OneSignalアプリを設定するためのステップバイステップの手順
OneSignalアプリを設定するためのステップバイステップの手順
アプリを作成または選択
- 既存のアプリにプラットフォームを追加するには、OneSignalダッシュボードでSettings > Push & In-Appに移動します。
- 新規に開始するには、New App/Websiteをクリックしてプロンプトに従います。

新しいアプリを作成する例
プラットフォームをセットアップして有効化
- アプリと組織の明確で認識可能な名前を選択します。
- 設定するプラットフォーム(iOS、Androidなど)を選択します。
- Next: Configure Your Platformをクリックします。

最初のOneSignalアプリ、組織、チャネルをセットアップする例
プラットフォーム認証情報を設定
- Android:Firebase認証情報をセットアップ
- iOS:p8トークン(推奨)またはp12証明書
- Amazon:APIキーを生成
- Huawei:OneSignalを承認
ターゲットSDKを選択

使用しているSDKを選択してドキュメントに移動
SDKをインストールしてApp IDを保存

App IDを保存して追加のチームメンバーを招待
iOSのセットアップ
次の手順に従って、バッジ、確認済み配信、および画像のサポートを含むプッシュ通知をiOSアプリに追加します。1. アプリターゲットにプッシュ通知機能を追加
プッシュ通知機能により、アプリはプッシュトークンを登録して通知を受信できます。- Xcodeでアプリの
.xcworkspaceファイルを開きます。 - アプリターゲット > 署名 & 機能を選択します
- + 機能をクリックして、プッシュ通知機能を追加します

アプリターゲットにプッシュ通知機能が付与されます。
2. アプリターゲットにバックグラウンドモード機能を追加
これにより、プッシュ通知が到着したときにアプリがバックグラウンドでウェイクできます。- バックグラウンドモード機能を追加します
- リモート通知を有効にします

アプリターゲットにリモート通知バックグラウンド実行モードが付与されます。
3. アプリターゲットをアプリグループに追加
アプリグループを使用すると、アプリとNotification Service Extension間でデータを共有できます。確認済み配信とバッジに必要です。- アプリグループが設定されていない場合
- アプリグループが既にある場合
- アプリグループ機能を追加します
- アプリグループ機能で**+**をクリックします
- 次の形式で新しいコンテナIDを追加します:
group.your_bundle_id.onesignal
- group.と.onesignalのプレフィックスとサフィックスを保持します。**
your_bundle_id**をアプリのバンドル識別子に置き換えます。 - たとえば、バンドル識別子が
com.onesignal.MyAppの場合、コンテナ名はgroup.com.onesignal.MyApp.onesignalになります。

アプリターゲットはアプリグループの一部です。
4. Notification Service Extensionを追加
Notification Service Extension(NSE)は、リッチ通知と確認済み配信分析を有効にします。- Xcodeで:ファイル > 新規 > ターゲット…
- Notification Service Extensionを選択してから、次へをクリックします。
- 製品名を
OneSignalNotificationServiceExtensionに設定し、完了を押します。 - スキームのアクティブ化プロンプトでアクティブ化しないを押します。

Notification Service Extensionターゲットを選択します。

Notification Service Extensionに名前を付けます。

アクティブ化をキャンセルして、アプリターゲットのデバッグを続行します。

メインアプリと同じデプロイメントターゲットを設定します。
5. NSEターゲットをアプリグループに追加
ステップ3で追加したのと同じアプリグループIDを使用します。- OneSignalNotificationServiceExtension > 署名 & 機能に移動します
- アプリグループを追加します
- まったく同じグループIDを追加します
group.your_bundle_id.onesignalではない場合は、アプリターゲットとOneSignalNotificationServiceExtensionターゲットのInfo.plistの両方にアプリグループIDを追加してください!詳細については、ステップ3を参照してください。
NSEは、アプリターゲットと同じアプリグループに属するようになりました。
6. NSEコードを更新
- OneSignalNotificationServiceExtensionフォルダに移動します
NotificationService.swiftまたはNotificationService.mファイルの内容を次のものに置き換えます:

NotificationServiceファイルに移動します。

次のステップでパッケージをインストールするまで、このファイルはエラーを表示します。
SDKのセットアップ
このセクションでは、OneSignalのコア機能の統合について説明します。このセクションが終わるまでに、アプリ内メッセージをトリガーしてプッシュ通知を受信できる、SDKとの基本的な統合が完了します。1. SDKを追加
Xcode Package Dependencies ManagerまたはCocoaPodsを使用してSDKを追加します。利用可能なライブラリは4つあります。アプリ内メッセージまたは位置情報追跡が不要な場合は、これらのパッケージを省略できます。| ライブラリ | ターゲット | 必須 |
|---|---|---|
| OneSignalExtension | OneSignalNotificationServiceExtension | ✅ |
| OneSignalFramework | App | ✅ |
| OneSignalInAppMessages | App | 推奨 |
| OneSignalLocation | App | オプション |
- Xcode Package Dependencies
- CocoaPods
https://github.com/OneSignal/OneSignal-iOS-SDKonesignal-ios-sdkパッケージを選択し、パッケージを追加をクリックします。OneSignal-iOS-SDKのパッケージ製品を選択します。- 重要:OneSignalExtensionをOneSignalNotificationServiceExtensionターゲットに追加します。
- OneSignalFrameworkをアプリターゲットに追加します。
- アプリ内メッセージ(推奨)または位置情報追跡を使用する予定がある場合は、それらのパッケージもアプリターゲットに追加します。

アプリで位置情報追跡が不要な場合は、この例のようにパッケージを削除できます。
2. SDKを初期化
Xcodeインターフェースのセットアップに応じて、次のオプションに従ってOneSignalを初期化します。- SwiftUI
- Storyboard
OneSignal SDK統合のテスト
このガイドでは、プッシュ通知、サブスクリプション登録、アプリ内メッセージをテストして、OneSignal SDK統合が正しく機能していることを確認する方法を説明します。モバイルサブスクリプションを確認
テストデバイスでアプリを起動します。
requestPermissionメソッドを追加した場合、ネイティブのプッシュ許可プロンプトが自動的に表示されます。
iOSとAndroidのプッシュ許可プロンプト
OneSignalダッシュボードを確認
- Audience > Subscriptionsに移動します。
- ステータスが「Never Subscribed」の新しいエントリが表示されるはずです。

「Never Subscribed」ステータスのサブスクリプションを表示するダッシュボード
アプリに戻り、プロンプトで「許可」をタップします。
OneSignalダッシュボードのSubscriptionsページを更新します。

「Subscribed」ステータスのサブスクリプションを表示するダッシュボード
テストサブスクリプションをセットアップ
テストサブスクリプションは、メッセージを送信する前にプッシュ通知をテストするのに役立ちます。Test Subscriptionsに追加します。

デバイスをTest Subscriptionsに追加
サブスクリプションに名前を付けます。

「Name your subscription」フィールドを表示するダッシュボード
テストユーザーセグメントを作成します。
セグメントに名前を付けます。
Test Usersという名前を付けます(この名前は後で使用されるため重要です)。Test Usersフィルターを追加し、Create Segmentをクリックします。

Test Usersフィルターを使用して「Test Users」セグメントを作成
API経由でテストプッシュを送信
App API KeyとApp IDを取得します。
提供されたコードを更新します。
YOUR_APP_API_KEYとYOUR_APP_IDを実際のキーに置き換えます。このコードは、先ほど作成したTest Usersセグメントを使用します。コードを実行します。
画像とConfirmed Deliveryを確認します。

iOSとAndroidで画像付きプッシュ通知
Confirmed Deliveryを確認します。

Confirmed Deliveryを示す配信統計

Audience Activityでのデバイスレベルでの Confirmed Delivery
- 画像が受信されない場合は、Notification Service Extensionが不足している可能性があります。
- Confirmed Deliveryがない場合は、こちらのトラブルシューティングガイドを確認してください。
- 問題が発生した場合は、APIリクエストとアプリ起動の最初から最後までのログを
.txtファイルにコピー&ペーストしてください。その後、両方をsupport@onesignal.comと共有してください。
アプリ内メッセージを送信
アプリ内メッセージを使用すると、ユーザーがアプリを使用している間にユーザーとコミュニケーションできます。デバイスでアプリを閉じるか、バックグラウンドにします。
アプリ内メッセージを作成します。
- OneSignalダッシュボードで、Messages > In-App > New In-Appに移動します。
- Welcomeメッセージを見つけて選択します。
- Audienceを、以前使用したTest Usersセグメントに設定します。

「Test Users」セグメントをアプリ内メッセージでターゲティング
必要に応じてメッセージコンテンツをカスタマイズします。

アプリ内Welcomeメッセージのカスタマイズ例
トリガーを「On app open」に設定します。
頻度をスケジュールします。

アプリ内メッセージのスケジュールオプション
メッセージをライブにします。
アプリを開いてメッセージを確認します。

デバイスに表示されたWelcomeアプリ内メッセージ
- 新しいセッションを開始します
- 再度開く前に、少なくとも30秒間アプリを閉じるかバックグラウンドにする必要があります。これにより、新しいセッションが開始されます。
- 詳細については、アプリ内メッセージの表示方法を参照してください。
- まだ
Test Usersセグメントに含まれていますか?- アプリを再インストールしたりデバイスを切り替えたりした場合は、デバイスをTest Subscriptionsに再度追加し、Test Usersセグメントの一部であることを確認してください。
- 問題が発生していますか?
- 上記の手順を再現しながらデバッグログの取得に従ってください。これにより、
support@onesignal.comと共有できる追加のログが生成され、何が起こっているかを調査するのに役立ちます。
- 上記の手順を再現しながらデバッグログの取得に従ってください。これにより、
- サブスクリプションの収集、テストサブスクリプションの設定、セグメントの作成。
- セグメントとCreate message APIを使用した画像付きプッシュとConfirmed Deliveryの送信。
- アプリ内メッセージの送信。
ユーザー識別
以前、モバイルサブスクリプションの作成方法を説明しました。次に、OneSignal SDKを使用して、すべてのサブスクリプション(プッシュ、メール、SMSを含む)にわたるユーザーの識別に拡張します。プラットフォーム間でユーザーを統合し、エンゲージメントするために、External ID、タグ、マルチチャネルサブスクリプション、プライバシー、イベントトラッキングについて説明します。External IDを割り当て
External IDを使用して、バックエンドのユーザー識別子を使用して、デバイス、メールアドレス、電話番号間でユーザーを一貫して識別します。これにより、チャネルとサードパーティシステム間でメッセージングが統一されたままになります(特に統合に重要)。 アプリによって識別されるたびに、SDKのloginメソッドを使用してExternal IDを設定します。
データタグを追加
タグは、ユーザープロパティ(username、role、設定など)とイベント(purchase_date、game_level、ユーザーインタラクションなど)を保存するために使用できる文字列データのキーと値のペアです。タグは、高度なメッセージパーソナライゼーションとセグメンテーションを強化し、より高度なユースケースを可能にします。
アプリでイベントが発生したときに、SDKのaddTagおよびaddTagsメソッドを使用してタグを設定します。
この例では、ユーザーはレベル6に到達し、current_levelというタグで識別され、値は6に設定されます。

"current_level"というタグが"6"に設定されたOneSignalのユーザープロファイル

current_level値が4より大きく10より小さいユーザーをターゲットとするセグメントを示すセグメントエディター

パーソナライズされたメッセージでLevel 5-10セグメントをターゲットとするプッシュ通知を示すスクリーンショット

パーソナライズされたコンテンツを含むプッシュ通知がiOSおよびAndroidデバイスで受信されます
メールおよび/またはSMSサブスクリプションを追加
以前、SDKがプッシュとアプリ内メッセージを送信するためにモバイルサブスクリプションを作成する方法を見ました。対応するサブスクリプションを作成することで、メールとSMSチャネルを通じてユーザーにリーチすることもできます。addEmailメソッドを使用してメールサブスクリプションを作成します。addSmsメソッドを使用してSMSサブスクリプションを作成します。

External IDによって統合されたプッシュ、メール、SMSサブスクリプションを持つユーザープロファイル
- メールまたはSMSサブスクリプションを追加する前に、明示的な同意を得てください。
- 各コミュニケーションチャネルの利点をユーザーに説明してください。
- ユーザーが好むチャネルを選択できるように、チャネルの設定を提供してください。
プライバシーとユーザー同意
OneSignalがユーザーデータを収集するタイミングを制御するには、SDKの同意ゲーティングメソッドを使用します:setConsentRequired(true):同意が与えられるまでデータ収集を防ぎます。setConsentGiven(true):同意が付与されるとデータ収集を有効にします。
プッシュ許可のプロンプト
アプリを開いたときにすぐにrequestPermission()を呼び出すのではなく、より戦略的なアプローチを取ります。許可をリクエストする前に、アプリ内メッセージを使用してプッシュ通知の価値を説明します。
ベストプラクティスと実装の詳細については、プッシュ許可のプロンプトガイドを参照してください。
プッシュ、ユーザー、アプリ内イベントをリッスン
SDKリスナーを使用して、ユーザーのアクションと状態の変化に反応します。 SDKは、フックできるいくつかのイベントリスナーを提供します。詳細については、SDKリファレンスガイドを参照してください。プッシュ通知イベント
addClickListener():通知がタップされたときを検出します。ディープリンクに役立ちます。addForegroundLifecycleListener():フォアグラウンドでの通知の動作を制御します。
ユーザー状態の変更
- ユーザー状態用の
addObserver():External IDが設定されたときを検出します。 addPermissionObserver():ネイティブのプッシュ許可プロンプトとのユーザーの特定のインタラクションを追跡します。- プッシュサブスクリプション用の
addObserver():プッシュサブスクリプションのステータスが変更されたときを追跡します。
アプリ内メッセージイベント
addClickListener():アプリ内クリックアクションを処理します。ディープリンクやイベントの追跡に最適です。addLifecycleListener():アプリ内メッセージの完全なライフサイクル(表示、クリック、閉じるなど)を追跡します。
高度なセットアップと機能
統合を強化するための追加機能を探索します:- 🔁 別のサービスからOneSignalへの移行
- 🌍 位置情報トラッキング
- 🔗 ディープリンク
- 🔌 統合
- 🧩 Mobile Service Extensions
- 🛎️ アクションボタン
- 🌐 多言語メッセージング
- 🛡️ Identity Verification
- 📊 カスタムアウトカム
- 📲 Live Activities
Mobile SDKのセットアップとリファレンス
モバイルプッシュセットアップガイドを確認して、すべての主要機能が有効になっていることを確認してください。 利用可能なメソッドと設定オプションの詳細については、Mobile SDKリファレンスにアクセスしてください。support@onesignal.comにメールしてください以下を含めてください:- 発生している問題の詳細と再現手順(利用可能な場合)
- OneSignal App ID
- 該当する場合は、External IDまたはSubscription ID
- 該当する場合は、OneSignalダッシュボードでテストしたメッセージのURL
- 関連するログまたはエラーメッセージ