首页 > 解决方案 > 如何创建新的构建类型反应原生android

问题描述

我有两个 2 环境,dev 和 prod。我正在使用产品风味来配置它,就像这样。

productFlavors {
  dev {
      minSdkVersion rootProject.ext.minSdkVersion
      applicationId 'XXX.XXX.XXX.dev'
      targetSdkVersion rootProject.ext.targetSdkVersion
      resValue "string", "build_config_package", "XXX.XXX.startup"
  }

  prod {
    minSdkVersion rootProject.ext.minSdkVersion
    applicationId 'XXX.XXX.startup'
    targetSdkVersion rootProject.ext.targetSdkVersion
    resValue "string", "build_config_package", "XXX.XXX.startup"
  }
}

对于开发,我使用signingConfig signingConfigs.debug (debug.keystore) 和生产我使用signingConfig signingConfigs.release (release.keystore)。所以我想添加新的构建类型可能是releaseDev,像这样

release {
  signingConfig signingConfigs.debug
  minifyEnabled enableProguardInReleaseBuilds
  proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
}

但是当我执行assembledevReleasedev时,它返回了很多错误,就像这样

Required com.android.build.api.attributes.BuildTypeAttr 'releaseDev' and found incompatible value 'release'

有谁知道如何解决这个问题?

标签: react-nativereact-native-androidandroid-productflavors

解决方案


您缺少 build type 的配置releaseDev。它应该是这样的:

    buildTypes {
        releaseDev {
            debuggable false
            minifyEnabled true
        }
    }

看看Build-variants

顺便说一句,gradle 产品风味不用于拆分环境目的。不同的风味意味着不同的应用程序,并不能保证您的release风味与debug. 我强烈建议你看看React-native-config


推荐阅读