Flutter 動態配置多環境 - Flutter 程式配置

Flutter 執行環境切換機制,滿足產品開發過程中,需要將開發/測試/正式環境分開的需求。

在原生程式(Kotlin、Swift),Android 和 iOS 能分別用 Gradle 和 TARGETS 條件編譯滿足這個需求在 Flutter 也可以利用 --dart-define 和 -flavor 參數,挑選要執行的產品版本。 

 

此系列文章將逐步解說,如何為 Flutter 專案建置多環境切換機制。

 

新增環境配置參數

 

新增一個處理環境變數的類別。

第 32 ~ 45 行建立了 3 個執行環境,變數的值對應建置指令的參數,需一字不差。

 
在需要的地方使用剛剛建好的環境變數,本例是直接顯示可以用的變數。
 

在終端機輸入指令,帶入指定的參數就能切換環境,以開發環境為例

flutter run --dart-define=DART_DEFINE_APP_ENV=dev

--dart-fefine 可以帶入自訂參數,滿足建置不同版本的 app 的需求。

DART_DEFINE_APP_ENV 對應 EnvName.envKey;數值「dev」是對應 EnvName.dev。

 

執行時,就能看到 app 是指定的組態執行。
 

更方便地知道目前 app 的執行環境 

實際上在開發 app 時,很少會大刺刺地在畫面上顯示這個 app 是不是連線到哪個環境。但卻又不希望自己只能依靠 Log 的訊息,因為打包 Release 版不會看到 Log。 

這個時候可以在角落做個記號方便確認,也能避免將來打包產品弄錯執行環境。

建立 FlavorBanner 讓它在正式版以外的版本顯示記號。


在首頁套用 FlavorBanner。

 
 

左上角就會提示現在的執行環境,正式版就不會出現記號了。

右上角的 DEBUG 標記,可以在 MaterialApp.debugShowCheckedModeBanner 傳入 false 去除。

 

原始碼

 

專案原始碼

Commit 差異

 

參考資料

拒绝魔改,Flutter动态配置多环境
Flutter Ready to Go (flavors, connectivity and more)

版本資訊

Flutter version 3.3.9 on channel stable
Dart version 2.18.5

留言

這個網誌中的熱門文章

Flutter 動態配置多環境 - Android Gradle 配置

Azure 建立 Windows 虛擬機器