簡體   English   中英

使用不同的源測試和發布 Android Studio

[英]Using Different Sources for Testing and Release Android Studio

我正在為調用 RESTful Web 服務的代碼編寫測試。 我需要使用不同的變量進行測試、登台和生產。 例如,登台發布 url 可以是“myapp.staging.com”,而當我測試登台風格時,它應該是“localhost/27015”。 生產風味也是如此。 當它發布時,它應該是“myapp.production.com”。 我如何實現這些風味、構建類型組合?

您可以使用 BuildType 和風味來實現它。

如果您想要不同組合的不同 url,您可以在資源中使用值。

使用 flavor1, flavor2 你有4 Build Variants
您可以在資源中設置 url,例如在strings.xml文件中。
然后你可以在這些文件夾中設置不同的文件來實現你想要的。

src/flavor1/
src/flavor1Debug/
src/flavor1Release/
src/flavor2/
src/flavor2Debug/
src/flavor2Release/

您可以在build.gradle文件中設置所有其他值,例如applicationId

是的,可以在您的 gradle 文件中使用 productFlavors,因此每個構建變體都有自己的

  • 應用程序圖標
  • 應用名稱
  • 常量(基本 API URL)

參考

這就是我們正在做的事情......這是我們應用程序的構建文件。

defaultConfig {
        applicationId 'com.XXXX.XXXXfyd'
        minSdkVersion 17
        targetSdkVersion 23
        versionCode 55
        versionName "1.0.0"

        multiDexEnabled true

        buildConfigField "boolean", "OTP_ENABLED", "false";
        buildConfigField "boolean", "MINT_API_ENABLED", "false";
        buildConfigField "String", "MINT_API_KEY", "\"XXCVVF\"";

        resValue "string", "app_name", "XXXXfyd Debug"
        resValue "string", "account_name", "XXXXfyd Debug"
        resValue "string", "account_type", "com.XXXX.XXXXfyd.debug"
        resValue "string", "account_authority", "com.mind.eventifyd.debug.provider"

        buildConfigField "String", "ACCOUNT_NAME", "\"XXXXfyd Debug\""
        buildConfigField "String", "ACCOUNT_TYPE", "\"com.XXXX.XXXXfyd.debug\""
        buildConfigField "String", "ACCOUNT_AUTHORITY", "\"com.XXXX.XXXXfyd.debug.provider\""

        buildConfigField "String", "XXXXXFYD_XXXXX_URI", "\"http://XXX.XXX.XX.XX\"";
        buildConfigField "String", "XXXXFYD_XXXX_URI", "\"XXXX//XXXXX@XXX.XXX.XX.XX:XXXXX\""
    }
 buildTypes {
        release {
          /*  zipAlignEnabled true
            minifyEnabled true*/
            shrinkResources false
            debuggable false
          /*  proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'*/
            signingConfig signingConfigs.release

            versionNameSuffix "-build." + getDate()

            resValue "string", "app_name", "XXXXXfyd"
            buildConfigField "boolean", "OTP_ENABLED", "false";
            buildConfigField "boolean", "MINT_API_ENABLED", "true";
            buildConfigField "String", "MINT_API_KEY", "\"efrtgyhu\"";

            resValue "string", "account_name", "XXXXXfyd"
            resValue "string", "account_type", "com.XXXX.XXXXfyd"
            resValue "string", "account_authority", "com.XXXX.XXXXfyd.provider"

            buildConfigField "String", "ACCOUNT_NAME", "\"XXXXifyd\""
            buildConfigField "String", "ACCOUNT_TYPE", "\"com.XXXX.XXXXifyd\""
            buildConfigField "String", "ACCOUNT_AUTHORITY", "\"com.XXXX.XXXXfyd.provider\""

            buildConfigField "String", "XXXFYD_XXXX_URI", "\"https://com.XXXX.XXXXfyd.XXXXXes.com\"";
            buildConfigField "String", XXXXXFYD_XXXX_URI", "\"XXXX://XXXXX@XXXXXfyd.XXXXerXXXXs.com:XXXX\""
        }
        debug {
          /*  zipAlignEnabled true
            minifyEnabled false*/
            debuggable true
            applicationIdSuffix ".debug"
            signingConfig signingConfigs.debug
            versionNameSuffix "-debug-build." + getDate()
        }
    }

    productFlavors {
        dev {
            minSdkVersion 19
        }
        prod {
            minSdkVersion 17
        }
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM