2017-04-26 64 views
1

我有一個Android應用程序,我想爲不同的客戶端定製,通常會更改顏色。來自相同代碼庫的移動應用程序克隆

我可以使用香料,但 的問題是,每一個應用程序應該有2個階段(所以,2個應用程序爲每個客戶端),1 QA和1 PROD和他們使用不同的REST API網址,定製每個客戶。

對我來說最理想的是一種嵌套風味的方法,這樣我就可以爲每個風格定義屬性,但它不被支持。這也將允許我修改client_1的一些佈局,並使用main的其他佈局,這也是我需要做的。例如:

productFlavors { 
    client_1 { 
     dev { 
      buildConfigField "String", "API_URL", "https://...." 
     } 
     prod { 
      buildConfigField "String", "API_URL", "https://...." 
     } 
    } 
    client_2 { 
     dev { //... 
     } 
     prod { 
      //... 
     } 
    } 
} 

任何想法我可以做到這一點?

另一種選擇是擁有一個通用的圖書館應用程序,併爲不同的客戶端配置不同的應用程序,但這會使其更加複雜。

+0

嘗試從啓動屏幕加載時獲取來自api的url。並使用它在應用程序 –

+0

@gdogaru您可以使用productFlavours與生成類型。 – Krish

+0

@DivyeshPate l不只需要api網址,我需要定義更多的屬性,並且常見的api不是一個可行的解決方案 – gdogaru

回答

2

在我使用的項目中,使用產品風味構建類型。我會在這裏解釋一下。 我的項目是這樣的,enter image description here

,並在gradle這個文件中添加此行,

buildTypes { 
     prod { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 

     dev { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 


    productFlavors { 

     client_1 { 
      applicationId "com.example.client_1" 
      versionCode 1 
     } 

     client_2 { 
      applicationId "com.example.client_2" 
      versionCode 1 
     } 

    } 
+0

這將工作,我看到的缺點是「minifyEnabled false」。爲了創建發佈版本,你需要有一個標誌或修改構建文件 – gdogaru

+0

我不這麼認爲。你也可以添加一個發佈版本,它會起作用。如果它幫助你,請接受我的回答 – Krish

+0

你解決了這個問題嗎? – Krish

2

當應用程序是基於一個以上的標準,而不是創造了很多,你可以定義味香精尺寸。

風味尺寸定義了將用於生產變體的笛卡爾產品。

實施例:

flavorDimensions("dimA", "dimB") 

productFlavors { 

    row1 { 
     ... 
     dimension = "dimA" 
    } 
    row2 { 
     ... 
     dimension = "dimA" 
    } 
    row3 { 
     ... 
     dimension = "dimA" 
    } 

    col1 { 
     ... 
     dimension = "dimB" 
    } 
    col2 { 
     ... 
     dimension = "dimB" 
    } 
    col3 { 
     ... 
     dimension = "dimB" 
    } 
} 

這個配置將產生18(3×3×2)變體(如果你有2種標準構建類型:debugrelease)。 將創建以下構建變體:

row1-col1-debug 
row1-col2-debug 
row1-col3-debug 
row1-col1-release 
row1-col2-release 
row1-col3-release 

row2-col1-debug 
row2-col2-debug 
row2-col3-debug 
row2-col1-release 
row2-col2-release 
row2-col3-release 

row3-col1-debug 
row3-col2-debug 
row3-col3-debug 
row3-col1-release 
row3-col2-release 
row3-col3-release 
相關問題