KonifarPod

build.gradleからsigningConfigsの情報を別ファイルを切り出す

   

Pocket

build.gradleで署名つきビルドを行う場合、signingConfigsを書く必要があります。

ただここに直書きするのもセキュリティ上微妙な感じがします。かといって、空白でcommitして毎回署名つきビルドの時に記入するというのも面倒です。

そこで、署名の情報をrelease.propertiesに切り出して、そのファイルは.gitignoreに入れるようにしました。忘れないように手順をメモしておきます。

 

① keystoreファイルをプロジェクトルートに配置

keystoreファイルをプロジェクトルートに置きます。これはどこでもいいのですが、まあルートが一番わかりやすいかなと思います。

 

② release.propertiesを作成してプロジェクトルートに配置

release.propertiesというファイルを作ります。中身はこんな感じ。

storeFile project.keystore
storePassword password
keyAlias alias
keyPassword password

 

③ .gitignoreを編集

①と②のファイルがcommitされないように.gitignoreファイルに下記を記述します。

*.keystore
release.properties

 

④ build.gradleを編集

②で作ったプロパティファイルを読み込んでsigningConfigsを指定するようにbuild.gradleを変更します。

// load release properties
Properties props = new Properties()
if (rootProject.file("release.properties").exists()) {
    props.load(new FileInputStream(rootProject.file("release.properties")))
} else {
    println("Please create release.properties in project root.")
}

android {
    signingConfigs {
        release {
            storeFile rootProject.file(props.storeFile)
            storePassword props.storePassword
            keyAlias props.keyAleas
            keyPassword props.keyPassword
        }
    }
    buildTypes {
        release {
            runProguard true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.release
        }
    }
}

 

エラーハンドリングとかもう少しちゃんとした方がよさそうですが、一応これで動きます。このへんのベストプラクティスってなんなんでしょうね。。調べてみたらコンソールでパスワード入力させるようにしてる人もいるみたいですが、CIとか考えると何かやり方を考えないといけないなぁというところです。。

 

Pocket

 - 未分類 ,