以下の理由から、.p12 証明書をアップロードするのではなく、APNs Auth キーを作成してアップロードすることを推奨します。
i) プッシュ証明書を毎年再生成する必要がありません。
ii) 1 つの Auth キーをすべてのアプリで使用できるため、証明書を個別に管理する手間を省けます。
.p12 証明書を取得してアップロードする方法
すでに .p8 ファイルの設定が完了している場合は、この手順をスキップして直接手順 2に進んでください。
別の方法として、Apple の旧認証方式(.p12 SSL 証明書)を利用することもできます。これらの証明書は毎年自動的に有効期限が切れるため、再生成して再度アップロードする必要があります。
-
以下にログインします: Apple Developer アカウントにログインし、Program Resourcesタブに移動して、Certificates, Identifiers & Profilesを選択します。

-
[Certificates] タブを選択し、['+'] アイコンから新しい証明書を追加します。

-
[Apple Push Notification service SSL] をServicesの下から選択し、[Continue] をクリックします。
-
プロジェクトの App IDをドロップダウンから選択します。

-
Apple から証明書署名要求(CSR)ファイルのアップロードを求められます。Mac で キーチェーンアクセス (Keychain Access)を開き、証明書アシスタント (Certificate Assistant)に移動します。[認証局に証明書を要求 (Request a Certificate from a Certificate Authority)] を選択します。

このオプションを選択すると、証明書アシスタントが開きます。[Request is] で [Saved to Disk] を選択し、メールアドレス欄は空白のままにします。[Continue] をクリックします。
-
作成した CSR ファイルを、手順 5 で求められたとおり Apple Developer アカウントにアップロードします。
-
作成された証明書をダウンロードし、キーチェーンアクセス (Keychain Access) アプリケーションで開きます。
-
Keychain Access で、My Certificatesをクリックし、プッシュ証明書を探します。
-
該当する証明書を選択し、右クリックして.p12 ファイルとしてエクスポートし、一時的なパスワードを設定します。(このパスワードは、証明書を PageSense ダッシュボードにアップロードする際に必要になります)。
-
ダッシュボードで 管理設定 > 設定 に移動し、Apple Push Certificate セクションで証明書ファイルをアップロードします。パスフレーズには、先ほど設定した一時パスワードを入力します。
Info: ダッシュボードには、配布用プロビジョニングプロファイルのアプリに対して、開発用または本番用のいずれか一方のプッシュ証明書をアップロードできますが、有効にできるプッシュ証明書は同時に 1 つだけです。
アプリが App Store で公開された後に、本番環境でプッシュ通知をテストしたい場合は、開発環境用に別のアプリグループまたはアプリを用意することをおすすめします。
手順 2: Push 通知機能を有効にする

Xcode プロジェクト設定で、Targetを選択した状態で、Signing & Capabilities タブをクリックし、+ Capabilityボタンをクリックして追加します。フィルター項目に'push'と入力し、Push 通知を選択します。これにより、プロジェクトでPush 通知 Capabilityが有効になります。
手順 3: Push 通知の登録
1. まず、App デリゲートでUserNotifications をインポートします。Push 連携用のコードは App デリゲートファイルのメインスレッド上に記述する必要があります。PageSense SDK で push 通知を送信できるようにするには、iOS の連携する
までのすべての手順を、 クイックスタートガイドドキュメントに従って完了している必要があります。 アプリケーションで push 通知を設定するには、 UNUserNotificationCenterDelegate をAppDelegate に実装します。
2. デバイスを APNS に登録するには、次のコードをapplication:didFinishLaunchingWithOptions:
デリゲートメソッドに追加します(App デリゲート内)。
- func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication。LaunchOptionsKey: Any]?) -> Bool {
- // アプリ起動後にカスタマイズを行うための処理ポイント。
- PageSense。連携する()
- UNUserNotificationCenter。現在().委任 = self
- registerForPushNotifications()
- 返品する 真
- }
- func registerForPushNotifications() {
- UNUserNotificationCenter。現在().requestAuthorization(設定: [
- .badge, .sound, .注意
- ]) { granted, _ in
- guard granted else { 返品する }
- DispatchQueue。main。async {
- UIApplication。shared。registerForRemoteNotifications()
- }
- }
- }
- func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
- PageSense。setPushToken(deviceToken: deviceToken)
- }
これは iOS アプリケーションに push 通知を送信するための必須手順です。アプリが初めてこの認可を要求したとき、システムはユーザーに許可または拒否を求めるプロンプトを表示し、ユーザーの応答を保存します。
Push インプレッション
これで、ユーザーの iOS デバイスに配信された push 通知を計測できるようになりました。iOS で Push インプレッションを計測するには、通知サービス Extension を有効にする必要があります。
通知サービス Extension は、アプリバンドルに埋め込まれた独立したバイナリです。新しい push 通知を表示する前に、システムはアプリケーションで通知 Viewed メソッドを呼び出せるよう、この通知サービス Extension を呼び出します。通知サービスファイルのdidReceive 関数内に、次のコードを記述します。
- override func didReceive(_ request: UNNotificationRequest, withContentHandler contentHandler: @escaping (UNNotificationContent) -> 無効) {
- self。contentHandler = contentHandler
- bestAttemptContent = (request。content。mutableCopy() as? UNMutableNotificationContent)
- if let bestAttemptContent = bestAttemptContent {
- // ここで通知コンテンツを変更します...
- bestAttemptContent。件名 = '\(bestAttemptContent。件名) [更新済み]'
-
- contentHandler(bestAttemptContent)
-
- PageSense。trackPushNotificationReceived(notificationContent: request。content)
- }
- }