温馨提示×

Debian下Flutter如何打包

小樊
37
2026-08-11 10:51:36
栏目: 智能运维

Debian(Linux) 下使用 Flutter 打包应用,通常分为 Linux 桌面应用打包Android APK 打包 两种常见场景。下面按场景详细说明。


一、环境准备(Debian)

1. 安装 Flutter

sudo apt update
sudo apt install -y curl git unzip xz-utils zip libglu1-mesa

下载 Flutter:

cd ~
git clone https://github.com/flutter/flutter.git -b stable

配置环境变量:

echo 'export PATH="$PATH:$HOME/flutter/bin"' >> ~/.bashrc
source ~/.bashrc

验证:

flutter doctor

二、打包 Linux 桌面应用(Debian 最常见)

1. 启用 Linux 桌面支持

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

如果已有项目,不用再 create,只需确认支持:

flutter devices

能看到 linux 即可。


2. 安装 Linux 编译依赖

sudo apt install -y \
  build-essential \
  libgtk-3-dev \
  libblkid-dev \
  liblzma-dev \
  libsecret-1-dev \
  libjsoncpp-dev

3. 构建 Linux 应用

flutter build linux

构建完成后:

build/linux/x64/release/bundle/

包含:

  • 可执行文件
  • data/ 资源目录
  • lib/ 依赖库

4. 打包为 tar.gz(最简单)

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

5. 打包为 Debian .deb(推荐)

安装打包工具

sudo apt install -y dpkg-dev

目录结构

myapp_1.0.0/
├── DEBIAN
│   └── control
├── usr
│   ├── local
│   │   └── bin
│   │       └── myapp
│   └── share
│       └── applications
│           └── myapp.desktop

DEBIAN/control

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

打包

dpkg-deb --build myapp_1.0.0

三、打包 Android APK(Debian 下)

1. 安装 Android 依赖

sudo apt install -y \
  openjdk-17-jdk \
  adb

2. 配置 Android SDK

flutter config --android-sdk ~/Android/Sdk

3. 构建 APK

flutter build apk --release

输出:

build/app/outputs/flutter-apk/app-release.apk

四、Web 打包(可选)

flutter build web

部署到 Nginx / Apache 即可。


五、常见问题

1. flutter doctor 报错

sudo apt install -y clang cmake ninja-build pkg-config

2. Linux 应用无法运行

ldd build/linux/x64/release/bundle/your_app

查看缺失的 .so


六、总结

目标平台 命令
Linux flutter build linux
APK flutter build apk
Web flutter build web
deb 包 手动 dpkg-deb

如果你需要:

  • AppImage / Snap / Flatpak
  • CI(GitHub Actions)自动打包
  • 签名 / 发布到 Debian 仓库

我可以继续帮你细化。

0