Android利用gradle同時編譯多包(測試環境地址、生產環境地址)

邵磊發表於2017-07-10

前言

小公司,專案有2套環境:一個測試環境,一個生產環境。測試會找客戶端要測試環境包或生產環境包,我覺得嫌煩,於是,同時編譯。

分析

首先,我們的專案中,生產環境和測試環境僅為string.xml中的兩個地址不同,其他程式碼都是相同的。
這個需求和多渠道包打包很像,幾乎完全參照。

具體程式碼

先在build.gradle(Module)中加入 home、real,兩句話

android {
      //……省略程式碼
    productFlavors {
        "home"{}
        "real" {}
    }
}複製程式碼

主工程string.xml裡的是真實地址,並且有很多其他配置。


我們建立一個\app\src\home\res\values目錄,然後建立一個string.xml檔案。

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">A專案測試</string>
    <string name="ip1">http://a.com</string>
</resources>複製程式碼

這裡只需要寫差異的配置檔案,如app名字、伺服器地址。

開發、除錯

除錯的時候,在android studio中選擇home、或者real即可正常開發、執行。

jenkins配置

設定完,每次提交的程式碼也會生成2個版本,除了伺服器地址,就是我們的那個xml檔案,其他程式碼全部一樣。

總結

花幾分鐘即可每次發包,同時發2個版本,即使沒有jenkins,手動build也可以生成2個,這樣測試人員不用每次找我們要測試包、真實包了。

相關文章