メインコンテンツへスキップ
iOSアプリにプッシュ通知を送信するには、Apple Push Notification Services(APNs)への認証された接続が必要です。**トークンベース(.p8キー)または証明書ベース(.p12ファイル)**メソッドを使用して認証できますが、1つだけが必要です。
.p12証明書は1年後に期限切れになります。この証明書の更新を管理したくない場合は、代わりに期限切れにならない.p8キーを作成できます。
このガイドでは、**証明書ベース(.p12ファイル)**のセットアップについて説明します。毎年更新する必要があるため、これは推奨されません。これには、毎年Apple Developerアカウントにログインして新しい証明書を生成し、OneSignalダッシュボードにアップロードすることが含まれます。

要件

開始する前に、次のものがあることを確認してください:

プッシュ証明書を生成

まず、macOSで証明書署名要求.certSigningRequestファイル(CSR)を作成する必要があります。
  1. キーチェーンアクセスを開く:アプリケーション > ユーティリティ > キーチェーンアクセス
  2. 証明書アシスタントを起動
メニューバーから、**キーチェーンアクセス > 証明書アシスタント > 認証局に証明書を要求…**をクリックします

Macキーチェーンアクセス

  1. 情報を入力
必須フィールドに入力します:
  • ユーザーのメールアドレスyour-email@example.com
  • 通称:あなたの名前または証明書の名前
  • CAのメールアドレス:これを空白のままにします
  • 要求の処理ディスクに保存を選択

証明書アシスタントウィンドウ

  1. 続けるをクリック
  • .certSigningRequestファイルを保存する場所を選択
  • 保存をクリックして完了
これで、使用する準備ができた.certSigningRequestファイルができました!

アプリのプッシュ機能を有効化

Xcode内で自動的に署名を管理を使用している場合はスキップしてください。
  1. Apple DeveloperポータルのIdentifiersセクションに移動し、リストからアプリのアプリIDを見つけて選択します。
  1. チェックボックスをオンにしてプッシュ通知機能を有効にします。⚠️**「構成」をクリックしないで**ください。トグルを有効にするだけです。

プッシュ証明書を作成

次の手順に従って、Apple Push Notification service(APNs)SSL証明書を生成します:
  1. Apple証明書ページにアクセスします。
  2. **プラス(+)**ボタンをクリックして新しい証明書を作成します。
  3. Servicesの下で、以下を選択します:
    • Apple Push Notification service SSL (Sandbox & Production)
    • 次にContinueをクリックします
  4. リストからApp IDを選択し、Continueをクリックします。
  1. 以前に生成した.certSigningRequestファイルをアップロードします。
  1. Continueをクリックし、次にDownloadをクリックして、生成された.cerファイルをコンピューターに保存します。
この.cerファイルを使用して、プッシュ通知サービスを設定します。

秘密鍵を作成して.p12証明書をエクスポート

  1. ダウンロードした.cerファイルをダブルクリックして、キーチェーンアクセスにインポートします。
  2. キーチェーンアクセスで、次の場所に移動します:
    • キーチェーン > ログイン
    • カテゴリ > マイ証明書
  3. Apple Push Servicesという名前の証明書を見つけます。
  4. 証明書を右クリックして、書き出すを選択します。

書き出すと、指定したファイルの場所に.p12ファイルが生成されます

  1. ファイルを保存する場所を選択し、ファイル形式として**.p12を選択します。プロンプトが表示されたら、.p12ファイルにパスワードを設定できます(このパスワードは、OneSignalなどのサービスにアップロードする際に必要です)**。

.p12をOneSignalにアップロード

  1. OneSignalダッシュボードで、アプリ > 設定 > プッシュ & アプリ内 > Apple iOSに移動します。
  2. .p12ファイルをアップロードします(パスワードを設定した場合は入力します)。保存をクリックします。
OneSignalで**.p12証明書を使用したAPNs認証**のセットアップが正常に完了しました。これで、iOSアプリでプッシュ通知を送受信できるようになりました!🎉

.p12のトラブルシューティング

無効な証明書形式エラー

原因

アップロードされたファイルが.p12形式ではありません。

修正方法

キーチェーンアクセスから証明書を**.p12として**エクスポートしてください(.cer.pemではありません)。

OneSignalにアップロード時の「パスワードが正しくありません」エラー

原因

パスワードが誤って入力されたか、設定されていません。

修正方法

  • 再度エクスポートして、新しいパスワードを設定してください。
  • 貼り付ける際に余分なスペースが追加されていないことを確認してください。
  • Provisionatorを使用している場合、パスワードはUIに表示されます。

エクスポートされたファイルに秘密鍵がない

原因

証明書がインポートされましたが、秘密鍵とペアになっていません。

修正方法

  • 同じマシンのキーチェーンアクセスからCSRを生成してください。
  • .cerファイルをダウンロードした後、ダブルクリックしてインストールし、マイ証明書の下にキーが表示されるか確認してください。

アップロード後にプッシュ通知が機能しない

原因

App IDが正しくないか、プロビジョニングプロファイルに機能がありません。

修正方法

  • .p12がアプリで使用されているApp IDと一致することを確認してください。
  • Apple Developer Portalで、App IDにプッシュ通知が有効になっていることを確認してください。
  • プロビジョニングプロファイルにプッシュが含まれていることを確認してください。

期限切れの証明書

原因

.p12証明書が無効になりました。

修正方法

  • Apple Developer > 証明書に移動して、有効期限を確認してください。
  • 古い証明書を取り消して、新しい証明書を作成してください。

FAQ

プロビジョニングプロファイルは必要ですか?作成方法は?

はい、Appleは開発、テスト(Ad Hoc)、App Storeへの配布用に異なるタイプのプロファイルを必要とします。 Xcodeで、自動的に署名を管理を選択すると、自動的に作成できます。
それ以外の場合は、詳細についてAppleのプロビジョニングプロファイルに関するドキュメントを参照してください。