Debian系统下Flutter项目的构建流程
小樊
34
2025-12-28 01:01:49
Debian下Flutter项目构建流程
一 环境准备与SDK安装
- 更新系统并安装基础构建依赖(图形、压缩、编译工具等):
- sudo apt update && sudo apt install -y wget git cmake unzip xz-utils libglu1-mesa clang ninja-build pkg-config libgtk-3-dev liblzma-dev
- 下载并解压 Flutter SDK(示例为稳定版,建议替换为最新稳定版本链接):
- git clone https://github.com/flutter/flutter.git -b stable ~/flutter
- 配置环境变量(写入 ~/.bashrc 或 ~/.zshrc):
- echo ‘export PATH=“$PATH:$HOME/flutter/bin”’ >> ~/.bashrc && source ~/.bashrc
- 验证环境并完成工具链检查:
- flutter doctor(按提示安装缺失组件,如 Android 工具链等)
二 创建或获取项目并安装依赖
- 新建项目或进入已有项目目录:
- flutter create my_flutter_app && cd my_flutter_app
- 获取依赖:
- 启用 Linux 桌面支持(如项目未启用):
- 在 pubspec.yaml 中添加:
- flutter:
- uses-material-design: true
- desktop:
- 再次同步依赖:flutter pub get
三 构建与运行
- Android 构建与运行(需连接设备或启动 AVD):
- 构建 APK:flutter build apk(产物:build/app/outputs/flutter-apk/app-release.apk)
- 构建 App Bundle:flutter build appbundle(产物:build/app/outputs/bundle/release/app-release.aab)
- 运行调试:flutter run
- iOS 构建说明(仅限在 Debian 上生成 Xcode 工程,不能在 Linux 上最终打包):
- flutter build ios(生成 ios/Runner.xcworkspace,需在 Mac 上用 Xcode 完成签名与归档)
- Linux 桌面构建与运行(推荐在 Debian 上直接产出可执行程序):
- 构建发布版:flutter build linux --release(产物:build/linux/x64/release/bundle/ 下的可执行文件与资源)
- 运行:./build/linux/x64/release/bundle/your_app_name
四 打包为Debian安装包 .deb
- 方式一 使用 flutter_build_debian 插件(简洁、自动化):
- 添加打包能力:flutter pub add flutter_build_debian
- 在项目根目录创建 debian.yaml(示例):
- flutter_app:
- command: your_app_name
- arch: x64
- parent: /opt/your_app
- control:
- Package: your-app-name
- Version: 1.0.0
- Architecture: amd64
- Maintainer: Your Name you@example.com
- Description: A Flutter app
- Depends: flutter, libgtk-3-0, liblzma5
- 生成 .deb:flutter build debian(产物:build/debian/your-app-name_1.0.0_amd64.deb)
- 方式二 使用系统打包工具(如 dpkg-deb)手工打包(略,适合自定义控制目录结构与脚本)
- 安装与验证:
- 安装:sudo dpkg -i build/debian/your-app-name_1.0.0_amd64.deb
- 修复依赖:sudo apt --fix-broken install
- 启动:/opt/your_app/your_app_name(或应用菜单入口)
五 常见问题与排查
- 依赖缺失或运行崩溃:
- 使用 ldd 检查可执行文件依赖:ldd build/linux/x64/release/bundle/your_app_name
- 在 debian.yaml 的 Depends 中补充缺失的库(如 libgtk-3-0、liblzma5 等),重新打包安装
- 图标不显示:
- 使用 flutter_launcher_icons 统一生成图标,确保 image_path 指向高分辨率 PNG(建议 512×512)
- 构建 iOS 失败或无法签名:
- iOS 的最终构建与归档必须在 Mac + Xcode 完成;Debian 上仅能生成 Xcode 工程
- 环境与工具链问题:
- 以 flutter doctor 输出为准逐项修复(Android SDK、JDK、构建工具、设备连接等)