product Flavors 進階處理 (過濾不需要使用的 variant, 如何處理不同 Variant 字串)
前言
基本的 productFlavors 處理可以查看 productFlavors 基本技巧,本篇文章主要是針對過濾不需要使用的 Variant 以及如何處理字串問題.
基本設定
在 flavorDimensions 只有設定一個維度的情況下
只是區分成了穩定版本及開發版本 分別是 stable, dev |
程式碼設定 |
會產生的 Build Variant |
以上是設定完成後,正常會產生的情況.
但如果想要設定成在 Stable 的情況下才把 Amazon 金流的功能開啟以及 Dev 狀態下把 Facebook 金流開啟,其他都關閉該如何設定.
variantFilter 功能設定
在 build.gradle 設定過濾條件
條件包含 dimensions 的限制及 Release / Debug 的限制
1. buildState -> 第一個 FlavorDimensions
2. mode -> 第二個 FlavorDimensions
3. 判斷完成後 setIgnore -> true
補充 (另外一種比較精簡的寫法)
處理 BuildConfig 字串
假設遇到的情境是在不同的 Variant 下會使用到不同的字串,可以在 buildConfig 下依據不同的版本去查看當前的設定.
Ctrl + Shift + F 搜尋 buildConfig |
確認可以搜尋到檔案,如果搜尋不到請執行 Make Project
BuildConfig 內容 |
實作
在 build.gradle 內設定
在 build.gradle defaultConfig 設定一個 default WEB_URL_CASH |
在 productFlavors 可以分別設定一個網址,在執行時就會依據設定的內容去讀取 要注意字串之間需要用 “\ 字串 \” 斜線符號,在前後將字串包住,否則會錯誤 |
執行一個測試 function |
在 AmazonCashFlow variant 下執行結果 |
在 FaceBookCashFlow variant 下執行結果 |
處理一般 Resource 資料夾下字串
以 App 名稱為例子,分別需要有不同的命名,可以在 build.gradle 設定
要注意 values 下 string.xml 不能重複定義 |
重複設定會錯誤, Duplicate resources |
更改 values 下 string.xml 的定義名稱後,重新執行就會帶入 build.gradle 所設定的值 |
END
後記
如果這篇文章對於你有幫助,可以幫忙分享給更多的人,如果文章內容有誤,可以在下方留言告知.
如果這篇文章對於你有幫助,可以幫忙分享給更多的人,如果文章內容有誤,可以在下方留言告知.
留言
張貼留言