アプリ署名鍵を管理する

Google Play アプリ署名は、新規または既存のアプリのアプリ署名鍵を安全に管理できるプログラムです。鍵は、Google が自社の鍵の保管に使用しているものと同じセキュリティ保護されたインフラストラクチャに保管されます。

Google Play アプリ署名の仕組み

Android App Bundle を使用するアプリの場合

App Bundle を使用するアプリには Google Play アプリ署名が必要です。アプリ署名を有効にした後の流れは次のとおりです。

  1. App Bundle に署名し、Play Console にアップロードします。
  2. Google が署名を確認、削除してバンドルを処理し、ベース APK、APK の設定、動的な機能 APK(該当する場合)を作成します。詳しくは、Android デベロッパー サイトをご覧ください。
  3. Google がデベロッパーの元のアプリ署名鍵でアプリに再署名し、アプリをユーザーに配信します。

Google では、アプリ署名鍵を使って署名された既存の APK や新しい APK には再署名しません。このため、オープンテスト版トラック、クローズド テスト版トラック、内部テスト版トラックで App Bundle のテストを実施しながら、Google Play で変更を加えずに製品版で既存の APK をリリースすることができます。

アップロード鍵で APK をアップロードして署名すると、Google が導入鍵で APK に再度署名します。

APK を使用するアプリの場合

Google Play アプリ署名を使用しなくても APK をアップロードできます。デベロッパーが希望すれば継続的に鍵を管理できます。

Google Play アプリ署名を使用すれば、キーストアを紛失した場合や、キーストアが不正使用されている可能性があると思われる場合に、アップロード鍵のリセットをリクエストできます。Google Play アプリ署名に登録しておらず、キーストアを紛失した場合は、新しいアプリを新しいパッケージ名で公開する必要があります。

権限とアクセス

Play Console アカウントの所有者または「製品版のリリース」のグローバル権限を持つユーザーであれば、Google Play アプリ署名を有効にできます。デベロッパー アカウントごとに利用規約に同意する必要があります。利用規約に同意すると、個々のアプリをプログラムに登録できるようになります。

: 利用規約に同意しても、デベロッパー アカウントに関連付けられているすべてのアプリが自動的にアプリ署名に登録されるわけではありません。

鍵の種類と重要な用語の定義

  • アプリ署名鍵: ユーザーの端末に保存される APK の署名に使用される鍵。現時点ではデベロッパーが自身で保持し、これを使用して APK に署名しています。アプリ署名プログラムの利用申し込み手続きが完了すると、以後はこの鍵を Google にアップロードすることになります。

  • アップロード鍵(既存のアプリでは任意): アプリ署名プログラムへの登録時に生成する新しい鍵。登録後はすべての APK について、Play Console にアップロードする前にアップロード鍵で署名することになります。
  • 秘密鍵: ここでは APK の署名に使用する鍵を指します。秘密鍵は誰にも知られないようにする必要があります。
  • 公開鍵: ここでは APK の署名の検証に使用する鍵を指します。公開鍵は誰でも見ることができます。
  • 証明書: 証明書には、公開鍵と、鍵の所有者に関する追加の識別情報が含まれています。
  • PEPK ツール: PEPK(Play Encrypt Private Key)は、秘密鍵を Java Keystore から書き出し、Google Play への送信前に暗号化するツールです。

おすすめの方法

  • デベロッパー アカウントを保護するには、Play Console にアクセスできるすべてのアカウントで 2 段階認証プロセスを有効にすることをおすすめします。
  • アップロード鍵で署名された APK をテストする場合は、認証にアプリの署名を使用しているサービスまたは API(Google Maps API や Facebook SDK など)にアップロード鍵を登録する必要があります。Google API を使用している場合は、Google Cloud Console にアプリのアップロード証明書を登録することをおすすめします。

概要

開始する前に Android デベロッパー ブログでアプリ署名の概要に関する動画をご覧ください。

新しいアプリ

ステップ 1: アップロード鍵を作成する
  1. アプリの署名のページに記載された手順に沿って、新しいアプリのアップロード鍵を作成します。
  2. 作成したアップロード鍵で新しい APK に署名します。

アップロード鍵について

  • アップロード鍵は Google にのみ登録され、アプリ作成者の認証に使用されます。
  • アップロードされた APK がユーザーに送信される前に署名が削除されます。

アップロード鍵に関する制限

  • 2,048 ビット以上の RSA 鍵であること。
  • DSA 鍵、EC 鍵、2,048 ビット未満の RSA 鍵は不可。
ステップ 2: リリースを準備する
  1. Play Console にアクセスします。
  2. アプリを選択します。
  3. 左側のメニューで [リリース管理] > [アプリのリリース] を選択します。
  4. [Google Play アプリ署名] の横にある [同意する] を選択します。
