開發、準生產、生產多服務器,需要不同的 URL,打包時需要切換
第一步:
首先打開 module 的 build.gradle在 android 根中添加下面的代碼
productFlavors {
dev {
resValue "string", "app_name", "sumile_dev"
}
userTest {
resValue "string", "app_name", "sumile_test"
}
online {
resValue "string", "app_name", "sumile_online"
}
}
其中 dev、userTest、online 等名字以及個數都可以改變,大小寫不限(但是不可以使用 test)
productFlavors 通常是指同一軟件的不同版本,比如收費版,免費版。這個版本的邏輯肯定是不一樣的。它會自動將不同版本的代碼分別和通用代碼進行組合,根據上面的配置打包成不同的包。關于 productFlavors 詳細的介紹,參考這里的 官方文檔 或我保存的 這份 (product-flavors)(沒法翻墻的話)
根據上面的介紹,其實可以想到,我們要做的切換 url 打包,其實就類似于多個不同的版本,版本與版本之間請求的服務器的地址是不同的
第二步:
之后在其中一個文件夾下面新建一個文件夾 ,java 下面新建包,包名可以和你 main 下面的不同
然后復制 java 目錄到其他文件夾下面 (本例中為 dev 和 online)
最終結果如下:
從圖中可以看到,userTest 文件夾下面的代碼被識別成了 java, 而其他的兩個沒有被識別到。
你連著手機點運行的時候,這里被識別成 java 的代碼就會是當前使用的代碼,另外兩個不會被使用到,如果你想要切換使用的代碼,只要在 Build Variants 中切換就好了
另外要著重注意的是:
如果 main 文件夾下的 package 名和你新建的 package 名相同的話,同目錄下不要有相同的文件
接下來在每個 Config.java 中定義它們不相同的地方,比如下面我把它們每個 url 都加上了它們的版本的名字
然后就正常使用就可以了
接下來打包
按住 shift 可以都選擇了,finish 完成,就可以打出來三個包了
調試微信—每次必須打包再測的煩惱
module 的 build.gradle 的 android 下面添加如下代碼:
debug {
storeFile file("../keystore.jks")
storePassword "123456"
keyAlias "sumile"
keyPassword "123456"
}
}```
路徑可以根據相對或絕對路徑去匹配,推薦還是相對路徑(使用 Mac 和 Windows)這樣配置的話,以 debug 模式運行的時候用的就是配置的 keystore 了
[MyBlog](https://sumile.cn/archives/1788.html)