本指南將向您展示如何為 Android 應用建立 Flutter 風味。

概述

#

Flutter 風味(在與 Android 結合使用時)是各種平臺特定功能的統一術語。例如,風味可以決定特定應用版本所關聯的圖示、應用名稱、API 金鑰、功能標誌和日誌記錄級別。

如果您想為 Android 應用建立 Flutter 風味,可以在 Flutter 中進行。在 Android 中,Flutter 風味被稱為 產品風味

以下示例說明了當 Android 應用具有兩個產品風味(stagingproduction)和兩種構建型別(debugrelease)時建立的 Android 構建變體

產品風味構建型別生成的構建變體
stagingdebugstagingDebug
stagingRelease
productionreleaseproductionDebug
productionRelease

配置您的產品風味

#

請完成以下步驟,為名為 flavors_example 的新 Flutter 專案新增兩個名為 stagingproduction 的 Android 產品風味,然後測試您的專案以確保風味按預期工作。

  1. 建立一個名為 flavors_example 的新 Flutter 專案,並將 Kotlin 作為首選 Android 語言。預設情況下,專案包含 debugrelease Android 構建型別。

    控制檯
    flutter create --android-language kotlin flavors_example
  2. flavors_example 專案新增名為 stagingproduction 的產品風味。

    • flavors_example 專案中,導航到 android/app/ 目錄並開啟 build.gradle.kts

    • android {} block 中新增 flavorsDimension 屬性和 productFlavors 屬性。確保 android {} 塊還包含預設的 debugrelease 構建型別。

      build.gradle.kts
      kotlin
      android {
          ...
          buildTypes {
            getByName("debug") {...}
            getByName("release") {...}
          }
          ...
          flavorDimensions += "default"
          productFlavors {
              create("staging") {
                  dimension = "default"
                  applicationIdSuffix = ".staging"
              }
              create("production") {
                  dimension = "default"
                  applicationIdSuffix = ".production"
              }
          }
      }
  3. 為了確保您已正確設定一切,請在 Android 產品風味上執行您的應用。您不會看到任何差異,因為配置設定尚未更改,但您確實需要確保應用可以執行。

    • 啟動 Android 模擬器或連線已啟用開發者選項的物理裝置。

    • 在控制檯中,導航到 flavors_example 目錄並輸入以下命令來測試 staging 風味:

      控制檯
      flutter run --flavor staging
    • production 風味重複上一步。

  4. 如果一切正常執行,您就可以自定義配置了。有關更多資訊,請參閱 自定義配置

啟動風味

#

在為 Android 應用新增產品風味後,您可以透過 Flutter 啟動特定的產品風味。

您可以使用 Flutter CLI 透過以下步驟啟動產品風味:

  1. 啟動 Android 模擬器或連線已啟用開發者選項的物理裝置。

  2. 在控制檯中,導航到 flavors_example 目錄並輸入以下命令:

    控制檯
    flutter (run | build) --flavor <flavor_name>
    • (run | build):用以下選項之一替換:

      • run:以除錯模式執行應用。
      • build:以生產模式執行應用。
    • <flavor_name>:替換為您 Android 產品風味的名稱(例如,stagingproduction)。

    示例

    控制檯
    flutter run --flavor staging

自定義配置

#

新增產品風味後,您可以為 Android 應用自定義它們。

建立不同的應用顯示名稱

#

如果您有多個產品風味,不同的應用名稱可以幫助您快速識別正在使用的已部署應用的風味。

Distinct app names in menu

