簡體   English   中英

Android Studio:根據構建類型切換 URL? (用於在調試/發布中進行測試)

[英]Android Studio: Switching a URL depending on buildtype? (used for testing in debug /release)

我一直在閱讀有關變體和構建類型的內容,我不知道我是否理解正確,但我想存儲一個用於 locahost(測試)和一個用於生產(互聯網上的實時站點)的 URL。

我需要根據構建類型來切換它們。 這是正確的方法嗎? 還是有另一種選擇?

有沒有人有一個小例子?

有沒有辦法將這些信息存儲在我不需要提交到源代碼控制的文件中? 我正在使用 gradle.properties 文件來存儲一些 gradle 用於簽名的密碼。這很好用,因為我沒有在版本控制中共享這個文件。

我對正確的使用方法以及如何實現它有點困惑。

有任何想法嗎?

您可以使用 BuildConfig 為每個 BuildType 提供不同的 URL

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

每次將項目與 gradle 文件同步時,都會自動生成 BuildConfig。 在您的代碼中,您可以像這樣訪問 URL:

BuildConfig.SERVER_URL

如果您不想提交這些 URL,您可以將它們存儲在您的 gradle.properties 中,就像您的密碼等,並在 build.gradle 中引用它們。

buildConfigField "String", "SERVER_URL", serverurl.debug
   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 中執行此操作,並在同一部手機中運行兩個應用程序(發布和調試),只需添加

applicationIdSuffix ".debug"

在調試部分。 因為包名會有所不同。 這對我有用。

我正在與圖像共享該過程,因為我們需要在buildTypes添加 API URL 時特別注意 java 的轉義序列,否則 URL 將無法在BuildConfig正確生成並產生Cannot resolve ...錯誤,如下圖所示 - 在此處輸入圖片說明

所以正確的解決方案是添加遵循轉義序列的 URL,如下圖所示 -

在此處輸入圖片說明

暫無
暫無

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

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