V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
lijy91
V2EX  ›  Flutter

Flutter Distributor 一个完整的工具,用于打包和发布您的 Flutter 应用

  •  
  •   lijy91 · 2021-12-26 21:13:03 +08:00 · 1664 次点击
    这是一个创建于 823 天前的主题,其中的信息可能已经有所发展或是发生改变。

    介绍

    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
    

    相关链接

    谢谢

    🎉 🎉 🎉

    shanghai1998
        1
    shanghai1998  
       2021-12-26 21:44:45 +08:00
    cool 好东西,flutter 打包桌面端大小如何?
    可否在 git 中把 hello world 所有的打包文件也放上去,方便体验效果
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1174 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 23:06 · PVG 07:06 · LAX 16:06 · JFK 19:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.