以下步驟展示瞭如何在名為 flavors_example 的專案中為兩個名為 stagingproduction 的產品風味新增不同的應用顯示名稱。

  1. 在 IDE 中更新 build.gradle.kts

    • flavors_example 專案中,導航到 android/app/ 目錄並開啟 build.gradle.kts

    • flavorsDimension 塊中,為 stagingproduction 風味新增一個名為 app_nameresValue() 屬性。

      build.gradle.kts
      kotlin
      android {
          ...
          flavorDimensions += "default"
          productFlavors {
              create("staging") {
                  dimension = "default"
                  resValue(
                      type = "string",
                      name = "app_name",
                      value = "Flavors staging")
                  applicationIdSuffix = ".staging"
              }
              create("production") {
                  dimension = "default"
                  resValue(
                      type = "string",
                      name = "app_name",
                      value = "Flavors production")
                  applicationIdSuffix = ".production"
              }
          }
  2. 在 IDE 中更新 AndroidManifest.xml

    • flavors_example 專案中,導航到 android/app/src/main 並開啟 AndroidManifest.xml

    • android:label 的值替換為 @string/app_name

      AndroidManifest.xml
      xml
      <manifest xmlns:android="http://schemas.android.com/apk/res/android">
          <application
            android:label="@string/app_name"
            ...
          />
      />
  3. 為每個產品風味(stagingproduction)啟動應用,並檢查以確保每個應用的顯示名稱都已更改。

    • 要啟動產品風味,請參閱 啟動風味 中的步驟。

    • 在 Android 應用模擬器中,轉到應用列表。您應該會看到一個名為 Flavors p... 的應用和一個名為 Flavors s... 的應用。

    • 要檢視 Flavors p...Flavors s... 的更多資訊,請長按其中一個圖示,然後選擇 應用資訊

建立不同的圖示

#

如果您有多個產品風味,為每種配置使用不同的圖示可以幫助您快速識別正在使用的已部署應用的風味。

Distinct icons

以下步驟展示瞭如何在名為 flavors_example 的專案中為兩個名為 stagingproduction 的產品風味新增不同的圖示。

  1. 準備您的圖示

    • 在您選擇的設計工具中設計您的 staging 圖示和 production 圖示。

    • 以 PNG 格式生成以下尺寸的 staging 圖示和 production 圖示版本:

      • mipmap-mdpi (48x48 畫素)
      • mipmap-hdpi (72x72 畫素)
      • mipmap-xhdpi (96x96 畫素)
      • mipmap-xxhdpi (144x144 畫素)
      • mipmap-xxxhdpi (192x192 畫素)
  2. 建立特定於風味的程式碼資源目錄

    • 導航到 android/app/src 目錄。

    • 建立一個名為 staging/res 的目錄。

    • 導航到 staging/res 目錄。

    • 建立以下 mipmap 目錄並將 staging 圖示版本移入其中:

      • mipmap-mdpi/48x48_staging.png
      • mipmap-hdpi/72x72_staging.png
      • mipmap-xhdpi/96x96_staging.png
      • mipmap-xxhdpi/144x144_staging.png
      • mipmap-xxxhdpi/192x192_staging.png
    • production 風味目錄和圖示重複上述步驟。

    • 將所有圖示重新命名為 ic_launcher.png

  3. 在 IDE 中仔細檢查 AndroidManifest.xml 中的配置。

    • flavors_example 專案中,導航到 android/app/src/main 並開啟 AndroidManifest.xml

    • 確保 android:icon 的值是 @mipmap/ic_launcher

  4. 為每個產品風味(stagingproduction)啟動應用,並檢查以確保每個應用圖示都已更改。要啟動產品風味,請參閱 啟動風味 中的步驟。

打包資源

#

如果您的應用中有僅在特定風味中使用的資源,您可以將其配置為僅在該風味啟動時打包到您的應用中。這可以防止您的應用包因未使用的資源而膨脹。要為每個風味打包資源,請在專案的 pubspec 檔案中將 assets 欄位的 flavors 子欄位新增到 assets 欄位。有關更多資訊,請參閱 Flutter pubspec 選項assets 欄位

設定預設風味

#

您可以讓您的應用在啟動應用時不指定風味,而是使用特定的風味。為此,您需要在專案的 pubspec 檔案中新增 default-flavor 欄位。有關更多資訊,請參閱 Flutter pubspec 選項default-flavor 欄位

新增獨特的構建設定

#

如果您有要為特定 Android 產品風味配置的附加構建設定,請參閱 Android 的 配置構建變體

更多資訊

#

有關建立和使用風味的更多資訊,請檢視以下資源: