0

我已经react-native-config在 javascript 中设置并使用它没问题,但无法在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
4

3 回答 3

1

在 gradle build 你使用project.env.get("VAR NAME")

于 2020-03-29T18:28:09.883 回答
1

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

申请自:project(':react-native-config').projectDir.getPath() + "/dotenv.gradle"

到最顶部,import com.android.build.OutputFile文件android/app/build.gradle的正下方

https://github.com/luggit/react-native-config#extra-step-for-android

于 2021-03-15T13:53:42.050 回答
0

好像里面的文件MYAPP_RELEASE_STORE_FILE不存在。你在里面有什么价值?该文件是否存在于同一文件夹中?

但也请注意,您不应该将签名秘密存储在.env; 从 react-native-config 自述文件中:

请记住,此模块不会混淆或加密打包机密,因此请勿将敏感密钥存储在 .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
    }
}
于 2017-12-09T01:50:58.743 回答