新規リリース
◎リリースビルド関連
・keystore ファイルを作成する
"C:\Program Files\Android\Android Studio\jre\bin\keytool" -genkey -v -keystore ./key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key
上記コマンドをターミナルで入力し、質問に答えていくと android\app\key.jks が作成される。
パスワードのみが必須で、「姓名」「組織名」「都市・地域」「国コード」(日本ならJP)などは必須ではないためお好みで。
keytool の場所は ターミナルから、flutter doctor -v を打つと、Java binary at に記載されている。
android\app\key.jks以外の場所に作られた場合は移動すればOK。
・android\key.properties を作る
key.properties ファイルを作成する。4行のみのファイル。
(例)
storePassword=パスワード
keyPassword=パスワード
keyAlias=key
storeFile=key.jks
パスワードは、keystore作成時に入力したパスワード。("などは付けない)
・android\app\build.gradle.kts を修正する
(kotlin バージョン、現在はkotlinが推奨)
ChatGPT が頼りになります。
・先頭にimport を追加
import java.util.Properties
import java.io.FileInputStream
・以下を追記、importに続けてよいかも
// リリースのため追記
val keystoreProperties = Properties()
val keystorePropertiesFile = rootProject.file("key.properties")
if (keystorePropertiesFile.exists()) {
keystoreProperties.load(keystorePropertiesFile.inputStream())
}
・android()ブロック内、buildTypesの前に追記する
// リリースのため追記
signingConfigs {
create("release") {
keyAlias = keystoreProperties["keyAlias"] as String?
keyPassword = keystoreProperties["keyPassword"] as String?
storeFile = keystoreProperties["storeFile"]?.let { project.file(it as String) }
storePassword = keystoreProperties["storePassword"] as String?
}
}
・buildTypes {}ブロック内のdebug をrelease にする。
(プログラム内コメントの通りコマンドラインからも可能だが、忘れてもよいように変更する)
buildTypes {
release {
// TODO: Add your own signing config for the release build.
// Signing with the debug keys for now, so `flutter run --release` works.
signingConfig = signingConfigs.getByName("release")
}
}
・SDKのバージョンを設定する(以下補足あり)
・SDKのバージョン設定について補足(kotlin)
minSdkには対応したいSDKのバージョンを設定する。
Android13以上に対応したい場合は、minSdk = 31 とする。
デフォルトは、minSdk = flutter.minSdkVersion
targetSdkにAndoroid policy などに要求されるSdkバージョンを設定する。
SDK35以上が要求されているときは、targetSdk = 35 とする。
デフォルトは targetSdk = flutter.targetSdkVersion
そのほか、ndkVersionの指定を要求されることがある。
(ビルド時にメッセージが出るのでそれに従うこと)
・android\app\build.gradleを編集する(Groovy バージョン)
先頭に追記する
// 追記
def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) {
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}
buidTypes の前に追記する
// 追記
signingConfigs {
release {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
storePassword keystoreProperties['storePassword']
}
}
buildTypes {
release {
// TODO: Add your own signing config for the release build.
// Signing with the debug keys for now, so `flutter run --release` works.
// debug を release に変更しました
signingConfig signingConfigs.release
}
}
その他、signingConfigs.debug を releaseにしておく。
・アプリ名をつける(AndroidManifest.xml)
<application
android:label="TSV Note"
android:name="${applicationName}"
android:icon="@mipmap/launcher_icon">
android:label="アプリ名"
アプリ名を変更する。日本語も可。
日本語と英語で分けたい場合等は、下記参照。
・com.example(アプリケーションID)を変更する
一度公開したら変更できない。
com.開発チーム名.アプリ名 などが一例。
(開発チーム名、アプリ名は英数文とアンダースコアのみ使用可)
記載場所が幾つもあるので、アプリ作成開始時に決めておく。
後から変更すると、それだけで一苦労。
ちなみに、
android/app/src/main/AndroidManifest.xml
android/app/src/debug/AndroidManifest.xml
android/app/src/profile/AndroidMnifest.xml
android/app/build.gradle
に変更箇所があるかも。
(変更するファイルは、正しくない可能性があります)
・aabファイルをビルドする
リリース版をビルドして完成。
アプリ名を英語・日本語で分ける方法(Android)
android/app/src/main/res に以下のディレクトリを作成する
values-en
values-ja
ディレクトリを作成後、values, values-en, values-jaの各ディレクトリにstrings.xmlを作成する。
strings.xmlができたら、各strings.xmlへ以下のコードを記述する。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">アプリ名</string>
</resources>
アプリ名にvalues, values-enフォルダのstrings.xmlでは英語名を、
values-jaフォルダのstrings.xmlでは日本語名を入れる。
'や"は付けないように注意。
android/app/src/main/res/AndroidManifest.xmlのラベル名を変更する
android:label="@string/app_name"
◎準備しておくもの
・Google Develoer アカウント (初回登録時のみ、25$・身分証明書が必要)
◇以下、Google Play Consoleへのアプリ登録時
アプリのデフォルト言語を英語にしても、Play Consoleは日本語表示のままなので安心。
説明等は対応言語毎(英語・日本語等)それぞれ用意しておく。
アプリのデフォルト言語を英語にしておけば、アプリ使用者が日本語環境でなければ英語になる。
逆に、デフォルト言語が日本語だと、英語環境以外は日本語になってしまう。
・アプリ名
アプリ名は日本語・英語など、各種言語のアプリ名を環境毎に設定できる。
・簡単な説明(80文字以内)
文字数制限に注意。
英語80文字は表現できることに制限がある。
というより、日本語の表現力が特殊。
・詳しい説明(4000文字以内)
あまり長くても読まれないので、わかりやすく簡潔に。
英語で4000文字あれば十分だろう、ということかと。
400文字原稿用紙10枚分の、日本語アプリ説明文は必要とされない。
・アイコン(512x512px、最大1MB)
pngまたはjpgファイルにする。以下画像ファイルは同様。
・フューチャーグラフィック(1024x500px、最大1MB)
宣伝用画像。掲載時にトリミングが行われることがあるため、中央寄せ推奨。
外側から15%部分が「カットオフゾーン」となり、
これより内側に文字や主となる画像を持ってくること。
・スクリーンショット(スマホ用)
アピール用に数枚が表示されるスクリーンショット。2~8枚必要。(各ファイル最大8MB)
画像サイズは縦横320~3480px。
・スクリーンショット(タブレット用)
スマホ用を流用できる。
タブレットをターゲットとする時は、専用スクリーンショットを作ったほうがよい。
・プライバシーポリシー
プライバシーポリシーのホームページを作成する。
Google Play Console「ポリシーとプログラム」→「アプリノコンテンツ」→「プライバシーポリシー」
から設定できる。
・リリースノート
難しく考えなくてよい。
以下は、英語版と日本語版のサンプル。
Version 1.0.0 is released.
Version 1.0.0 をリリースしました。