📱

【Unity】Androidアプリ開発におけるKeystore備忘録

2024/11/23に公開

はじめに

久しぶりにAndroid向けアプリをリリースする際に調べ直したので備忘録をば。
AndroidアプリをGoogle Play Storeに公開する際、アプリの署名に必要不可欠なKeystoreの管理について、Unity開発者向けの記事です。
※Unity2022環境での記事なので、Unity6環境で開発した際に対応する事を新しく発見したら追記すると思います。

Keystoreの概要

KeystoreとKeyの関係

Keystoreは、デジタル証明書(Key)を安全に保管するためのコンテナファイルです。以下の要素で構成されています:

Keystore

  • Keystoreファイル:証明書を保管する暗号化されたコンテナ
  • Keystoreパスワード:Keystoreファイル自体を保護するパスワード

Key

  • エイリアス(Alias):Key(証明書)の識別名
  • Keyパスワード:個別のKeyを保護するパスワード
  • 諸情報

Keystoreの役割

  • アプリの正規開発者であることの証明
  • アプリの更新時の開発者認証
  • アプリの改ざん防止

UnityでのKeystoreとKeyの作成手順

1. Unity Editorでの作成手順

※個人開発者はこっちが楽だと思います。

  1. Unity Editorを開き、以下の手順で進みます:

    • File > Build Settings > Player Settings
    • Publishing Settings セクションを開く
    • Custom Keystore の設定を有効化
  2. 「Create New」ボタンをクリックし、以下の情報を入力:

    • Keystoreのパスワード(12文字以上推奨)
    • エイリアス名(任意の識別名)
    • エイリアスのパスワード
    • 証明書情報(氏名、組織名、都市、国など)

2. コマンドラインでの作成手順(参考)

keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000

個人開発者が1つのKeystoreで良い理由

メリット

  1. 管理の簡素化

    • 複数のKeystoreを管理するリスクの軽減
    • パスワードの管理が容易
    • バックアップの管理が単純
  2. アプリ間の一貫性

    • 同一開発者による複数アプリの信頼性確保
    • Google Play Console上での管理が容易
  3. コスト効率

    • 証明書の管理コストの削減
    • 運用の効率化

注意点

1. Keystoreの紛失対策

  • Keystoreを紛失すると、アプリの更新が不可能に
  • Google Play Consoleでアプリの削除と再公開が必要
  • ユーザーは新しいアプリを再インストールする必要あり
  • Googleに申請すれば再発行してくれるシステムがあるとかないとか

2. 開発時のTips

  • 開発中はUnityのデフォルトのKeystoreで
  • リリース時にカスタムKeystoreで

以上の事はGoogleやUnity側の仕様変更でいくらでも変わりかねないので、何かおかしいなと思った時はご自分で調査してください。

Discussion