Android アプリを公開するには、apk ファイルの作成して Developer Console にアップロードします。まず公開用の apk 作成手順を確認しておきましょう。
API 29
apk の作成
アプリを公開するには、Signed APK というファイルを作ります。apkファイルとはWindowsで言うところのexeとかbinのようなもので実行ファイルになります。
signedとあるように署名が必要ですが、署名方法は
- 今までの開発側でマニュアルで固有のキーとキーストアーを作って自分で管理する方法
- アプリ署名キーの管理をGoogle Play App Signingを使って任せる方法があります。
アプリをリリースする上でこの他にも、リリースのサイズの最適化の
Android App Bundle
や、新しいアイコンの仕様に対応すること、ターゲットAPIの基準を満たすなどがあります。
Google Play Consoleがよく変わります。また近々変更があるということです。同じ画面にならないかもしれませんが、基本的な流れを押さえて読み解いてください
ターゲットAPIレベル
Androidアプリをリリースする上で重要なことがあります。
Play Console での対象 API レベルに関する要件
- 2021年8月2日: 新しいアプリで、ターゲット API レベル 30(Android 11)以降が必須になります。
- 2021年11月1日: 既存のアプリのアップデートで、ターゲット API レベル 30 以降が必須になります。
- 以降毎年、targetSdkVersion の要件が上がります。
Androidは古い端末もたくさん存在するので、minSdkVersionはこれとは関係なく低いAPIレベルが設定できます。ただ、より広い範囲でのAPIの切り分けが必要になるので大変です
鍵とキーストアを生成
release用のapkの作成ですが、Manualで署名する場合もGoogle Play による App Signing を使用する場合も途中まで同じです。
Android Studio のメニューから
「Build」「Generate Signed APK…」を選択
Generate Signed Bundle or APKにて
Android App Bundle または APK を選択し、「Next」
(ここではAPKで進めていきます)
Generated Signed APK のダイアログに以下入力していきます。
Key store path:
初めてであれば「Create new…」として .jks ファイルの置き場所を決めます。
Location は拡張子が「.jks 」のファルを作成することを想定してファイル名とパスを決めます。
以前に作成済であれば「Choose existing…」からファイルを指定
Key store password:
Password は自分で決めたパスワードを入力します。これはこの後のバージョンアップでもずっと使うので、ファイルとパスワードを忘れないように管理する必要があります。
「Next」
Alias | プロジェクト名など後で分かりやすいものを入力 |
Password | 前と同じでも違っていてもいいのですが、 後々間違えないようにするため同じにしておくのもアリです |
Validity(years) | 使用期限、25年以上にする必要あり |
First and Last Name | 開発者名などです |
Organization Unit | 部署、チーム名など |
City or Locality | 市などの住所情報を入力 |
State or Province | 州、省、県などの情報を入力 |
Country Code (XX) | 日本は JP です |
入力例:
問題なければ「OK」
リリース用としてアプリに署名
リリース用 APK に署名します。
Build Variants:
「debug」あるいは「release」を選びます。公開する場合は「release」です。
Signature Versions:
V1とV2がありますが、APK 署名スキーム v2 がAndroid 7.0から導入され、アプリのインストール時間を高速化したり、APK ファイルに無許可の変更が行われないようにするためスキームです。必須ではないとのことですがV2も選択して両方チェック入れておきましょう。
(V2だけだとGoogle Play COnsoleのアップロードでJarファイルがないというエラーになることあるかも)
「Finish」で完成です。
![[Android] アプリを Google Play に公開、apkファイルの作成 1x1.trans - [Android] アプリを Google Play に公開、apkファイルの作成](https://akira-watson.com/wp-content/themes/simplicity2/images/1x1.trans.gif)
この後、Generate Signed APK と表示され
![[Android] アプリを Google Play に公開、apkファイルの作成 1x1.trans - [Android] アプリを Google Play に公開、apkファイルの作成](https://akira-watson.com/wp-content/themes/simplicity2/images/1x1.trans.gif)
locateをクリックしてパスの内容を確認すると、「app-release.apk」ができています。
Google Play App Signing
Googleとしてはこちらを推奨しているようですし、メリットもあります。
以前の方法ではキーのパスワードがわからなくなったら終わりです。新しいアプリとしてリリースするしかなく、それまでのランキングはなくなり0からのスタートです。
これを使うとGoogleに問い合わせればなんとか復旧できるということです。
何年も前のプロジェクトで担当者が辞めて、キーの保管場所が分からないなどありがちです。
新規であればこの後Google Play Console でリリースの準備設定を行いますが、そこで 「Googleでアプリ署名鍵の管理、保護を行う」を有効にするとできます。
以下を参考にしてください
アプリの署名 | Android Studio – Android Developers
APK に自動で署名するようビルドプロセスを設定する
既存のアプリに適応する場合:
Google Play Consoleが頻繁に変更され画面もよく変わるようなのでポイントだけ
- PEPKツールをダウンロードして、秘密鍵をエクスポートして暗号化
- その後できたものを「アプリ署名の秘密鍵」からアップロード。
「リリース管理」「アプリの署名」から入ります。
PEPKツールをダウンロードしてkeystoreがあるレベルにおきます。
そこでTerminalを使ってコードを打ちますが、それはコマンドが指定されているのでそれをコピペします。
ここで引数を設定します。
例えばkeystoreがある場所が
/Users/hoge/Desktop/_Android/HogeHage.keystore
aliasが HogeHage
出力ファイル名が hogehage.pem
とすると
keystore=HogeHage.keystore
alias=HogeHage
output=”/Users/hoge/Desktop/_Android/hogehage.pem”
と設定してコマンドを実行します。その後passwordを入力すればpemファイルが生成されています。
1 2 3 4 |
hoge$ java -jar pepk.jar --keystore=HogeHage.keystore --alias=HogeHage --output="/Users/ajw/Desktop/_Android/hogehage.pem" --encryptionkey=df715022017b00c647eb10fe8f7c056a104a3bbe4ac3eb9d2a529ba8170b13049a11e6c09ffe35a955f4056a104a3bbe4ac10ba4fe93fa2092761fb833b656cd056a4a3bbe4ac48b9de6a Enter store password: Enter key password: hoge$ |
このpemファイルを「アプリ署名の秘密鍵」からアップロードすれば
「このアプリでは Google Play App Singing が有効です。」となります。
References:
アプリの署名
APK 署名スキーム v2
Android App Bundle でアプリや機能をオンデマンド配信する