Android実機でアプリをデバッグするためのdebug.keystore作成

作成した Android 用アプリをスマートフォンなどの実機でデバッグするためには、 debug.keystore というデバッグ用の証明書(署名)のファイルを作る必要があります。

画像引用:https://ja.wikipedia.org/wiki/Android_(オペレーティングシステム)

今回は、「Godot Engine 4」で作ったアプリを Android 用にエクスポートするために、公式ガイド「Exporting for Android」に書いてある keytool のコマンドを使って debug.keystore ファイルを作成する手順と、配置場所について紹介します。

※ Android Studio のバージョンは Hedgehog | 2023.1.1 Patch 2 です。

debug.keystore はデバッグ証明書

debug.keystore は Android OS で Debug 版のアプリを実行するために必要な証明書(署名)です。
debug.keystore はデバッグ用であり、GooglePlay などの多くのアプリストアではその証明書による一般公開は許可していません。

Sign your debug build

When running or debugging your project from the IDE, Android Studio automatically signs your app with a debug certificate generated by the Android SDK tools.

The first time you run or debug your project in Android Studio, the IDE automatically creates the debug keystore and certificate in $HOME/.android/debug.keystore, and sets the keystore and key passwords.

Because the debug certificate is created by the build tools and is insecure by design, most app stores (including the Google Play Store) do not accept apps signed with a debug certificate for publishing.

A signing configuration is an object consisting of all of the necessary information to sign your app, including the keystore location, keystore password, key name, and key password.

デバッグビルドに署名する IDE からプロジェクトを実行またはデバッグする場合、Android Studio は、Android SDK ツールによって生成されたデバッグ証明書を使用してアプリに自動的に署名します。

Android Studio でプロジェクトを初めて実行またはデバッグすると、IDE は $HOME/.android/debug.keystore にデバッグ キーストアと証明書を自動的に作成し、キーストアとキーのパスワードを設定します。

デバッグ証明書はビルド ツールによって作成され、設計上安全ではないため、ほとんどのアプリ ストア (Google Play ストアを含む) は、デバッグ証明書で署名されたアプリの公開を受け入れません。

署名構成は、キーストアの場所、キーストアのパスワード、キー名、キーのパスワードなど、アプリに署名するために必要なすべての情報で構成されるオブジェクトです。

Sign your app  |  Android Studio  |  Android Developers

debug.keystore の有無の確認

すでに Android 用アプリを実機でデバッグしたことがある PC の場合は

C:\Users\<user>\.android\
※ユーザーフォルダのドライブを変更している場合は別のドライブの同様のフォルダパスにあります。

にインストールされている可能性があります。

Android needs a debug keystore file to install to devices and distribute non-release APKs. If you have used the SDK before and have built projects, ant or eclipse probably generated one for you (in the ~/.android directory on Linux and macOS, in the C:\Users\<user>\.android\ directory on Windows).

Android には、デバイスにインストールし、リリースされていない APK を配布するためにデバッグ キーストア ファイルが必要です。以前に SDK を使用したことがあり、プロジェクトをビルドしたことがある場合は、ant または eclipse によっておそらく SDK が生成されます

Exporting for Android — Godot Engine (stable) documentation in English と Google 翻訳

debug.keystore の作成

debug.keystore がない場合は、JDK の keytool で作成します。
keytool が含まれている Open JDK 17 のインストールについては、以下の記事を参照してください。
※他の JDK のバージョンでも keytool は使用できますが、今回は Open JDK 17 の keytool を用います。

keytool とは

keytool コマンドはキーと証明書を管理するユーティリティで、デフォルトではファイル形式で実装され、非公開鍵(秘密鍵)をパスワードで保護します。

keytoolコマンドは、キーと証明書を管理するためのユーティリティです。 

keytoolコマンド

keytool は、鍵と証明書を「キーストア」に格納します。デフォルトのキーストアの実装は、キーストアをファイルとして実装しています。キーストアは、非公開鍵をパスワードで保護します。

keytool – 鍵と証明書の管理ツール

Android で用いる際は、セキュリティ上の理由でアプリケーションに署名するために用います。

キーストアは、秘密鍵と公開鍵証明書を含むバイナリファイルです。Android は、セキュリティ上の理由から、キーストア内の鍵を使用してアプリケーションに署名します。

Android キーストア – Unity マニュアル

keytool ユーティリティのコマンド・オプション

Godot Engine 4」で作成したアプリを Android 用にエクスポートするための公式ガイド「Exporting for Android — Godot Engine (stable) documentation in English」によると以下のコマンドを実行すると debug.keystore が作成できます。

keytool -keyalg RSA -genkeypair -alias androiddebugkey -keypass android -keystore debug.keystore -storepass android -dname “CN=Android Debug,O=Android,C=US” -validity 9999 -deststoretype pkcs12

Exporting for Android — Godot Engine (stable) documentation in English

この引用で使われているオプションについて調べて、どのように動作するか確認してから keytool コマンドを実行します。
※以下の各コマンド・オプションの説明では「keytoolコマンド」を参照しています。

-keyalg RSA

次に紹介する -genkeypair コマンドのオプションです。
キー・ペアの生成に使用するアルゴリズムを指定します。

今回は RSA のアルゴリズムを用いてキー・ペアを生成します。

RSA暗号(RSAあんごう)とは、桁数が大きい合成数素因数分解が現実的な時間内で困難であると信じられていることを安全性の根拠とした公開鍵暗号の一つである。

RSA暗号 – Wikipedia

-genkeypair

キー・ペアを生成する keytool ユーティリティのコマンドです。
他は、このコマンドに指定するオプションです。

キー・ペアは、公開鍵暗号方式の公開鍵と秘密鍵のセットです。

