一、环境准备(Linux系统)
安装Flutter SDK
wget https://storage.googleapis.com/flutter-release/releases/stable/flutter-linux-x64-<version>.tar.xz(替换<version>为实际版本号)。~/flutter):tar -xvzf flutter-linux-x64-<version>.tar.xz -C ~/flutter。~/.bashrc,添加export PATH="$HOME/flutter/bin:$PATH",执行source ~/.bashrc使配置生效。flutter doctor,根据提示安装缺失依赖(如Android工具链、iOS工具链等,仅桌面部署可忽略移动端依赖)。安装桌面平台依赖
flutter config --enable-linux-desktop启用Linux桌面支持。sudo apt install -y libgl1-mesa-dev libgconf-2-4 libnss3 libxss1 libasound2 libcups2 libxtst6 libx11-xcb1 libgtk-3-0(不同发行版包名可能略有差异)。二、项目配置
添加桌面平台支持
编辑项目根目录的pubspec.yaml文件,在flutter节点下添加desktop配置:
flutter:
desktop:
- linux # 启用Linux平台支持
保存后运行flutter pub get同步依赖。
配置应用图标(可选)
flutter_launcher_icons插件:flutter pub add flutter_launcher_icons。assets/icons/icon.png),并在pubspec.yaml中配置图标路径:flutter_launcher_icons:
linux_icon: "assets/icons/icon.png" # Linux平台图标路径
flutter pub run flutter_launcher_icons:main生成桌面图标。三、构建Linux桌面应用
构建Release版本
进入项目目录,运行以下命令生成Linux桌面应用:
flutter build linux --release
构建完成后,输出文件位于build/linux/x64/release/bundle/目录下,包含可执行文件(如your_app_name)及依赖资源。
本地测试运行
在项目目录下直接运行flutter run -d linux,或在构建目录中执行生成的可执行文件(如./build/linux/x64/release/bundle/your_app_name),验证应用功能是否正常。
四、打包与分发
生成Debian包(.deb)
sudo apt install -y flutter_build_debian。debian.yaml配置文件,指定包信息:flutter_app:
command: your_app_name # 应用可执行文件名(与build目录下一致)
arch: x64 # 架构(通常为x64)
parent: /opt # 安装父目录(如/opt/your_app_name)
nonInteractive: true # 是否静默安装(无需用户确认)
control:
package: your_app_name # 包名(如mega-cool-app)
version: 1.0.0 # 版本号
depends: # 依赖库(根据项目需求添加,如libgtk-3-0)
- libgtk-3-0
- libgconf-2-4
flutter pub run flutter_build_debian生成.deb文件(位于build/debian/目录下)。分发与应用
.deb文件分发给用户,用户可通过以下命令安装:sudo dpkg -i your_app_name_1.0.0_amd64.deb
sudo apt --fix-broken install自动解决依赖问题。五、部署到服务器(Web应用) 若需部署Flutter Web应用到Linux服务器(如Nginx),需额外执行以下步骤:
构建Web静态文件
运行flutter build web,生成build/web/目录下的静态文件(HTML、CSS、JS等)。
上传文件到服务器
使用scp或rsync将build/web/目录上传至服务器指定路径(如/var/www/html/your_app):
scp -r build/web/* user@server_ip:/var/www/html/your_app
配置Web服务器(以Nginx为例)
sudo apt install -y nginx。/etc/nginx/sites-available/your_app),添加以下内容:server {
listen 80;
server_name your_domain.com; # 替换为域名或IP
root /var/www/html/your_app; # 静态文件路径
index index.html;
location / {
try_files $uri $uri/ /index.html; # 支持前端路由
}
}
sudo ln -s /etc/nginx/sites-available/your_app /etc/nginx/sites-enabled/。sudo nginx -t && sudo systemctl restart nginx。访问应用
在浏览器中输入服务器域名或IP(如http://your_domain.com),即可访问部署的Flutter Web应用。