温馨提示×

Linux上Flutter应用如何发布

小樊
32
2025-12-07 07:06:01
栏目: 智能运维

Linux上Flutter应用发布指南

一 准备与构建

  • 启用桌面支持:在项目根目录执行flutter config --enable-linux-desktop,确保pubspec.yaml包含桌面平台(如 desktop: [linux])。
  • 安装构建依赖(Debian/Ubuntu 系):sudo apt install clang cmake build-essential 等。
  • 可选图标与启动画面:使用flutter_launcher_icons生成图标(flutter pub add flutter_launcher_icons && flutter pub run flutter_launcher_icons:main)。
  • 版本管理:在pubspec.yaml中维护版本号,遵循语义化版本,每次发布递增;例如 version: 1.2.3+4(显示版本为1.2.3,内部构建号为4)。
  • 构建发布版:flutter build linux --release,产物位于build/linux/(可执行文件与资源)。
  • 产物校验:运行 build/linux/your_app 确认启动与基础功能正常。

二 打包为 Debian 包 .deb

  • 方式A 使用 flutter_build_debian(快速上手)
    1. 添加依赖:flutter pub add flutter_build_debian
    2. 在项目根目录创建debian.yaml,示例:
      flutter_app:
      package: com.example.myapp
      version: 1.2.3
      arch: amd64
      description: My Flutter Linux App
      maintainer: Your Name you@example.com
      depends: libgtk-3-0, libglib2.0-0
    3. 打包:flutter pub run flutter_build_debian,生成的 .deb 位于build/debian/
    4. 安装与修复依赖:sudo dpkg -i myapp_1.2.3_amd64.deb;若有依赖问题,执行 sudo apt-get -f install
  • 方式B 使用 Snap 打包(面向 Snap Store)
    1. 在项目根目录创建snap/snapcraft.yamlsnap/gui/your_app.desktop,desktop 示例:
      [Desktop Entry]
      Name=YourApp
      Exec=your_app
      Icon=${SNAP}/meta/gui/your_app.png
      Terminal=false
      Type=Application
      Categories=Utility;
    2. 构建:snapcraft(或 snapcraft --use-lxd)。
    3. 本地安装测试:sudo snap install your_app.snap --dangerous
    4. 发布到 Snap Store:snapcraft login → snapcraft register your_app → 推送版本(遵循通道与审核流程)。

三 仓库分发与自动化

  • 仓库分发:将 .deb 上传到自有 APT 仓库(如自建 aptly/内网镜像),在目标机器添加源后执行 sudo apt update && sudo apt install your_app
  • 自动化 CI/CD:在 GitHub Actions/GitLab CI 中配置矩阵构建(如 amd64/arm64),执行 flutter build linux,使用 snapcraft 或 flutter_build_debian 产出制品,并自动上传至仓库或 Snap Store;可结合语义化版本与标签触发发布流程。

四 交付物与版本规范

  • 交付物建议:同时提供可执行文件(便于解压即用)与安装包(.deb 或 .snap,便于系统集成与自动更新)。
  • 版本规范:在pubspec.yaml维护版本,确保每次发布递增;若对接系统包管理器,建议与包管理器的版本策略保持一致(如 Debian 的版本比较规则)。
  • 产物目录速览:flutter build linux 后,核心可执行文件与资源在build/linux/;使用插件打包后,.deb 位于build/debian/,.snap 位于项目根目录。

0