Flutter Distributor 用于打包和发布 Flutter 应用的完整工具

4,144 阅读2分钟

介绍

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

相关链接

谢谢

🎉 🎉 🎉