ステップ 3: 署名したアプリをアップロードする
  1. 手順に沿ってリリースを準備して公開します。
  2. アプリがユーザーに配信される前に、アップロードされた鍵の署名が削除され、新しい鍵で再署名されます。
ステップ 4: API プロバイダにアプリ署名鍵を登録する

アプリで API を使用している場合は、通常、認証の目的で Google がアプリの署名に使用する鍵の証明書を登録する必要があります。一般に、これは証明書のフィンガープリントによって行われます。

APK の配信前の再署名に使用された鍵の証明書を確認する手順:

  1. Play Console にログインします。
  2. アプリを選択します。
  3. 左側のメニューで [リリース管理] > [アプリの署名] をクリックします。
  4. このページでは、アプリ署名証明書の一般的なフィンガープリント(MD5、SHA-1、SHA-256)をコピーできます。API プロバイダで別のタイプのフィンガープリントが必要な場合は、元の証明書を DER 形式でダウンロードし、API プロバイダが要求する変換ツールを使用して実行することもできます。

既存のアプリ

ステップ 1: プログラムに登録する

アプリを登録する手順は、次のとおりです。

  1. Play Console にログインします。
  2. アプリを選択します。
  3. 左側のメニューで [リリース管理] > [アプリの署名] をクリックします。
  4. 利用規約を確認し、[同意する] を選択します。
ステップ 2: 元の鍵を Google に送信してアップロード鍵を作成する

元の鍵を Google Play にアップロードしてアップロード鍵を作成する手順:

  1. 元のアプリ署名鍵の場所を確認しておきます。
  2. Play Console にログインします。
  3. アプリを選択します。
  4. 左側のメニューで [リリース管理] > [アプリの署名] をクリックします。
  5. 画面に表示される手順に沿って、元のアプリ署名鍵を転送します。
    • 任意: アップロード鍵を生成して Google に登録することもできます。
  6. 次に表示される画面に、アプリの証明書のフィンガープリントが表示されます。

アップロード鍵について

  • アップロード鍵は Google にのみ登録され、アプリ作成者の認証に使用されます。
  • アップロードされた APK がユーザーに送信される前にアップロード鍵が削除されます。

アップロード鍵に関する制限

  • 2,048 ビット以上の RSA 鍵であること。
  • DSA 鍵、EC 鍵、2,048 ビット未満の RSA 鍵は不可。

アップロード鍵を作成した場合の手順(省略可)

ステップ 3: キーストアを更新する

アップロード鍵を作成したら、キーストアを更新します。たとえば、次の場所を確認するといいでしょう。

  • ローカルマシン
  • ロックされたオンサイト サーバー(各種 ACL)
  • クラウドマシン(各種 ACL)
  • 専用の秘密管理サービス
  • (Git)リポジトリ
ステップ 4: 次のアプリの更新にアップロード鍵で署名する

既存のアプリの更新は以後すべてアップロード鍵で署名する必要があります。この署名を元にデベロッパーの認証が行われます。ユーザーに更新を配信する前に Google が APK に再署名します。

アプリのアップロード鍵を確認する手順:

  1. Play Console にログインします。
  2. アプリを選択します。
  3. 左側のメニューで [リリース管理] > [アプリの署名] をクリックします。

新しいアップロード鍵を作成する

アプリ署名に登録していると、以下の場合に新しいアップロード鍵を作成できます。

  • 秘密鍵を紛失した
  • 秘密鍵が不正使用されている
  • 既存のアプリ用にアップロード鍵を作成していなかった

: アップロード鍵をリセットしても、ユーザーに配信する前に APK に再署名する際に Google Play が使用するアプリ署名鍵には影響しません。

ステップ 1: 新しい秘密鍵とアップロード証明書を生成する

新しいアップロード鍵を生成して登録するには、Android Studio ヘルプセンター記事の手順をご覧ください。新しい鍵は、以前の鍵とは異なるものである必要があります。

次に、新しい鍵の証明書を PEM 形式でエクスポートします。

keytool -export -rfc -alias <upload> -file <upload_certificate.pem> -keystore <keystore.jks>

ステップ 2: サポートチームに連絡する

サポートチームが鍵のリセットのリクエストを受け付けるのは、Play Console アカウントの所有者からのみです。

アカウント所有者はこちらのフォームに必要事項を入力してご連絡ください。その際は、必ず upload_certificate.pem ファイルを添付してください。

Google で新しいアップロード鍵を登録した後、メールが送信されます。その時点で、上記の手順に沿ってキーストアAPI プロバイダの登録を更新できます。

この記事は役に立ちましたか?
改善できる点がありましたらお聞かせください。