Keys
Overview
Apple DeveloperのKeysについてまとめたセクション。
Appleの「Keys」は、主にApp Store ConnectやCI/CDパイプラインにおいて、アプリのビルドやアップロード、通知サービス利用時に必要な認証情報(APIキーなど)を生成・管理する場所。
「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を生成する際に使用されます。
Auth Key (.p8 ファイル)はセキュリティ的に非常に重要なファイル。
一度しかダウンロードできないため、再発行が必要な場合は古いキーを削除してから新しく作成する必要がある。
CI/CDに組み込む場合は、以下の情報をGitHub Secretsや環境変数として安全に保存して使用する。
APPLE_AUTHENTICATION_KEY_IDAPPLE_AUTHENTICATION_KEY_ISSUE_IDAPPLE_AUTHENTICATION_KEY_P8
また、iTMSTransporterやfastlaneなどのツールで署名・アップロードする際にこれらの情報を活用します。
Apple Push Notification Authentication Key
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 ID、Team ID を用いて JWT(JSON Web Token) を生成し、APNsに送信して認証する。
特徴
- 1つのキーで複数アプリに対応 → 同一のApple Developerアカウント内であれば共通利用可能。
- 更新不要 → 証明書方式と異なり、毎年更新作業を行う必要がない。
- 最大2つまで発行可能 → Apple Developerアカウントごとに2つまで保持可能。
現在キーの作成数の上限が増えたこれまではAPNs認証キーはApple Developerアカウントにつき2つまでしか作成できないという制限があったが、この制限についても変更されており、作成可能なキー数の上限が増えている。
具体的な上限については こちら に記載されている。
利用手順(例)
- Apple Developerアカウントから APNs Auth Key を作成し、
.p8ファイルをダウンロード。 - サーバーに安全に保存(環境変数やセキュアストレージで管理)。
- 通知送信時にJWTを生成し、APNsにリクエストを送信。
まとめ
「APNs Auth Key」は iOSにプッシュ通知を送信するためのサーバー用秘密鍵。
従来の証明書方式よりも管理が簡単で、現在はAuth Key方式が推奨されている。