温馨提示×

centos下flutter打包流程是什么

小樊
40
2025-11-14 01:12:45
栏目: 智能运维

CentOS 下 Flutter 打包流程

一 环境准备与校验

  • 安装基础工具与 Flutter SDK
    • 更新系统并安装依赖:sudo yum update -y && sudo yum install -y wget git unzip which
    • 下载并解压 Flutter SDK(示例为稳定版本,可按需替换版本号):
      • wget https://storage.googleapis.com/flutter/releases/3.10.0/flutter-linux-x64-3.10.0.tar.xz
      • sudo tar -xf flutter-linux-x64-3.10.0.tar.xz -C /opt
      • echo ‘export PATH=$PATH:/opt/flutter/bin’ >> ~/.bashrc && source ~/.bashrc
  • 配置 Android 环境(用于打包 Android)
    • 安装 OpenJDK 17(Android 构建常用版本):sudo yum install -y java-17-openjdk-devel
    • 设置环境变量(示例路径,请与实际一致):
      • echo ‘export ANDROID_HOME=$HOME/Android/Sdk’ >> ~/.bashrc
      • echo ‘export PATH=$PATH:$ANDROID_HOME/cmdline-tools/latest/bin:$ANDROID_HOME/platform-tools’ >> ~/.bashrc
      • source ~/.bashrc
    • 使用命令行工具 sdkmanager 安装必要组件(首次运行可能需接受协议):
      • yes | $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager --sdk_root=$ANDROID_HOME “platform-tools” “platforms;android-34” “build-tools;34.0.0”
  • 校验环境
    • 运行:flutter doctor -v,确保 Flutter、Android toolchain、JDK 等关键项均为可用状态(如有缺失按提示安装)。

二 打包 Android APK 或 AppBundle

  • 进入项目根目录:cd <your_project>
  • 获取依赖:flutter pub get
  • 构建发布包
    • 构建 APK:flutter build apk --release
    • 构建 AppBundle:flutter build appbundle --release
  • 产物路径
    • APK:build/app/outputs/flutter-apk/app-release.apk
    • AppBundle:build/app/outputs/bundle/release/app-release.aab
  • 可选参数
    • 指定目标架构(如仅 arm64-v8a):flutter build apk --release --target-platform android-arm64
    • 构建时注入环境变量:flutter build apk --release --dart-define=API_ENV=prod
  • 说明
    • 如需签名发布,请提前准备好 keystore,并使用 –release 配合签名配置(或在 Gradle 中配置 signingConfigs)。

三 打包 Linux 桌面应用(CentOS 本机运行)

  • 启用 Linux 桌面支持:flutter config --enable-linux-desktop
  • 安装 Linux 构建依赖(常见为 GTK/OpenGL 等,示例为基于 dnf 的发行版,若为 yum 请使用 yum/dnf 对应包名)
    • sudo dnf install -y clang cmake ninja-build pkgconfig gtk3-devel libblkid-devel libuuid-devel
  • 构建发布包
    • 生成可执行与 bundle:flutter build linux --release
  • 产物路径与运行
    • 可执行与资源:build/linux/x64/release/bundle/
    • 运行:cd build/linux/x64/release/bundle && ./your_app

四 打包 Web 应用与部署

  • 构建 Web:flutter build web --release
  • 产物路径:build/web/(包含静态文件 index.html、assets 等)
  • 快速部署示例(Nginx)
    • build/web 目录内容拷贝到 Nginx 默认静态目录(如 /usr/share/nginx/html),或挂载为卷
    • 启动容器:docker run -d -p 80:80 -v /your/build/web:/usr/share/nginx/html nginx
    • 访问服务器 IP 即可查看站点。

五 常见限制与建议

  • iOS 打包需在 macOS + Xcode 环境完成,CentOS 无法本地构建 iOS;如需 CI/CD,可将 iOS 阶段指定到 Mac 节点执行。
  • 无图形界面的 CentOS 服务器建议优先选择 AndroidWeb 打包;如必须构建 Linux 桌面包,请启用虚拟帧缓冲(如 Xvfb)或使用带 GUI 的构建环境。
  • 持续集成建议:在 Jenkins/GitLab CI 中使用 Flutter 插件与多节点策略(Android 在 Linux 节点,iOS 在 Mac 节点),并归档产物、执行单元测试与分析,保证版本质量。

0