温馨提示×

Linux上Flutter应用的打包流程是怎样的

小樊
46
2025-12-13 06:12:17
栏目: 智能运维

Linux上Flutter应用的打包流程

一 准备环境

  • 安装 Flutter SDK 并加入 PATH,执行 flutter doctor -v 检查环境;如缺少 Java JDK,请先安装,以便使用 keytool 生成签名。
  • 准备 Android SDK(如需打包 APK),按提示运行 flutter doctor --android-licenses 接受协议。
  • 如需桌面端,启用 Linux 桌面支持:在项目根目录执行 flutter config --enable-linux-desktop,确保已安装构建依赖(如 clang、cmake、ninja、pkg-config、libgtk-3-dev 等)。

二 打包 Android APK

  • 生成签名密钥(Linux/macOS 终端):
    keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key
  • 在项目中创建 android/key.properties
    storePassword=
    keyPassword=
    keyAlias=key
    storeFile=
  • 配置 android/app/build.gradle(Kotlin DSL 示例):
    • 顶部加载 key.properties
    • 定义 signingConfigs.release 并从属性读取
    • 在 buildTypes.release 中设置 signingConfig = signingConfigs.release
  • 构建发布包:
    • 单架构:flutter build apk --release
    • 按 ABI 拆分:flutter build apk --release --split-per-abi
  • 产物路径:通常在 build/app/outputs/flutter-apk/release/app-release.apk

三 打包 Linux 桌面应用

  • 启用桌面支持并获取依赖后,直接构建:
    • 应用包:flutter build linux --release
    • 产物目录:build/linux/x64/release/bundle/(内含可执行文件与资源)
  • 可选:生成 .deb 包以便分发
    • 添加插件:flutter pub add flutter_launcher_icons 并生成图标
    • 在项目根目录创建 debian.yaml,配置包名、版本、架构、依赖、入口命令等
    • 构建:flutter pub run flutter_build_debian
    • 安装测试:sudo dpkg -i .deb

四 常见问题与提示

  • 构建 Android 时若报 app:lintVitalRelease 导致失败,可在 android/app/build.gradle 的 android 块中添加:
    lintOptions { checkReleaseBuilds false; abortOnError false }
  • 需要同时面向 ARM64x64 设备,优先使用 –split-per-abi 生成多个 APK,减少包体积并提升兼容性与安装成功率。
  • 分发 .deb 前,确认 debian.yaml 中的 archdepends 与实际运行环境匹配,避免依赖缺失。

0