初めてのAndroidアプリで躓いたところ【2:リリース編】（プログラミング初学者）

前回の続きです。
[初めてのAndroidアプリで躓いたところ【1:アプリ編】（プログラミング初学者）](https://qiita.com/tanegashimav48273/items/b6fa293ffcd111166e64)

今回はaabファイルの作成やアップロードするまで道のりで詰まったことを紹介します。
※Google Playにアプリをリリースするのに「デベロッパーアカウント」を作るのですが、
こちらは何も難しくないので今回は触れません。

## aabファイルの作成
apkファイルとaabファイルの2種類ありますが、aabファイルの方を選びましょう。(Googleも推奨しているので)
aabファイルの方は「アプリサイズの縮小」や「ビルド時間の短縮」などのメリットがあります。
詳しくはこちらをご参照ください → [Android App Bundle - Android Developers](https://developer.android.com/platform/technology/app-bundle/)

### パッケージ名の変更
まず、パッケージ名から先に変更する必要があります。
デフォルトの`com.example.***`のパッケージ名では、
アップロードするときに「そのパッケージ名は禁止されている」と怒られるからです。
パッケージ名の一括変換は↓の記事を参考にしました。
「[Android アプリのパッケージ名を変更するには](https://www.xlsoft.com/jp/blog/blog/2019/01/08/post-5571/)」

### aabファイルの作り方
Android Studio(3.5)で作成していきます。

まず「ビルド」→「署名済みバンドル/APKの生成…」に進みます。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/330156/c95968b1-d891-42a5-41f2-264ce28714ef.png" width=60%>

ダイアログが表示されるので、
上の「Android App Bundle」にチェックを入れて「次へ」をクリックします。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/330156/9de45572-6bd3-77df-363d-624219b961e6.png" width=80%>

ここでは署名キーを作成します。
署名キーは他の新しいアプリを公開するときにも使用するので、大切に保管しましょう。
（2回目以降は「既存選択」で署名キーのファイルパスを入力します）
「新規作成」をクリックし、
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/330156/7819a4ef-2e68-3320-566c-aac1c688ae6f.png" width=90%>

新規キー・ストアの項目を埋めていきます。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/330156/5af22304-be97-a941-706b-674dcebf50e7.png" width=60%>
> キー保管パス: .jksファイルの置き場所
> パスワード: バージョンアップなどでずっと使う大事なパスワード
> エイリアス: 署名キーの名前
> パスワード： 上のパスワードと同じが無難
> 有効期間（年）: 25年以上が推奨
> 国コード: JP （日本）
※「証明書」の項目は全部は埋めなくても大丈夫です。

必要な項目を埋められたら「OK」をクリックします。

前のダイアログに戻ったら、「キー保管パスワード」「キー・エイリアス」「鍵パスワード」を入力し、
「公開済みアプリを登録するための暗号化されたキーをエクスポートする」にチェックを入れ、
ファイルパスを指定します。（キー保管パスと同じが無難かと）
そして「次へ」をクリックします。

最後にaabファイルの宛先フォルダーを指定して、
ビルド・バリアントの「release」を指定して「完了」をクリックします。
（アプリを公開する場合は「release」です）
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/330156/f096476a-6635-2ed8-1352-b749082b06ea.png" width=85%>

これでaabファイルと鍵・キーストアの作成が完了です。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/330156/44d93299-056b-c5bd-4896-38c9d043a708.png" width=60%>
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/330156/8b64fea0-732a-1f51-6d28-caf87df971f3.png" width=60%>


## Google Play Consoleでリリースの準備
### 画像の準備
ストアの掲載情報に最低必要な画像は以下のとおりです。
> アイコン画像:512 × 512 png
> スクリーンショット:１辺の長さ最小320px、最大3840px jpgかpng 2枚〜8枚
> フィーチャーグラフィック 横1024 × 縦500 jpg か png

フィーチャーグラフィックとは、GooglePlayのトップに表示される画像です。
Facebookもリンクを貼るとフィーチャーグラフィックが表示されます。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/330156/c91051a3-b4ad-01f7-e06b-be30485c55b9.jpeg" width=60%>
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/330156/a36783ec-71c3-7ce3-b5e6-04f7f6474ff5.png" width=50%>

### アプリのリリース
次にアプリのリリースを作成します。
まず、Google Play Consoleで「アプリを作成」から掲載情報を入力していきます。サイドバーの「アプリのリリース」で「製品版トラック」の「管理」をクリックします。
「リリースを作成」で次に進みます。

「Googleでアプリ証明鍵の管理、保護を行う（推奨）」の部分は「次へ」をクリックします。

「追加する Android App Bundle と APK」で、
作成したaabファイルをアップロードします。
リリース名とリリースの新機能の説明を記入したら、
「保存」をクリックし、保存ができたら「確認」をクリックします。

これで「公開の準備が整いました」と表示されますが、
まだ「製品版として公開を開始」は押せません。
まだ左のバーで色が付いてないチェックマークの項目を完了させる必要があります。
![Screenshot 2019-10-12_17-05-18-609.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/330156/abea4693-3cad-2a92-e940-8f19cf1586bb.png)

それ以降の項目は特に詰まるところは無いかと思います。

左のバーのチェックマークがすべて緑色になったら、
リリースの画面に戻り、「製品版として公開を開始」をクリックすれば完了です！

あとは致命的なバグさえ無ければ2日以内にはGoogle Playに公開されると思います。
（場合によっては数日かかることもあるらしいです）

## アップデートの方法
何かバグを修正したり、機能追加をしたときは、
アプリのバージョンコードを変える必要があります。

### バージョンコードの変更
バージョンコードを変えるには、build.gradleファイルの以下の数値を変更します。

```build.gradle(app)
versionCode 2
versionName "1.1"
```
その上で、aabファイルを作成します。

### aabファイルの作成
aabファイルの作成では「キー保管パス」で「既存選択」を選び、
作成した署名キーのファイルパスを入力します。
他の手順は上記のやり方と同じです。
（「公開済みアプリを登録するための暗号化されたキーをエクスポートする」のチェックははずして構いません）

### aabファイルのアップロード
Google Play Consoleの「アプリのリリース」で「製品版トラック」の「管理」をクリックし、
「リリースを作成」をクリックします。
あとは上記のリリースの手順と同じです。

アップデートはこれで完了です。

## おわりに
最近アプリの審査が厳しくなったのか、審査が通るのに数時間から数日かかるようです。
何か致命的なバグが残っていると数日かかったり、リジェクトされる可能性が高くなります。
自分も2回目のアップデートでバグを完全に修正したら24時間以内で通りました。
Androidアプリ開発が初めての方に参考になれば幸いです。