- 首页 >
- 问答 >
-
智能运维 >
- Debian系统下Flutter应用的部署方法
Debian系统下Flutter应用的部署方法
小樊
32
2025-12-20 06:17:07
Debian下Flutter应用的部署方法
一 环境准备与SDK安装
- 更新系统并安装基础依赖:
- sudo apt update && sudo apt upgrade -y
- sudo apt install -y wget git cmake unzip build-essential libgl1-mesa-dev
- 下载并解压 Flutter SDK(以稳定版为例,版本号可按需调整):
- wget https://storage.googleapis.com/flutter_infra/releases/stable/linux/flutter_linux_v3.10.4-stable.tar.xz
- sudo mkdir -p /opt/flutter
- sudo tar -xf flutter_linux_v3.10.4-stable.tar.xz -C /opt/flutter
- 配置环境变量(写入 ~/.bashrc 或 ~/.zshrc):
- echo ‘export PATH=“$PATH:/opt/flutter/bin”’ >> ~/.bashrc && source ~/.bashrc
- 验证环境:
- flutter doctor(按需安装缺失组件,例如 Android 工具链、桌面支持等)
二 构建与本地运行
- 新建或进入项目:
- flutter create my_flutter_app && cd my_flutter_app
- 启用桌面支持(首次需要):
- flutter config --enable-linux-desktop
- 本地运行与调试:
- 构建 Linux 发行版产物(位于 build/linux/x64/release/bundle/):
- flutter build linux --release
- 说明:Flutter 在 Debian 上可用于移动与桌面开发,桌面端可直接运行与打包,Android 端也可在 Debian 上构建。
三 打包为 Debian 安装包 .deb
- 方式一 使用 flutter_linux_packager 生成 .deb
- 安装打包工具:
- flutter pub global activate flutter_linux_packager
- 在项目根目录执行(按交互填写应用名、版本、描述、维护者、分类、图标等):
- flutter pub global run flutter_linux_packager:main
- 生成的 .deb 位于项目根目录的 linux/flutter/(或 build/linux/) 下,可用以下命令安装与校验:
- sudo apt install ./your-app_1.0.0_amd64.deb
- dpkg -s your-app
- 方式二 使用第三方插件(如 flutter_build_debian)
- 添加依赖并配置后执行构建,产出 .deb 供分发与 APT 安装(适合团队化与自动化发布)。
四 构建 Android APK 并签名发布
- 准备签名密钥(仅首次):
- keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias mykey
- 配置签名(android/app/key.properties):
- storePassword=****
- keyPassword=****
- keyAlias=mykey
- storeFile=/absolute/path/to/key.jks
- 在 android/app/build.gradle 中读取 key.properties 并配置 signingConfigs.release
- 构建与签名:
- flutter build apk --release
- 产物路径:build/app/outputs/flutter-apk/app-release.apk
- 如需使用 apksigner 进行签名或校验,可结合 jarsigner/apksigner 完成发布流程。
五 部署分发与运维建议
- 桌面端分发:将 .deb 上传至制品仓库或官网,用户通过 APT 安装(sudo apt install ./app.deb),必要时配合 GPG 公钥与仓库源进行可信分发。
- Android 分发:上传 app-release.apk 到应用商店或内部分发平台;确保已正确签名并开启混淆/压缩以减小体积与提升安全性。
- 服务器/微服务场景:若以 Flutter Web 提供 HTTP 服务,可在 Debian 上构建后使用 Nginx/Apache 反向代理与 HTTPS 终端;也可容器化(Docker)便于扩缩与 CI/CD 集成。