[英]How to use react-native-config with a react native app build with Swift
[英]react-native-config unable to use env variables in build.gradle
我已經設置了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
在 gradle 構建中,您使用project.env.get("VAR NAME")
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
}
}
盡管自動鏈接為您設置了一切,但仍需要手動設置它以在build.gradle
使用它
申請自:project(':react-native-config').projectDir.getPath() + "/dotenv.gradle"
到最頂部,在android/app/build.gradle
文件中import com.android.build.OutputFile
https://github.com/luggit/react-native-config#extra-step-for-android
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.