PCロール

PCロール

【Google Play】Androidアプリをリリースする

【Google Play】Androidアプリをリリースする

この記事は、Gajeroll Advent Calendar 2022 の 24 日目の記事です。

今回は、Androidアプリを Google Play に提出する手順を紹介します。

証明書

*alias_name の部分は各自で決めてください。

keytool -genkey -v -keystore release.jks -alias *alias_name -keyalg RSA -keysize 2048 -validity 10000

質問に合わせて入力していきます。

  • パスワードは文字が表示されないだけで、内部では入力が受け付けられています。
    後で必要になるので、正確に入力し、忘れないようにメモしておきましょう。
  • 組織単位名はCOなど。
    不要ならそのままエンターで構いません。
  • パスワードと国コードは必須のようです。

キーストアのパスワードを入力してください:
新規パスワードを再入力してください:
Enter the distinguished name. Provide a single dot (.) to leave a sub-component empty or press ENTER to use the default value in braces.
姓名は何ですか。
  [Unknown]:  Devroll
組織単位名は何ですか。
  [Unknown]:
組織名は何ですか。
  [Unknown]:
都市名または地域名は何ですか。
  [Unknown]:  Tokyo
都道府県名または州名は何ですか。
  [Unknown]:  Tokyo
この単位に該当する2文字の国コードは何ですか。
  [Unknown]:  JP
CN=Devroll, OU=Unknown, O=Unknown, L=Fukuoka, ST=Fukuoka, C=JPでよろしいですか。
  [いいえ]:  y

10,000日間有効な2,048ビットのRSAのキー・ペアと自己署名型証明書(SHA384withRSA)を生成しています
    ディレクトリ名: CN=Devroll, OU=Unknown, O=Unknown, L=Fukuoka, ST=Fukuoka, C=JP
[release.jksを格納中]

コマンドを打ち込んだディレクトリで生成された release.jksandroid/app 配下に置きます。

署名

android 直下に、以下の keystore.properties を作成します。

  • *alias_name は最初に決めた *alias_name に置き換えましょう。

  • *password は、先程のパスワードに置き換えてください。

storePassword=*password
keyPassword=*password
keyAlias=*alias_name
storeFile=release.jks

gradle

app/build.gradle を以下のように編集します。

// apply ...

// 追加
def keystorePropertiesFile = rootProject.file("keystore.properties") 
// android{
   // ...

    // defaultConfig {
        // ...
    // }

    // 追加
    signingConfigs {
        release {
            if (keystorePropertiesFile.exists()) {
                def keystoreProperties = new Properties()
                keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
                keyAlias keystoreProperties['keyAlias']
                keyPassword keystoreProperties['keyPassword']
                storeFile file(keystoreProperties['storeFile'])
                storePassword keystoreProperties['storePassword']
            }
        }
    }

    // buildTypes {
        // ...
    // signingConfigs {
        // ...
    // }

    // buildTypes {
        // debug {
            // ...
        // }
        // release {
            // resValue "string", "app_name", "アプリ名"

            // 追加
            signingConfig signingConfigs.release
        // }
    // }
 // ...
// }

.gitignore

GitHubにあげないファイルを管理対象から外します。

.gitignore ファイルに追記することで設定できます。

# ...

# 追加
*.jks
keystore.properties

アプリ名

android/app/src/main/AndroidManifest.xml ファイルを編集します。

ダブルクォーテーション内の *アプリ名 の部分を書き換えてください。

    <!-- <application -->
        <!-- 変更 -->
        android:label="*アプリ名"

アプリケーションID

com.example.myapp をアプリ固有のIDに変更します。

{ドメインの逆表記}.{アプリ名} のように記述しますが、com.example.{アプリ名} は使えないようです。

アプリ モジュールを設定する  |  Android デベロッパー  |  Android Developers

以下のIDやディレクトリ名を変更します。

  • android/app/main/AndroidManifest.xmlpackage
  • android/app/debug/AndroidManifest.xmlpackage
  • android/app/profile/AndroidManifest.xmlpackage
  • android/app/build.gradledefaultConfigapplicationId
  • android/app/src/main/kotlin 以降の com/example/myapp のディレクトリ名
  • android/app/src/main/kotlin/{...}/MainActivitly.kotlinpackage

バージョン管理

pubspec.yamlversion: **x.y.z+n** を変更します。

最初は version: 1.0.0+1 のままで構いません。