鍵ペア(key pair)とは、公開鍵暗号方式で用いる2つの鍵のセット。一方は誰に知られても良い「公開鍵」、もう一方は自分の手元で誰にも知られないよう秘匿する「秘密鍵」で、対になるこの2つを合わせて暗号化電子署名を行う。

鍵ペア(キーペア)とは – 意味をわかりやすく – IT用語辞典 e-Words

-alias androiddebugkey

処理するエントリの別名です。
エントリは生成したキー・ペアの格納先に用いられます。

今回は androiddebugkey キーストア・エントリに生成したキー・ペアが格納されます。
キーストアについては後述の -keystore オプションで指定します。

-keypass android

生成されたキー・ペアの一方である秘密鍵を保護するパスワードを 6 文字以上で設定します。

今回はデバッグ用だからか、固定のパスワード android が公式ガイドで用いられているので、それを採用します。

-keystore debug.keystore

今回生成するエントリを格納するキーストアの名前を指定します。

今回は debug.keystore という名前のキーストアの前述の androiddebugkey エントリに生成したキー・ペアを格納します。

-storepass android

キーストアのパスワードを指定します。

今回はデバッグ用だからか、公式ガイドに書かれた固定のパスワード android を設定します。
前述の debug.keystore キーストアに対応するパスワードです。

-dname “CN=Android Debug,O=Android,C=US”

前述の -alias オプションで指定した androiddebugkey エントリに関連付ける「X.500識別名」を指定します。項目ごとにカンマ区切りで指定します。

詳細はよくわかりませんが、今回は「共通名」に Android Debug「組織名」に Android「国」に US と設定します。
#国については US で良いのか疑問でしたが、他サイト様「Android: Debug Keystore と Release Keystore をコマンドから生成する #Android – Qiita」でも US を指定していたので、デバッグ用だから US で良いのかなと思いました。

  • C 国
  • CN 共通名
  • O 組織名
X.500 識別名 – IBM Documentation

-validity 9999

有効日数を指定します。

今回は 9,999 日を有効日数に指定します。

-deststoretype pkcs12

今回行う -genkeypair コマンドには含まれないオプションです。無視されるオプションかもしれません。
※ Open JDK 17 の仕様では使われているのかもしれません。

-deststoretype は -importkeystore コマンドのオプションで、宛先キーストアのタイプを指定します。

keytool コマンドの実行結果

コマンドプロンプトを起動します。
Windows 10 の場合は cmd と左下の検索ボックスに入力すると検索結果から起動できます。

または、スタートメニューの System Tools フォルダ内のコマンドプロンプトを起動します。

コマンドプロンプトを起動したら先ほどのコマンドを入力して Enter キーを押します。
#コピー (Ctrl +C) を貼り付け (Ctrl + V) した後 Enter キーを押すと簡単です。

keytool -keyalg RSA -genkeypair -alias androiddebugkey -keypass android -keystore debug.keystore -storepass android -dname “CN=Android Debug,O=Android,C=US” -validity 9999 -deststoretype pkcs12

Exporting for Android — Godot Engine (stable) documentation in English

コマンドを実行すると、生成された内容についてのメッセージが表示されます。

keytool コマンドプロンプトで keytool ユーティリティの genkeypair コマンドを実行すると debug.keystore が作成されました.

これでコマンドプロンプトでコマンドを実行した C:\Users\XXX のフォルダの直下debug.keystore ファイルが作成されました。

keytool コマンドプロンプトで keytool ユーティリティの genkeypair コマンドを実行すると実行したフォルダに debug.keystore が作成されました.

作成された debug.keystore ファイルは公式ガイドに従って、C:\Users\<username>\.android フォルダに移動しました。

This will create a debug.keystore file in your current directory. You should move it to a memorable location such as %USERPROFILE%.android\, because you will need its location in a later step. For more information on keytool usage, see this Q&A article.

これにより、現在のディレクトリに debug.keystore ファイルが作成されます。 後の手順でその場所が必要になるため、%USERPROFILE%.android\ などの覚えやすい場所に移動する必要があります。 keytool の使用方法の詳細については、この Q&A 記事を参照してください。

Exporting for Android — Godot Engine (stable) documentation in English
keytool で作成した debug.keystore を .android フォルダに移動しました.以前にAndroidStudioを使用した際に.androidフォルダは作られたようですが、最近の作業で一部更新されたようです.

.android フォルダについて

.android フォルダは Android Studio の SDK Manager で SDK Platform やツールをインストールした際に作られるようです。
参照:アトリエ・エクレア:BLOG Android SDK のインストール手順

筆者は以前に Android Studio を使用していたときに .android フォルダが作成され、今回 SDK Platform やツールをインストールしたことで .android フォルダ内の一部のフォルダの日付が更新されました。

Android Studio で古いバージョンの SDK Platform やツールをインストールする手順については、前回の2つの記事を参照してください。

まとめ

今回は、「Godot Engine 4」で作ったアプリを Android 用にエクスポートするために、公式ガイド「Exporting for Android」のコマンドを使って debug.keystore ファイルを作成する手順と、配置場所について紹介しました。
keytool のコマンドやオプションについても実行する内容に沿って紹介しました。

.android フォルダは Android Studio の SDK Manager で SDK Platform やツールをインストールした際に更新されることもわかりました。

参照サイト Thank You!

記事一覧 → Compota-Soft-Press

コメント

Ads Blocker Image Powered by Code Help Pro

お願い - Ads Blocker Detected

このサイトは広告を掲載して運営しています。

ポップアップを閉じて閲覧できますが、よろしければ

このサイト内の広告を非表示にする拡張機能をオフにしていただけませんか?

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.

タイトルとURLをコピーしました