Flutter Distributor 用於打包和釋出 Flutter 應用的完整工具

lijy91發表於2021-12-26

介紹

Flutter Distributor 是一個完整的工具,用於打包和釋出您的 Flutter 應用。只需通過一些簡單的配置便可以讓你的專案可以快速的打包儲存到指定目錄及釋出到指定的分發平臺。

開發這個工具的起因是由於我的個人作品比譯釋出後,需要將它打包為 Linux,macOS 和 Windows 的平臺特定的包格式併發布到 GitHub Releases,起初寫了打包指令碼,但後面需要支援的格式越來越多,每次版本釋出都需要花費大量的時間。因此從最初的指令碼開始慢慢演變為 Flutter Distributor,從第一行程式碼到現在已經過去了近兩個半月,今天終於可以拿出來介紹給大家,希望這個工具可以幫助到大家。

特性

  • 將應用打包為特定平臺的格式(同時支援桌面端),並將放入指定資料夾中。
  • 支援應用包檔案按指定格式命名
  • 將應用包釋出到指定的分發平臺(目前只支援 apk, ipa 兩種格式)

已支援的包格式

以上 apk, aab, ipa 為移動軟體包格式,其他為桌面軟體包格式。

已支援的分發平臺

快速開始

安裝

dart pub global activate flutter_distributor

用法

distribute_options.yaml 新增到你的專案根目錄,你也可以檢視這個完整示例 hello_world

output: dist/

配置一個釋出器

pgyer 為例,登入後,點選右側的使用者頭像,從選單中進入API 資訊頁面,複製 API Key 並將其新增到 env 節點。

https://www.pgyer.com/account/api

env:
  PGYER_API_KEY: 'your api key'

檢視所有釋出器文件以及如何配置它們。

配置釋出項

下面的例子展示瞭如何新增一個包含打包 apkipa 包併發布到 pgyer.com 的釋出項,一個釋出項可以包含多個作業。

build_argsflutter build 命令所支援的引數,請根據你的專案進行修改。
releases:
  - name: dev
    jobs:
      - name: release-dev-android
        package:
          platform: android
          target: apk
          build_args:
            target: lib/main.dart
            flavor: dev
            target-platform: android-arm,android-arm64
        # 當你不需要釋出到分發平臺,請刪除 publish_to 欄位
        publish_to: pgyer
      - name: release-dev-ios
        package:
          platform: ios
          target: ipa
          build_args:
            target: lib/main.dart
            flavor: dev
            export-options-plist: ios/dev_ExportOptions.plist
        publish_to: pgyer

完整的示例配置

env:
  PGYER_API_KEY: 'your api key'
output: dist/
releases:
  - name: dev
    jobs:
      - name: release-dev-android
        package:
          platform: android
          target: apk
          build_args:
            target: lib/main.dart
            flavor: dev
            target-platform: android-arm,android-arm64
        publish_to: pgyer
      - name: release-dev-ios
        package:
          platform: ios
          target: ipa
          build_args:
            target: lib/main.dart
            flavor: dev
            export-options-plist: ios/dev_ExportOptions.plist
        publish_to: pgyer

釋出你的應用

flutter_distributor release --name dev

相關連結

謝謝

? ? ?

相關文章