gpt4 book ai didi

javascript - 我如何告诉 react-native 要查看的 .env 文件?

转载 作者:行者123 更新时间:2023-12-04 23:56:38 25 4
gpt4 key购买 nike

在 Windows 上,我正在开发一个白标应用程序并尝试使用环境变量来构建代码特定的版本。我正在使用 react-native-config 并按照他们在 GitHub 上的设置进行操作,但出于某种原因 SET ENVFILE=.env.myenvironment 对我没有任何作用,即使在 build-gradle 中定义了这样的 map :

project.ext.envConfigFiles = [
debug: ".env",
release: ".env",
anothercustombuild: ".env.custombuild",
]

有什么想法吗?

最佳答案

在您的 gradle 中配置 flavors 之后,为了让 react-native 查看您项目文件夹根目录中的自定义 .env 文件,您必须添加到android/app/build.gradle

在我的示例中,我使用相同的代码库为 Android 设备创建了两个应用程序,一个用于 group1,一个用于 group2

//将此添加到 app/build.gradle

的第 3 行
project.ext.envConfigFiles = [
projecta: ".env.development.android.projecta",
projectb: ".env.development.android.projectb",
]

//不要忘记添加

android {
compileSdkVersion rootProject.ext.compileSdkVersion
flavorDimensions "default" // add this line
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}

然后将此数组中的键与您的产品口味进行匹配

  productFlavors {
project1 {
minSdkVersion rootProject.ext.minSdkVersion
applicationId 'com.nativeapp.projecta'
targetSdkVersion rootProject.ext.targetSdkVersion
resValue "string", "build_config_package", "com.nativeapp"
}
project2 {
minSdkVersion rootProject.ext.minSdkVersion
applicationId 'com.nativeapp.projectb'
targetSdkVersion rootProject.ext.targetSdkVersion
resValue "string", "build_config_package", "com.nativeapp"
}
}

还要确保 applicationId 和 resValue 以您的应用程序包名称开头

在我的例子中,它是“nativeapp”,但您可以在 MainActivity.java 文件中找到您的。

如果深入 android/app/main/java/com/目录,您可以找到它。

在此之后,您可以在需要时配置您的脚本,如下所示

"scripts": {
"android:project1": "ENVFILE=.env.development.projecta react-native run-android --variant=projectaDebug --appIdSuffix=projecta",
"android:project2": "ENVFILE=.env.development.projectb.android react-native run-android --variant=projectbDebug --appIdSuffix=projectb",}

注意:添加脚本时,变体必须是 flavor 名称,例如“project2”后跟“Debug”=“projectb”,因为这是您的默认构建类型

还要确保您已在 android/app/src/中为每种口味创建了相关文件夹。

以我为例

android/app/src/projecta/
android/app/src/projecta/

如果所有设置正确,当您使用您创建的脚本构建时,它应该创建正确的 res 文件夹和 android list 文件。

如果您想更改每个单独应用程序实例的名称,请更改 res/values 目录中的 strings.xml。

<resources>
<string name="app_name">Project1</string> //this will be the name of your app when its built in your emulator
</resources>

关于javascript - 我如何告诉 react-native 要查看的 .env 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57461135/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com