目 录CONTENT

文章目录

React Native 自定义 Gradle 脚本打包不同环境的 安卓 APK 包

Hello!你好!我是村望~!
2025-06-04 / 0 评论 / 0 点赞 / 111 阅读 / 646 字
温馨提示:
我不想探寻任何东西的意义,我只享受当下思考的快乐~

React Native 自定义 Gradle 脚本打包不同环境的 安卓 APK 包

定义 android/app/build.gradle

buildTypes {
    debug {
        signingConfig signingConfigs.debug
    }
    release {
        // Caution! In production, you need to generate your own keystore file.
        // see https://reactnative.dev/docs/signed-apk-android.
        signingConfig signingConfigs.debug
        minifyEnabled enableProguardInReleaseBuilds
        proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
    }
}

flavorDimensions "default"
productFlavors {
    dev {
        dimension "default"
        resValue "string", "app_name", "测试包"
    }
    prd {
        dimension "default"
        resValue "string", "app_name", "生成包"
    }
}

自定义 package.json 的script

"android-debug": "react-native run-android --mode=devDebug",
"android-prd": "react-native run-android --mode=prdDebug",

通过 --mode 指定搭配

  • buildTypes 的 debug + productFlavors 的 dev
  • buildTypes 的 debug + productFlavors 的 pro

终端运行不同的命令打包出来的包名就会不同

image-20250603225054753

附上 AI 的解释

// 配置不同的构建类型及其属性
buildTypes {
    // 调试构建类型 - 用于开发和测试阶段
    debug {
        // 使用调试签名配置,便于快速部署和测试
        signingConfig signingConfigs.debug
    }
    
    // 发布构建类型 - 用于生产环境发布
    release {
        // 注意!在生产环境中,你需要生成自己的密钥库文件
        // 参考:https://reactnative.dev/docs/signed-apk-android
        // 这里暂时使用调试签名配置,实际生产环境应替换为正式签名
        signingConfig signingConfigs.debug
        
        // 是否在发布版本中启用代码混淆
        // enableProguardInReleaseBuilds 应该是一个在其他地方定义的布尔变量
        minifyEnabled enableProguardInReleaseBuilds
        
        // 指定代码混淆规则文件
        // getDefaultProguardFile("proguard-android.txt") - Android 默认的混淆规则
        // "proguard-rules.pro" - 项目自定义的混淆规则
        proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
    }
}

// 定义产品风味的维度
// 一个应用可以有多个维度的风味,例如:环境维度(开发/生产)和版本维度(免费/付费)
flavorDimensions "default"

// 配置不同的产品风味(变种)
productFlavors {
    // 开发环境风味 - 用于内部测试和开发
    dev {
        // 指定此风味所属的维度
        dimension "default"
        // 设置应用名称资源,在开发环境中显示为"测试包"
        resValue "string", "app_name", "测试包"
    }
    
    // 生产环境风味 - 用于正式发布
    prd {
        // 指定此风味所属的维度
        dimension "default"
        // 设置应用名称资源,在生产环境中显示为"生成包"
        resValue "string", "app_name", "生成包"
    }
}

这两个配置一起使用会产生四种构建变体组合:

  • devDebug - 开发环境调试版
  • devRelease - 开发环境发布版
  • prdDebug - 生产环境调试版
  • prdRelease - 生产环境发布版

image-20250604094645307

0

评论区