**x.y.z+n** の部分の命名は以下のようになります。

  • n: 通し番号で、リリースするたびに数字を増やす。

  • x.y.z: 基本的にzから優先的に数字を増やしていくイメージ。

    • バグ修正など軽微な変更はz(パッチバージョン)を増やす。
    • 機能の追加など互換性を維持した変更はy(マイナーバージョン)を増やす。
      zは0にリセットする。
    • 機能の削除や大幅な改変など、互換性のない変更はx(メジャーバージョン)を増やす。
      y.zは0.0にリセットする。

詳細は「セマンティック・バージョニング」で調べてみてください。

ビルド

ビルドコマンドを実行します。

Flutterの場合は以下のようになります。

flutter build appbundle --release

build/app/outputs/bundle/release 内に .aab ファイルが出力されます。

Google Play Console

Google Play Consoleを開きます。

Google Play Console | Google Play Console

初回はサインアップ、登録もしましょう。

ただし**$25**の支払いが必要になります。

Google Play Console

「すべてのアプリ」から「アプリを作成」します。

「有料」にしておくことで、あとからでも有料・無料の変更ができます。

規約に同意して「アプリを作成」します。

「製品版」から「リリースを編集」します。

先程の .aab ファイルをアップロードします。

アップロードが完了したら、先程の pubspec.yaml に合わせてリリース名が反映されます。

アップデート内容がわかるようにリリースノートを編集しましょう。

<ja-JP>
QR I/Oをリリース
</ja-JP>

ダッシュボード

各アプリリリースの初回のみ、Google Play Console の「ダッシュボード」から、アプリ情報を登録します。

アプリ名(必須)

アプリ名として Google Play に表示されます。

30字以内で設定しましょう。

簡単な説明(必須)

アプリについての短い説明です。

80字以内で表現しましょう。

詳しい説明(必須)

4000字以内で説明しましょう。

アプリのアイコン(必須)

Google Play のストア上で表示されるアイコン画像です。

  • 透過 PNG または JPEG
  • 1 MB 以下
  • 512 x 512 ピクセル

Google Play icon design specifications  |  Android Developers

Metadata - Play Console Help

フィーチャー グラフィック(必須)

検索結果や詳細ページで最初に表示される画像です。

専有面積が大きくなるように、横長にしましょう。

  • PNG または JPEG ファイル
  • 15 MB 以下
  • 1,024 x 500 ピクセル

動画

任意で YouTube の URL を入力して動画を追加できます。

  • 一般公開または限定公開
  • 広告をオフ
  • 年齢制限を適用しない
  • 横向き

携帯電話版のスクリーンショット(必須)

スマートフォン上の操作感がわかるスクリーンショットを準備します。

ストアで確認したところ、複数の画像を組み合わせたり文字を入れたりといった加工も認められるようです。

  • 2~8 枚
  • PNG または JPEG で
  • それぞれ 8 MB 以下
  • アスペクト比 16:9 または 9:16
  • 縦横がそれぞれ 320~3,840 ピクセル

7 インチ タブレット版のスクリーンショット(必須)

タブレットでの操作感がわかるスクリーンショットを準備します。

スマートフォン版の使い回しでも問題ないと思います。

  • 最大 8 枚
  • PNG または JPEG
  • それぞれ 8 MB 以下
  • アスペクト比 16:9 または 9:16
  • 縦横がそれぞれ 320~3,840 ピクセル

10 インチ タブレット版のスクリーンショット(必須)

タブレットでの操作感がわかるスクリーンショットを準備します。

同じく使い回しでも問題ないと思います。

  • 最大 8 枚
  • PNG または JPEG
  • それぞれ 8 MB 以下
  • アスペクト比 16:9 または 9:16
  • 縦横がそれぞれ 1,080~7,680 ピクセル

Chromebook のスクリーンショット

任意でChromebook用のスクリーンショットを追加できます。

  • 4~8 枚
  • PNG または JPEG
  • それぞれ 8 MB 以下
  • アスペクト比 16:9 または 9:16
  • 縦横がそれぞれ 1,080~7,680 ピクセル

リリース・審査

「リリースの概要」から編集したいリリースを選択します。

編集が完了したら「リリースのレビュー」に進みます。

エラーが出ていたら、その部分を修正してください。

問題なければ「製品版としての公開を開始」を押します。

これにより審査が開始します。

初回は最大で1週間ほどかかる場合があるようです。

おわりに

最後までご覧いただきありがとうございます。

PC ロールでは、テクノロジーに関する情報をまとめて発信しています。

また、おすすめのガジェットについて幅広く紹介していく、ガジェロールもあります。

ガジェットやソフトを使うエンジニア・クリエイターはぜひご覧ください。

ガジェロール | ガジェットの巻物

PCロール | PCの巻物

参考

Flutter実践入門

セマンティック バージョニング 2.0.0