React native react本机配置无法在build.gradle中使用环境变量

React native react本机配置无法在build.gradle中使用环境变量,react-native,build.gradle,react-native-config,React Native,Build.gradle,React Native Config,我已经在javascript中设置并使用了react native config没有问题,但是我无法在build.gradle中这样使用它 release { if (project.hasProperty('MYAPP_RELEASE_STORE_FILE')) { storeFile file(project.env.get("MYAPP_RELEASE_STORE_FILE")) storePassword project.env.get("M

我已经在javascript中设置并使用了
react native config
没有问题,但是我无法在
build.gradle
中这样使用它

release {
     if (project.hasProperty('MYAPP_RELEASE_STORE_FILE')) {
         storeFile file(project.env.get("MYAPP_RELEASE_STORE_FILE"))
         storePassword project.env.get("MYAPP_RELEASE_STORE_PASSWORD")
         keyAlias project.env.get("MYAPP_RELEASE_KEY_ALIAS")
         keyPassword project.env.get("MYAPP_RELEASE_KEY_PASSWORD")
     }
}
版本

react-native-cli: 2.0.1
react-native: 0.49.5
react: 16.0.0
react-native-config: 0.11.1
输出

$ ./gradlew assembleRelease`
... shortened output
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:validateSigningRelease'.
> Keystore file not set for signing config release

似乎
MYAPP\u RELEASE\u STORE\u文件
中的文件不存在。你有什么价值?该文件是否存在于同一文件夹中

但也要注意,您不应该将签名机密存储在
.env
中;从react本机配置自述文件:

请记住,此模块不会混淆或加密用于打包的机密,因此不要将敏感密钥存储在.env中。这是非常重要的,所以在设计应用程序(和API)时要考虑到这一点

你可以改为使用Gradle属性文件来保守秘密。例如,在
~/.gradle/gradle.properties
中:

MYAPP_RELEASE_KEY_ALIAS=myapp
MYAPP_RELEASE_STORE_PASSWORD=abc
MYAPP_RELEASE_KEY_PASSWORD=def
然后,可以在
build.gradle
中找到这些文件:

signingConfigs {
    release {
        storeFile "myapp.keystore"
        keyAlias MYAPP_RELEASE_KEY_ALIAS
        storePassword MYAPP_RELEASE_STORE_PASSWORD
        keyPassword MYAPP_RELEASE_KEY_PASSWORD
    }
}

在gradle build中,您使用的是
project.env.get(“VAR NAME”)

虽然自动链接设置完全为您所用,但仍然需要手动设置才能在
build.gradle中使用它

应用于:project(':react native config').projectDir.getPath()+ “/dotenv.gradle”

最上方,在
android/app/build.gradle
文件中导入com.android.build.OutputFile
的正下方


无法获取项目的未知属性“env”:org.gradle.api.project类型的应用程序。知道我遗漏了什么吗?大多数时候这意味着我的身材。格雷德尔错了。添加/更改顶部的“apply from:project(':react native config').projectDir.getPath()+“/dotenv.gradle”(下面的:import com.android.build.OutputFile),感谢它的工作。如何访问gradle.properties文件中的环境配置?您不能。您需要以某种方式对属性进行后期处理,如中所示。目前,Gradle不向“自定义加载”Gradle.properties提供任何此类功能