

プロジェクトの中でビルドを

[code]

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.config
            manifestPlaceholders = [appVersion: ""];
        }
        staging {
            applicationIdSuffix '.staging'
            versionNameSuffix '-staging'
            manifestPlaceholders = [appVersion: "-stg"];
        }
        debug {
            applicationIdSuffix '.debug'
            versionNameSuffix '-debug'
            manifestPlaceholders = [appVersion: "-debug"];
        }
    }
    productFlavors {
        panel {
            versionCode 2
            versionName '1.1'
            applicationIdSuffix '.panel'
            manifestPlaceholders = [appName: "gathereapp-panel"];
        }
        admin {
            manifestPlaceholders = [appName: "gathereapp"];
        }
    }
    
[/code]

こういう感じで分けまいたが、  
それぞれのビルドに変数やメソッドを指定したいです。  
XCodeだとしたら[ここのリンク](https://stackoverflow.com/a/40230742/2545465)のようにしています。  
AndroidStudioでもこんな感じで設定ファイルを作って活用することもできますか？


CC BY-SA 3.0
2016-12-14T04:10:14.320
31140
2016-12-14T15:28:57.690
2017-05-23T12:38:56.083
-1
19849
question
android android-studio
AndroidStudioで各ビルドにそれぞれの変数やメソッドを作る


自分は使った事がないのですが、こんな感じですかね。

  * [ビルド時にいろんな値を生成する](http://sakebook.hatenablog.com/entry/2015/11/20/015829)

上記は「defaultConfig」に記述していますが、buildTypesの各ビルドにbuildConfigFieldを記述すれば、望みの事ができると思います。

[code]

        buildTypes {
            release {
                minifyEnabled false
                proguardFiles.add(file('proguard-android.txt'))
    
                buildConfigField "String", "hoge", "\"Hello, world!\""
            }
            debug {
                buildConfigField "String", "hoge", "\"Hello, debug world!\""
            }
        }
    
[/code]

build.gradleに上記のような記述をしてdebugビルドをしたら、build/generated/source/buildConfig/debug/com/example/test1214/BuildConfig.javaという以下のソースが出力されました。

[code]

    /**
     * Automatically generated file. DO NOT MODIFY
     */
    package com.example.test1214;
    
    public final class BuildConfig {
      public static final boolean DEBUG = Boolean.parseBoolean("true");
      public static final String APPLICATION_ID = "com.example.test1214";
      public static final String BUILD_TYPE = "debug";
      public static final String FLAVOR = "";
      public static final int VERSION_CODE = 1;
      public static final String VERSION_NAME = "0.1";
      // Fields from build type: debug
      public static final String hoge = "Hello, debug world!";
    }
    
[/code]


CC BY-SA 3.0
2016-12-14T15:28:57.690
31154
2016-12-14T15:28:57.690
15473
31140
answer