こんにちはsekitakaです。
ハマったこと
開発中のアプリのrelease用のビルドでログを出力して調査をする必要がありました。
そこでappモジュールのbuild.gradle
でreleaseビルドタイプのdebuggable
をtrue
にしました。
build.gradle
buildTypes {
release {
debuggable true
// 他略
}
}
するとログは出力されるようになりましたが、一部の設定値だけdebug用のものが使われるようになってしまいました。
色々調べたところ、影響を受けた設定値の出し分けには BuildConfig.DEBUG
が使用されていました。
今考えると当然なのですが、debuggable
をtrue
にするとBuild.DEBUG
がtrue
になります。
その結果期待した出し分けになっていませんでした。
結論
サーバーの接続先などの情報はデバッグかどうかに関わらず、BuildConfig.BUILD_TYPE と BuildConfig.Flavor によって出し分ける方がよいでしょう。
Build Variant を release
とbuild
の二種類しか使っていないと混同しがちですが、BuildConfig.BUILD_TYPEとBuildConfig.DEBUGは正しく使い分けましょうというお話でした。