如何在Bitrise的build-android步骤中同时为3个变体配置对应.env文件?
在Bitrise中为多Android变体分别配置对应.env文件的方案
核心思路
Bitrise默认的build-android步骤在单次执行时会沿用初始环境变量配置,因此需要在构建每个变体前动态切换对应的.env文件,可通过自定义脚本或修改现有构建流程实现。
具体实现方法
方法1:用自定义Shell脚本替代默认构建步骤
放弃默认的build-android步骤,改用自定义Shell脚本逐个构建变体并切换.env文件:
- 在Bitrise项目中添加一个Script步骤
- 脚本内容示例(根据你的实际变体名称调整):
# 构建dev变体 cp .env.develop .env ./gradlew assembleDevelopRelease # 构建stg变体 cp .env.staging .env ./gradlew assembleStagingRelease # 构建prod变体 cp .env.production .env ./gradlew assembleProductionRelease
- 若项目基于Flutter,将
./gradlew命令替换为flutter build apk --flavor <对应flavor名>即可。
方法2:修改默认build-android步骤的前置脚本
如果希望保留默认的build-android步骤,可通过Pre-build script实现动态切换:
- 在
build-android步骤的Pre-build script配置项中添加以下逻辑:
# 根据当前构建的变体自动切换.env文件 case "$BITRISE_FLAVOR" in develop) cp .env.develop .env ;; staging) cp .env.staging .env ;; production) cp .env.production .env ;; esac
- 确保已在
build-android步骤中勾选Build multiple variants并添加了三个目标变体; - 变量
BITRISE_FLAVOR会在构建每个变体时自动赋值为对应名称,需与你的变体命名完全匹配。
注意事项
- 确保项目根目录下存在
.env.develop、.env.staging、.env.production文件,且已上传至代码仓库,或通过Bitrise的File Download步骤提前拉取到构建环境; - 若使用React Native等其他框架,需调整.env文件的替换逻辑以适配框架的环境变量加载机制(比如配合
react-native-config使用)。
内容的提问来源于stack exchange,提问作者imalgrab
相关产品推荐
相关产品推荐

