如何将Flutter应用构建流程与Rust代码集成实现自动构建?
Flutter+Rust 构建流程自动化方案
下面是三种不同复杂度的实现方案,按需选择即可:
1. 快速脚本方案(适合多平台通用临时需求)
在项目根目录创建对应平台的执行脚本,单次执行即可自动走完完整构建流程,且Rust编译失败会直接终止流程,避免打包旧二进制:
- macOS/Linux 平台新建
run.sh:
#!/bin/bash # 按需调整Rust编译参数 cargo build --release if [ $? -ne 0 ]; then echo "Rust 编译失败,流程终止" exit 1 fi # 按需调整Flutter运行/打包参数 flutter run --release
脚本添加执行权限:chmod +x run.sh,之后直接执行./run.sh即可。
- Windows 平台新建
run.ps1:
# 按需调整Rust编译参数 cargo build --release if ($LASTEXITCODE -ne 0) { Write-Host "Rust 编译失败,流程终止" -ForegroundColor Red exit 1 } # 按需调整Flutter运行/打包参数 flutter run --release
之后右键选择用PowerShell执行即可。
2. 原生构建钩子集成方案(适合正式项目)
直接把Rust编译逻辑嵌入Flutter各平台的原生构建流程,不管是手动执行flutter run还是用IDE点构建按钮,都会自动先执行Rust编译:
安卓平台
打开项目下的android/app/build.gradle文件,添加如下代码:
// 定义Rust编译任务 task rustBuild(type: Exec) { // 路径调整到你的Rust项目根目录 workingDir "../../rust" // 按需添加目标架构、编译模式参数 commandLine 'cargo', 'build', '--release', '--target', 'aarch64-linux-android', '--target', 'armv7-linux-androideabi', '--target', 'i686-linux-android' } // 将Rust编译任务挂载到安卓构建的最前面 preBuild.dependsOn rustBuild
iOS平台
用Xcode打开项目下的ios/Runner.xcworkspace,进入Runner目标的Build Phases标签,点击左上角+号新建Run Script阶段,将该阶段拖到Compile Sources前面,脚本内容填:
# 路径调整到你的Rust项目根目录 cd ${SRCROOT}/../rust # 按需添加目标架构、编译模式参数 cargo build --release --target aarch64-apple-ios --target x86_64-apple-ios-sim
桌面平台
- Windows:打开
windows/runner/runner.vcxproj,添加预构建事件,内容填写Rust编译命令即可 - macOS桌面:和iOS配置逻辑一致,在Xcode的构建阶段添加运行脚本即可
3. 模板复用方案
如果你是用flutter_rust_bridge官方脚手架创建的项目,官方已经内置了全平台的构建钩子配置,直接把对应配置文件拷贝到你的现有项目中即可,不需要手动编写逻辑。
内容的提问来源于stack exchange,提问作者ch271828n
相关产品推荐
相关产品推荐

