はじめに
GitでRepositoryの管理をする際にAPIのkeyなどそのままPushしないためにGitSecretを使う方が多いと思うのですが...
https://github.com/awslabs/git-secrets
Android開発でステージングかリリース環境かでKeyが違う...って時に困ったのでメモです。
*多分もっとスマートなやり方があります...ゴリ押し手法です...
やってみた
まずbuild.gradleで設定したBuildVariantsごとにpropertiesファイルを生成しましょう。
staging.properties
production.properties
次に各ファイルの中にそれぞれのKey情報を書き込みます。
API_KEY = "hogehogehogehoge"
SECRET_ID = "fugafugafuga"
完成したら今度はbuild.gradleの変更です。
def apiKeyPropertiesFile = rootProject.file("staging.properties")
def apiKeyProperties = new Properties()
apiKeyProperties.load(new FileInputStream(apikeyPropertiesFile))
resValue "string", "API_KEY", apiKeyProperties['API_KEY']
buildConfigField("String", "SECRET_ID", apiKeyProperties['SECRET_ID'])
これをBuildVariantsごとに設定してもらえればコード内で同じ変数名でも各環境で個別のキー情報を使用できます。
最後に作成したpropertiesにgit secretを適用することだけ忘れずに...