Android利用gradle同時編譯多包(測試環境地址、生產環境地址)
阿新 • • 發佈:2018-12-23
前言
小公司,專案有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個,這樣測試人員不用每次找我們要測試包、真實包了。