温馨提示×

debian怎么打包flutter应用

小樊
49
2026-09-28 06:22:46
栏目: 智能运维

在 Debian(以及一般的 Linux 桌面环境)上,“打包 Flutter 应用”通常有几种常见方式,取决于你想要的发布形式:


一、前提:先构建 Linux 版本

Flutter 从 2.0 起支持 Linux 桌面(Debian/Ubuntu 等)。

1. 启用 Linux 支持

flutter config --enable-linux-desktop
flutter create .

2. 安装依赖(Debian)

sudo apt update
sudo apt install clang cmake ninja-build gtk+-3.0 libgtk-3-dev

3. 构建 release 版本

flutter build linux --release

构建结果在:

build/linux/x64/release/bundle/

包含:

  • 可执行文件
  • lib/ 动态库
  • data/ 资源

二、方式一:直接打包为 tar.gz(最简单)

适合内部分发或自己用。

cd build/linux/x64/release
tar czvf myapp.tar.gz bundle

运行:

./bundle/myapp

三、方式二:打包为 Debian (.deb) 包(推荐)

方法 1:使用 dpkg-deb(手动)

1. 创建目录结构

mkdir -p myappdeb/opt/myapp
mkdir -p myappdeb/usr/bin
mkdir -p myappdeb/DEBIAN

2. 拷贝 Flutter 构建结果

cp -r build/linux/x64/release/bundle/* myappdeb/opt/myapp/

3. 创建启动脚本

cat > myappdeb/usr/bin/myapp <<EOF
#!/bin/bash
/opt/myapp/myapp
EOF
chmod +x myappdeb/usr/bin/myapp

4. 编写 DEBIAN/control

Package: myapp
Version: 1.0.0
Section: utils
Priority: optional
Architecture: amd64
Depends: libgtk-3-0
Maintainer: you <you@example.com>
Description: My Flutter Linux App

5. 打包

dpkg-deb --build myappdeb

生成:

myappdeb.deb

安装:

sudo dpkg -i myappdeb.deb

方法 2:使用 flutter_distributor(更省事)

flutter pub global activate flutter_distributor
flutter_distributor release --targets deb

自动生成 .deb


四、方式三:AppImage(跨发行版)

flutter build linux --release

使用 appimage-builder 或 linuxdeploy 打包。

适合:

  • 不想依赖 Debian 特定环境
  • 给用户“双击运行”

五、常见坑

1. 缺少 GTK 依赖

运行报错:

error while loading shared libraries: libgtk-3.so.0

解决:

sudo apt install libgtk-3-0

2. 字体/资源缺失

确保 data/ 目录一起打包。

3. 架构问题

Debian 上默认是 amd64,ARM 需交叉编译。


六、推荐方案总结

场景 推荐方式
自己用 tar.gz
Debian/Ubuntu 发布 .deb
多发行版 AppImage
快速自动化 flutter_distributor

如果你愿意,我可以:

  • 给你一个完整可用的 deb 打包脚本
  • 帮你配置 CI 自动打包
  • 或按 GTK / Wayland / ARM 场景细化

你打算发布到哪?(个人 / 公司 / 商店)

0 踩