
Android で環境設定ファイルからBuildConfig環境変数を生成する
環境設定ファイル(env.propertiese)に定義したをビルドタイプで設定値を読み分ける関数を定義して、 それぞれの環境ビルド時に buildConfigField で定義 という感じ def envPropertiesFile = rootProject.file("env.properties"); def envProperties = new Properties() envProperties.load(new FileInputStream(envPropertiesFile)) ext.buildConfigFieldFromEnvProp = { env -> def keys = ["apiPrefix", "cognitoPoolId", "cognitoClientId", "cognitoClientSecret", "cognitoRegion"] for (key in keys) { defaultConfig.buildConfigField("String", key, "\"${envProperties["$env.$key"]}\"") } } buildTypes { debug { debuggable true applicationIdSuffix = '.debug' versionNameSuffix = '-debug' buildConfigFieldFromEnvProp("dev") } release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' signingConfig signingConfigs.release buildConfigFieldFromEnvProp("prd") } } dev.apiPrefix=https://xxxx dev.cognitoPoolId=xxx dev.cognitoClientId=xxx dev.cognitoClientSecret=xxx dev.cognitoRegion=xxx