React native react本机配置无法在build.gradle中使用环境变量
我已经在javascript中设置并使用了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
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提供任何此类功能