Skip to main content

Keys

Overview

Apple DeveloperのKeysについてまとめたセクション。
Appleの「Keys」は、主にApp Store ConnectやCI/CDパイプラインにおいて、アプリのビルドやアップロード、通知サービス利用時に必要な認証情報(APIキーなど)を生成・管理する場所。

tip

「Certificates, Identifiers & Profiles > Keys」ページ(authkeys/list)で、主にAPNsやSign In with Appleなどのサービス用のキーを生成するページ

特に重要なキーには以下がある。

  • Authentication Key (Auth Key)
    • App Store Connect APIへのアクセスや、TestFlightへのアップロード処理で使用する
    • 発行時に .p8 形式のファイルがダウンロードされ、その中に秘密鍵情報が含まれる。
  • Key ID
    • 発行されたキーに一意に割り当てられるID。CIで使用する際にはこのIDを指定します。
  • Issuer ID
    • チームまたはアカウントに紐づく識別子。Auth Keyの署名時に必要になります。
  • APNs Key
    • Apple Push Notification Serviceを利用するための鍵。通知送信サーバーでJWTを生成する際に使用されます。
caution

Auth Key (.p8 ファイル)はセキュリティ的に非常に重要なファイル。
一度しかダウンロードできないため、再発行が必要な場合は古いキーを削除してから新しく作成する必要がある。

CI/CDに組み込む場合は、以下の情報をGitHub Secretsや環境変数として安全に保存して使用する。

  • APPLE_AUTHENTICATION_KEY_ID
  • APPLE_AUTHENTICATION_KEY_ISSUE_ID
  • APPLE_AUTHENTICATION_KEY_P8

また、iTMSTransporterやfastlaneなどのツールで署名・アップロードする際にこれらの情報を活用します。

Apple Push Notification Authentication Key

APNs認証キーの新機能について

Apple Push Notification Authentication Key(APNs Auth Key)は、Appleの Push通知サービス(APNs: Apple Push Notification service) を利用する際に必要となる認証用の鍵。
アプリからユーザーのiOSデバイスやMacへプッシュ通知を送信する際、この鍵によってサーバーとAppleのAPNsサーバーとの通信が認証される。

仕組み

  • 従来は「証明書(APNs Certificates)」を使用して認証していましたが、証明書は有効期限(1年)があり更新が必要だった。
  • APNs Auth Key はより新しい方式で、一度発行すれば有効期限がなく、複数アプリに共通利用が可能。
  • サーバー側では、この鍵とApple Developerアカウントの Key IDTeam ID を用いて JWT(JSON Web Token) を生成し、APNsに送信して認証する。

特徴

  • 1つのキーで複数アプリに対応 → 同一のApple Developerアカウント内であれば共通利用可能。
  • 更新不要 → 証明書方式と異なり、毎年更新作業を行う必要がない。
  • 最大2つまで発行可能 → Apple Developerアカウントごとに2つまで保持可能。
tip

現在キーの作成数の上限が増えたこれまではAPNs認証キーはApple Developerアカウントにつき2つまでしか作成できないという制限があったが、この制限についても変更されており、作成可能なキー数の上限が増えている。
具体的な上限については こちら に記載されている。

利用手順(例)

  1. Apple Developerアカウントから APNs Auth Key を作成し、.p8 ファイルをダウンロード。
  2. サーバーに安全に保存(環境変数やセキュアストレージで管理)。
  3. 通知送信時にJWTを生成し、APNsにリクエストを送信。

まとめ

「APNs Auth Key」は iOSにプッシュ通知を送信するためのサーバー用秘密鍵
従来の証明書方式よりも管理が簡単で、現在はAuth Key方式が推奨されている。