web-dev-qa-db-ja.com

Android Studio:ビルドタイプに応じてURLを切り替えますか?(デバッグ/リリースでのテストに使用)

バリアントとビルドタイプについて何かを読んでいて、それが正しく理解されているかどうかはわかりませんが、locahost(テスト)用と本番用(インターネット上のライブサイト)のURLを保存したいと思います。

そして、どのビルドタイプに応じてそれらを切り替える必要があります。これはこれを行う正しい方法ですか?または別の選択肢はありますか?

誰かが小さな例を持っていますか?

ソース管理にコミットする必要のないファイルにこの情報を保存する方法はありますか?私はgradle.propertiesファイルを使用して、gradleが署名に使用するいくつかのパスワードを保存しています。これは、バージョン管理で共有しないこのファイルとしてうまく機能します。

正しい使用方法とその実装方法について少し混乱しています。

何か案は?

23
Martin

BuildConfigを使用して、BuildTypeごとに異なるURLを指定できます

buildTypes {
    debug {
        buildConfigField "String", "SERVER_URL", '"http://someurl/"'
    }
    release{
        buildConfigField "String", "SERVER_URL", '"http://someotherurl/"'
    }
}   

BuildConfigは、プロジェクトをgradleファイルと同期するたびに自動生成されます。コードでは、次のようにURLにアクセスできます。

BuildConfig.SERVER_URL

これらのURLをコミットしたくない場合は、パスワードなどと同じようにgradle.propertiesに保存し、build.gradleで参照できます。

buildConfigField "String", "SERVER_URL", serverurl.debug
83
tknell
   buildTypes {
    release {
        runProguard false
        proguardFiles getDefaultProguardFile('proguard-Android-optimize.txt'), 'proguard-rules.pro'
        buildConfigField "String", "BASE_URL", '"url1"'
        debuggable false

    }

   debug {
        runProguard false
        proguardFiles getDefaultProguardFile('proguard-Android-optimize.txt'), 'proguard-rules.pro'
        buildConfigField "String", "BASE_URL", '"url2"'
        debuggable true

 }

これは、gradleで実行し、同じ電話で2つのアプリケーション(リリースとデバッグ)を実行するために追加するだけです。

applicationIdSuffix ".debug"

デバッグ部分。パッケージ名が異なりますので。これは私のために働いた。

4
Yogesh