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(快速上手)
添加依赖:flutter pub add flutter_build_debian 。
在项目根目录创建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
打包:flutter pub run flutter_build_debian ,生成的 .deb 位于build/debian/ 。
安装与修复依赖:sudo dpkg -i myapp_1.2.3_amd64.deb;若有依赖问题,执行 sudo apt-get -f install 。
方式B 使用 Snap 打包(面向 Snap Store)
在项目根目录创建snap/snapcraft.yaml 与snap/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;
构建:snapcraft(或 snapcraft --use-lxd)。
本地安装测试:sudo snap install your_app.snap --dangerous 。
发布到 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 位于项目根目录。