[Kivy]コマンドラインでAABファイルの署名

プログラミング

Androidアプリをリリースするには、署名されたAAB(Android App Bundle)ファイルを作る必要があります。

やり方を調べると Android Studio を使った方法はよく見つかるのですが、私は開発に Android Studio を使っていないこともあり、うまくできませんでした。

ということで、Buildozer を使ってリリース用の署名付きAABファイルを作ったときのメモを残します。

前提

・作業環境は Ubuntu(Linux)

・ビルドのために必要な他の設定やAPKファイルの生成まではできる状態からのスタートです。

Keystore の生成

すでに生成済みの場合は作業不要です。アプリごとに生成する必要があるかはそれぞれ考え方があるかと思いますが、個人的には誰が作ったものが署名だと考えているので複数アプリに使いまわしでよいかと思います。少なくとも、同一アプリをバージョンアップして再リリースする際は前に作ったものが必要になるので、ファイルやパスワード管理はしっかりして毎度作り直すことにならないようにしたい。

事前準備

生成するときに必要な情報は下記。あらかじめ決めておきましょう。

  1. ファイルの生成場所とファイル名(例:~/keystores/release.keystore)
  2. 有効期間(日数指定。特にこだわりなければ10000日で)
  3. エイリアス名
  4. パスワード
  5. 姓名
  6. 組織単位名(個人の場合は”personal”でよさそう。会社の場合は部署名とか)
  7. 組織名(会社名やブランド名)
  8. 都市名または地域名(例:Setagaya-ku ※私は入れたけど、”-ku”とか”-shi”はいらないかも)
  9. 都道府県名または州名(例:Tokyo)
  10. 2文字の国コード(例:JP)

生成コマンド実行

準備ができたら下記コマンドを実行。(1)~(3)は事前準備で決めたものに読み替えてください。

keytool -genkey -v -keystore ~/keystores/release.keystore・・・(1) -keyalg RSA -keysize 2048 -validity 10000・・・(2) -alias hoge・・・(3)

実行すると(4)以降の内容が順に聞かれるので入力していくと(1)のパスでファイルが生成できます。

(参考)

Android App Bundleをコマンドラインで署名して生成する方法 - Qiita
はじめに初めてAndroidアプリのリリースビルドを行ったのですが、いくつかつまづいたところがあったので、体系的にまとめることにします。Android Studioで行うとかんたんだと公式ドキュ…

アプリのビルド

buildozer.spec の設定

下記2か所の設定を変更します。

~
android.release_artifact = aab
~
p4a.branch = develop

署名用環境変数設定

下記コマンドで環境変数を設定します。設定する値はKeystore の生成で使ったもので読み替えてください。

export P4A_RELEASE_KEYSTORE={Keystoreファイルのパス}(事前(1))
export P4A_RELEASE_KEYSTORE_PASSWD={Keystoreのパスワード}(事前(4))
export P4A_RELEASE_KEYALIAS_PASSWD={Keystoreのパスワード}(事前(4))
export P4A_RELEASE_KEYALIAS={Keystoreのエイリアス名}(事前(2))

ビルド実行

下記コマンドでビルド実行します。

buildozer -v android release

成功したら、binにAABファイルが生成されます。

(参考)

Creating an AAB for python apps using Buildozer
Creating an AAB for python apps using Buildozer. GitHub Gist: instantly share code, notes, and snippets.

署名確認

ビルド完了したら下記コマンドを使って署名ができているか確認します。

keytool -printcert -jarfile ./bin/(生成したファイル名).aab

Keystore の生成で入力した内容が表示されれば、署名付きAABファイルの作成完了です。リリースできるか試してみましょう。

「Not a signed jar file」とか出てきたら、うまくいっていないので、環境変数がちゃんと設定できているか等、手順を見直して再度試してみましょう。

以上です。

コメント

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