0

アプリのビルド バリアントで 4 つの異なるフレーバーを作成しました。アプリのbuild.gradleの構成にバージョンとサフィックスを追加しました。. 以下はコードです:

productFlavors {
    qa {
        applicationIdSuffix ".qa"
        versionCode 1
        versionName "1.0"
        //manifestPlaceholders = [application: ".utils.Application"]
    }

    demo {
        applicationIdSuffix ".demo"
        versionCode 1
        versionName "1.0"
        //manifestPlaceholders = [application: ".utils.Application"]
    }


    dev {

        versionCode 1
        versionName "1.0"
        //manifestPlaceholders = [application: ".utils.Application"]
        //signingConfig signingConfigs.release
    }

    uat {
        applicationIdSuffix ".uat"
        versionCode 1
        versionName "1.0"
        //manifestPlaceholders = [application: ".utils.Application"]
    }
}

私のアプリでは、環境に応じてヒットする URL を選択するためにファイルAPIAddresses.javaを使用します。build.gradleのすべてのソース コードからこのファイルのみを使用して、ビルド バリアントの URL を構成する方法はありますか?

ビルド バリアントごとに、このファイルの異なるコピーを作成することができます。これに似たものです。

productFlavors {
    qa {
        applicationIdSuffix ".qa"
        versionCode 1
        versionName "1.0"
        APIAddresses_QA
    }

    demo {
        applicationIdSuffix ".demo"
        versionCode 1
        versionName "1.0"
        APIAddresses_DEMO
    }

}

ありがとうございました!

4

2 に答える 2

0

if-elseクラスに多くの条件を追加したくない場合はbuildConfigField、各フレーバーに new を追加できます。

productFlavors {
    qa {
        applicationIdSuffix ".qa"
        versionCode 1
        versionName "1.0"
        buildConfigField "String", "SERVER_URL", '"https://server1.com"'
    }

    demo {
        applicationIdSuffix ".demo"
        versionCode 1
        versionName "1.0"
        buildConfigField "String", "SERVER_URL", '"https://server2.com"'
    }

    ...
}

BuildConfig.SERVER_URLその後、Java側で呼び出すことができ、各フレーバーに従って、私の例では適切なURLを返す必要があります

于 2018-02-16T11:15:40.773 に答える