react-native-config无法在build.gradle中使用env变量

时间:2017-12-05 17:55:17

标签: react-native build.gradle react-native-config

我已设置[{'cast_id': 23, 'character': "Roger 'Verbal' Kint", 'credit_id': '52fe4260c3a36847f8019af7', 'gender': 2, 'id': 1979, 'name': 'Kevin Spacey', 'order': 5, 'profile_path': '/x7wF050iuCASefLLG75s2uDPFUu.jpg'}, {'cast_id': 27, 'character': 'Edie's Finneran', 'credit_id': '52fe4260c3a36847f8019b07', 'gender': 1, 'id': 2179, 'name': 'Suzy Amis', 'order': 6, 'profile_path': '/b1pjkncyLuBtMUmqD1MztD2SG80.jpg'}] 并在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

3 个答案:

答案 0 :(得分:1)

在gradle构建中,您使用project.env.get("VAR NAME")

答案 1 :(得分:0)

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

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

  

请记住,此模块不会对包装的秘密进行模糊处理或加密,因此请勿将敏感密钥存储在.env中。它是basically impossible to prevent users from reverse engineering mobile app secrets,因此请设计您的应用(和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
    }
}

答案 2 :(得分:0)

虽然自动链接已为您设置好,但仍需要手动设置以在 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