Apple Push Notification Service (APNs) セットアップガイド
Apple Push Notification Service 証明書とプロビジョニングプロファイルを設定して、Singular SDK を使用する iOS アプリのプッシュ通知配信とアンインストール追跡を有効にします。
概要
前提条件
Apple Developer Member CenterでSSL証明書とプロビジョニングプロファイルを作成し、APNsプッシュ通知を有効にします。
必要なコンポーネント
- SSL証明書:プッシュ通知用に設定されたApp IDに関連付けられます。
- プロビジョニングプロファイル:Provisioning Profile(プロビジョニング・プロファイル):開発中およびテスト中にアプリを実行するデバイスを許可します。
- Appleデベロッパーアカウント:証明書の作成に必要なアクティブメンバーシップ
- Macコンピュータ:キーチェーンアクセスと証明書生成に必要
Apple Developer Portal:すべての証明書とプロファイルの管理はApple Developer Member Center で行われます。 組織の開発者チームに適切な権限があることを確認してください。
証明書の種類
Appleは、環境に応じて2種類のAPNs SSL証明書を提供しています。
| 証明書の種類 | 利用環境 | 使用例 |
|---|---|---|
| 開発用SSL証明書 | サンドボックス | 社内テストおよび開発用ビルド |
| 本番用SSL証明書 | 本番環境 | App StoreリリースおよびTestFlightビルド |
環境の一致は重要です:アプリは、ビルド環境に一致する証明書を使用する必要があります。開発用の証明書を使用した本番アプリは、プッシュ通知を受信できません。
ステップ1:証明書署名要求の生成
SSL証明書の作成を認証するために、Macで証明書署名要求(CSR)ファイルを作成します。
CSRファイルの作成
キーチェーンアクセスを使用する
macOSのKeychain Accessアプリケーションを使ってCSRを作成する。
- キーチェーンアクセスを開く:アプリケーション → ユーティリティ → キーチェーンアクセスに移動するか、Spotlight検索(Cmd+Space)を使用する。
- 証明書アシスタントにアクセス:メニューバーで、キーチェーンアクセス → 証明書アシスタント → 認証局に証明書を要求...を選択。
-
ユーザ情報を入力します:
- ユーザのメールアドレス:メールアドレスを入力 (Apple Developer アカウントで使用)
- コモンネーム:説明的な名前を入力 (例: "YourCompany APNs Certificate")
- CA のメールアドレス:空白のまま
- リクエストタイプを選択する:Saved to disk "オプションを選択する(証明書を手動で作成する場合に必要)
- Save CSR File:Continueをクリックし、.certSigningRequestファイルをMac上の任意の場所に保存する。
秘密鍵の保存:Keychain Accessは、CSRの作成時に秘密鍵を自動的に生成し、保存します。この秘密鍵は、後でAppleからダウンロードするSSL証明書とペアになります。
ステップ2:App IDの作成または設定
新しいApp IDを作成するか、既存のApp IDを設定してプッシュ通知機能を有効にします。
App IDについて
App IDの構造
App IDはiOSアプリケーションを一意に識別するもので、Push Notificationをサポートするには明示的な識別子(ワイルドカードではない)である必要があります。
フォーマット逆ドメイン表記(例:com.yourcompany.appname
明示的なApp IDが必要です:ワイルドカードApp ID(*を含む)はPush Notificationsを使用できません。既存のワイルドカードApp IDがある場合は、Push対応アプリ用に新しい明示的App IDを作成してください。
新しいApp IDの作成
App IDの設定手順
Apple Developerポータルで、Push Notificationsを有効にした新しいApp IDを作成します。
- デベロッパポータルにアクセスします: Apple Developer Member Centerに移動し、サインインします。
- Certificates & Identifiersを開きます:Certificates, Identifiers & Profiles(証明書、識別子、プロファイル)」を選択します。
- Identifiers に移動します:左側のサイドバーで、"Identifiers" を選択します。
- プラットフォームを選択します:左上のドロップダウンで "iOS Apps"(新しいインターフェースでは "iOS, tvOS, watchOS")を選択する。
- 識別子を作成する:新しいApp IDを作成するには、「+」ボタンをクリックします。
App IDの詳細を設定する
App ID情報を入力し、プッシュ通知機能を有効にします。
- タイプを選択します:App IDs」を選択します(App Clipsではありません)。
- バンドルタイプを選択します:タイプとして "App "を選択
- Description を入力します:意味のある名前を入力する(例:"YourApp Production")
- Set Bundle ID:[App ID Prefix]セクションで、デフォルトのチームIDを使用します。
-
Enter Explicit Bundle ID:Bundle ID フィールドに、Xcode で表示されるように、アプリの識別子を正確に入力します(例えば、
com.yourcompany.appname)。
Bundle ID Matching:Bundle ID 値は、アプリのInfo.plist ファイルと Xcode プロジェクト設定の識別子と正確に一致する必要があります。大文字と小文字の区別は重要です。
プッシュ通知を有効にする
App ServicesセクションでPush Notifications機能を有効にします。
- Capabilitiesにスクロールします:App Services "セクションを見つける。
- プッシュ通知を有効にする:Push Notifications "チェックボックスにチェックを入れる。
- 設定を確認します:Continueをクリックし、設定を確認する。
- App IDを確認します:IdentifierにバンドルIDが正しく表示されていることを確認します。
- ステータスを確認する:Push Notificationsが "Configurable "と表示されていることを確認する。
- App IDを登録します:SubmitをクリックしてApp IDを作成します。
ステップ3:プッシュ通知証明書の設定
APNとアプリの通信を可能にするために、Push Notification用のSSL証明書を生成します。
App ID設定にアクセスする
App ID設定の編集
開発環境と本番環境用のSSL証明書を作成するために、App ID設定を開きます。
- Identifiersに移動します:Apple Developerポータルで、Certificates, Identifiers & Profiles → Identifiersに移動します。
- App IDを選択します:作成した、または設定したい App ID をクリックします。
- 設定を編集する:Edit(編集)」ボタンをクリックします(またはApp IDが直接編集モードで開きます)。
- Push Notificationsを探す:機能リストの「Push Notifications」セクションまでスクロールする。
開発用SSL証明書の作成
開発用証明書の生成
開発中にプッシュ通知をテストするための開発用証明書を作成します。
- 証明書の作成を開始します:Push Notificationsセクションで、Development SSL Certificateの下にある "Create Certificate... "をクリックします。
- 手順を確認します:証明書署名要求(CSR)の作成について」をお読みください。
- 続行します:Continueボタンをクリックします。
- CSRをアップロードする:Choose File... "をクリックし、ステップ1で作成した.certSigningRequestファイルを選択します。
- 生成する:Continue(またはGenerate)をクリックして証明書を作成します。
証明書のダウンロードとインストール
SSL証明書をダウンロードし、プッシュ通知で使用するためにMacのキーチェーンにインストールします。
- 証明書をダウンロードする:ダウンロード」ボタンをクリックして、.cerファイルをMacに保存します。
- プロセスの完了完了」をクリックして証明書作成フローを終了します。
- 証明書をインストールします:ダウンロードした.cerファイルをダブルクリックしてキーチェーンに追加します。
- インストールを確認する:キーチェーンアクセスを開き、"My Certificates "カテゴリーに移動する。
- 証明書を探す:Apple Development iOS Push Services: your.bundle.id "証明書と関連する秘密鍵を見つける。
証明書のペアリング:ダウンロードした証明書は、CSR作成時に生成された秘密鍵と自動的にペアリングされます。 プッシュ通知が機能するためには、両方がKeychainに存在する必要があります。
証明書を.p12としてエクスポートする
P12ファイルの生成
プッシュ通知サービス(Singularなど)にアップロードするために、証明書と秘密鍵を.p12ファイルとしてエクスポートします。
- キーチェーンアクセスを開く:マイ証明書」カテゴリーに移動
- 証明書を展開する:Apple Development iOS Push Services "証明書の横にある三角マークをクリックし、プライベートキーを表示する。
- 両方の項目を選択する:Commandキーを押しながらクリックし、証明書と秘密鍵の両方を選択する。
- エクスポートする:選択項目を右クリックし、"Export 2 items... "を選択する。
- ファイル名:わかりやすい名前で保存する(例:"YourApp_Development_APNs.p12")
- フォーマットを選択します:ファイル形式として「Personal Information Exchange (.p12)」が選択されていることを確認します。
- パスワードの設定:.p12ファイルを保護するための強力なパスワードを入力します。
- エクスポートを確認する:OK]をクリックし、プロンプトが表示されたらMacのログインパスワードを入力します。
セキュリティに関する警告.p12ファイルには秘密鍵と証明書が含まれています。安全に保管し、決して公開リポジトリにコミットしないでください。パスワードは忘れないようにしてください。
本番用SSL証明書の作成
本番用証明書の生成
App Storeリリースに必要な本番用SSL証明書の作成プロセスを繰り返します。
- App ID設定に戻ります:Apple DeveloperポータルのApp ID設定に戻ります。
- プロダクション証明書を作成します:プッシュ通知セクションで、本番用SSL証明書の下にある「証明書を作成...」をクリックします。
- 同じプロセスを実行します:CSRをアップロードし、証明書を生成し、ダウンロードし、Keychainにインストールする。
- 本番用P12をエクスポート:.p12としてエクスポートし、説明的な名前を付けます(例:"YourApp_Production_APNs.p12")。
- 安全な保管:本番用証明書を開発用証明書とは別に安全に保管
プロダクション証明書が必要です:App Storeに提出され、TestFlight経由で配布されるアプリは、本番用SSL証明書を使用する必要があります。本番環境では、開発用証明書は使用できません。
ステップ4:プロビジョニングプロファイルの作成
プロビジョニングプロファイルを生成して、開発およびテストフェーズでアプリを実行するデバイスを承認します。
プロビジョニングプロファイルについて
プロファイルの種類
プロビジョニング・プロファイルは、App ID、証明書、および登録済みデバイスをリンクして、アプリのインストールとテストを可能にします。
| プロファイルタイプ | 目的 | デバイスの制限 |
|---|---|---|
| iOSアプリの開発 | 登録デバイスでの内部テスト | 1プロファイルにつき100デバイスまで |
| アドホック | 開発チーム以外のテスターへの配布 | 1プロファイルあたり最大100デバイス |
| App Store | App Store配信およびTestFlight | 無制限(すべてのデバイス) |
開発プロファイルの作成
開発プロファイルのセットアップ
プッシュ通知テスト用のiOSアプリ開発プロビジョニングプロファイルを作成します。
- プロビジョニングプロファイルにアクセスします:Apple Developerポータルで、Certificates, Identifiers & Profiles → Profilesに移動します。
- 新しいプロファイルを作成します:プロファイルの作成を開始するには、"+"ボタンをクリックします。
- タイプを選択します:Development(開発)セクションで「iOS App Development(iOSアプリ開発)」を選択
- 続行する:Continueボタンをクリック
- App IDを選択します:ドロップダウンメニューで、プッシュ通知用に設定したアプリIDを選択します。
- Continue(続行)ボタンをクリックします:Continueボタンをクリックします。
プロファイルの詳細の構成
証明書、デバイスを選択し、プロビジョニング・プロファイルに名前を付けます。
- 証明書を選択します:App IDに関連付けられているiOS Development証明書をチェックします。
- Continue(続行)をクリックします:Continue(続行)ボタンをクリックします。
- Devices(デバイス)を選択します:プッシュ通知をテストするすべてのデバイスにチェックを入れます。
- 続行します:Continueボタンをクリックします。
- プロファイル名を入力します:説明的な名前を入力 (例: "YourApp Development Push Testing")
- Generate Profile(プロファイルの生成):Generate ボタンをクリックします。
デバイスの登録:プロビジョニングプロファイルに追加する前に、テストデバイスをApple Developerポータルに登録する必要があります。DevicesセクションのUDIDでデバイスを登録します。
プロビジョニングプロファイルのインストール
Xcode で使用するプロビジョニング・プロファイルをダウンロードしてインストールします。
- プロファイルをダウンロードします:Download ボタンをクリックして .mobileprovision ファイルを保存します。
- プロファイルをインストールします:ダウンロードした .mobileprovision ファイルをダブルクリックして Xcode に追加します。
- インストールを確認します:Xcode → Preferences → Accounts → View Details を開き、プロファイルが表示されることを確認します。
- プロジェクトで選択Xcode のプロジェクト設定で、署名と能力の下でプロビジョニングプロファイルを選択します。
プロファイルの有効期限:プロビジョニングプロファイルは、1 年後に失効します。Apple Developer ポータルで期限切れのプロファイルを更新し、新しい .mobileprovision ファイルをダウンロードしてください。
確認とテスト
開発デバイスへのプッシュ通知配信をテストして、APNの設定が正しいことを確認します。
構成チェックリスト
テスト前の検証
プッシュ通知をテストする前に、すべてのコンポーネントが正しく設定されていることを確認します。
- アプリID:プッシュ通知機能を有効にした明示的なアプリID
- SSL証明書:開発用および本番用の証明書が作成され、.p12 としてエクスポートされていること。
- プロビジョニング・プロファイル:正しい App ID とデバイスで Xcode にインストールされた開発プロファイル
- バンドル ID の一致:Xcode プロジェクトのバンドル ID は、App ID 識別子に正確に一致します。
- 機能:プッシュ通知機能が Xcode で有効になっている 署名と機能
- キーチェーン:Mac Keychain の "My Certificates" に秘密鍵付きの証明書が存在する。
プッシュ通知のテスト
テスト手順
APNの設定を確認するために、テストプッシュ通知を送信する。
- ビルドとインストール開発用プロビジョニングプロファイルでアプリをビルドし、テストデバイスにインストールする。
- 権限を要求する:アプリを起動し、プロンプトが表示されたらプッシュ通知の権限を付与します。
- デバイストークンを登録する:コンソールログでアプリがAPNのデバイストークンを受け取ることを確認する。
- テスト通知を送信します:APNsテストツールまたはプッシュサービスを使用してテスト通知を送信します。
- 配信を確認する:通知がデバイスに表示されることを確認する
よくある問題
| 問題点 | 原因 | 解決方法 |
|---|---|---|
| デバイストークンを受信していない | プッシュ通知が機能で有効になっていない | Xcode の Signing & Capabilities タブで Push Notifications を有効にしてください。 |
| 証明書が見つからないエラー | キーチェーンから秘密鍵が見つからない | CSR を作成した元の Mac から秘密鍵を含む証明書を再エクスポートする。 |
| プッシュ通知が配信されない | 間違った環境(dev と prod) | 証明書の種類がビルド構成と一致しているか確認する |
| プロビジョニングプロファイルが無効 | プロファイルの有効期限が切れているか、デバイスが登録されていない | プロビジョニング・プロファイルを更新し、デバイスが登録されていることを確認する |
| バンドル ID の不一致 | Xcode のバンドル ID がアプリ ID と一致しない。 | App ID の識別子と正確に一致するように、Xcode のバンドル ID を更新する。 |
テストツール:Xcode の Apple のプッシュ通知コンソール、または Pusher、Knuff、または開発中にテスト通知を送信するための curl コマンドのようなサードパーティのツールを使用します。
次のステップ
APNを設定したら、アプリのプッシュ通知処理を統合し、アンインストール追跡のためにSingularを設定します。
統合ガイド
セットアップの完了
- iOS Pushの実装:iOSアプリのコードにAPN登録と通知処理を実装します。
- Singular SDKの統合: Singular iOS SDK実装ガイドに従って、アンインストール追跡を有効にします。
- 証明書をSingularにアップロードします:アンインストールトラッキングのために、.p12証明書をSingularのアプリ設定にアップロードします。
- アンインストール追跡をテストします:本番リリース前にアンインストール検出が正しく動作することを確認します。
本番リリース
App Store への提出要件
- 本番用証明書:App Storeビルドに本番用SSL証明書を使用する
- App Storeプロファイル:App Store Distributionプロビジョニングプロファイルの作成と使用
- コード署名:Xcode Archive 設定で正しい証明書とプロファイルが選択されていることを確認する。
- TestFlight:TestFlight ビルドは、Production 証明書と Production 環境-test を使用します。