【.kts】Google Play Consoleのために署名を作成する方法【開発備忘録】
以前、同様のタイトルの記事を投稿しました。
しかし、「build.gardle」ファイルは現在、「build.gardle.kts」と拡張子が「.kts」のものが主流となっています。
それにつまずいたので、.kts版の署名作成方法を備忘録として記します。
※build.gardle時代のやり方は、以前の記事を参照してください。
1. 証明書を作成する
こちらは以前と同じ操作です。ですが、いちいち前の記事を参照するのも面倒なので再掲しておきます。
ターミナルにて以下のコマンドを実行します。
$ keytool -genkey -v -keystore release.jks -alias key -keyalg RSA -keysize 2048 -validity 10000
これを実行すると、パスワード・姓名・組織などなど、、、色々と質問をされます。これらに正しく回答していきます。
※証明書から誰もが見れる情報なので、姓名は〇〇.comみたいにしても良いかもしれません。
※追記:姓名や組織などを全世界に晒したくない場合は、半角ドットひとつだけ(「.」)を入力すると、空白にできます。今回初めて気づきました!
回答が全て終えて確認も終わったら、あとはエンター連打でOKです。
この作業が終了すると、カレントディレクトリ直下にrelease.jksというファイルが生成されます。
このファイルを、android/app/ディレクトリに移動しておきます。
2. androidの設定ファイルを編集する
key.propertiesファイルを作成
こちらの操作も以前から変更点はありませんが、再掲します。
androidディレクトリ直下にkey.propertiesという名前のファイルを作成します。
ファイルの中身は以下の通りです。
storePassword={自分で設定したパスワード}
keyPassword={自分で設定したパスワード}
keyAlias=key
storeFile=release.jks
※storeFileは基本的にandroid/appを起点にした相対パスとなります。万が一、それでエラーが出る場合は絶対パスで記述してください。
※追記:GitHubなどを利用している場合は、このファイルを.gitignoreに追加してアップロードされないようにしてください。誤ってアップロードして誰かに閲覧されたら、セキュリティ上問題になります。
app/build.gradle.kts
ここからが.ktsになったことで変わったところです。
ファイル内に以下のコードを追記してください。
/* 前略 */
import java.util.Properties
val keystoreProperties = Properties()
val keystorePropertiesFile = rootProject.file("key.properties")
if (keystorePropertiesFile.exists()) {
keystoreProperties.load(keystorePropertiesFile.inputStream())
}
android {
/* 中略 */
signingConfigs {
create("release") {
keyAlias = keystoreProperties.getProperty("keyAlias")
keyPassword = keystoreProperties.getProperty("keyPassword")
val storeFileProperty = keystoreProperties.getProperty("storeFile")
storeFile = if (storeFileProperty != null) file(storeFileProperty) else null
storePassword = keystoreProperties.getProperty("storePassword")
}
}
buildTypes {
getByName("release") {
signingConfig = signingConfigs.getByName("release")
isMinifyEnabled = true
isShrinkResources = true
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
}
}
}
/* 後略 */
これで問題なくビルドできれば設定完了です!
ビルドしてエラーが出る場合
ビルドを試みると以下ようなエラーが出る場合があります。
Line 〇〇: jvmTarget = JavaVersion.VERSION_17.toString()
^ 'jvmTarget: String' is deprecated. Please migrate to the compilerOptions DSL. More details are here: https://kotl.in/u1r8ln
もし、このエラーが出た場合は、build.gradle.ktsファイルの当該行(エラー分に表示されている行数)を
jvmTarget = JavaVersion.VERSION_17.toString()
から
jvmTarget = "17"
に置き換えてください。
これで再度ビルドすると、問題なく動くはずです。