AndroidとかiOSとかモバイル多め。その他技術的なことも書いていきます。

【Android】リリース署名の設定をプロジェクト外から上書きする

GitHubでソースを公開していてリリース署名の設定をしたい場合、公開用にはダミーの署名を置き、手元ではそれを上書きしたい。かつ git status でnot stagedのところに上書き内容がいちいち出ないようにプロジェクト外から上書きしたい。

gradle.propertiesプロジェクト直下/gradle.properties が先に読まれ、次に ~/.gradle/gradle.properties が読み込まれるためプロジェクト外から値を上書きできる。

app/build.gradle

変数を囲むのはダブルクオーテーションじゃないと動かない。

android {
    ....
    signingConfigs {
        release {
            keyAlias "$RELEASE_KEY_ALIAS"
            storeFile file("$RELEASE_STORE_FILE_PATH")
            keyPassword "$RELEASE_KEY_PASSWORD"
            storePassword "$RELEASE_STORE_PASSWORD"
        }
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
            signingConfig signingConfigs.release
        }
    }
    ...
}

プロジェクト直下のgradle.properties

dummy-release-keyはapp以下に置く

RELEASE_KEY_ALIAS=key
RELEASE_STORE_FILE_PATH=dummy-release-key
RELEASE_KEY_PASSWORD=testtest
RELEASE_STORE_PASSWORD=testtest

そして ~/.gradle/gradle.properties に本当のリリース署名の設定を書く。