Я создаю реактивный проект и переключаюсь между промежуточной и производственной средами с использованием библиотеки react-native-config. Мои среды определены в отдельных файлах .env (.env.dev, .env.staging, .env.prod), и у меня есть следующие сценарии npm, определенные в моем package.json
"scripts": {
"android-dev": "ENVFILE=.env.dev react-native run-android",
"android-staging": "ENVFILE=.env.staging react-native run-android",
"android-prod": "ENVFILE=.env.prod react-native run-android",
"android-release": "react-native run-android --variant=release",
"build-android-staging": "export ENVFILE=.env.staging && cd android && ./gradlew assembleRelease && cd ..",
"build-android-prod": "export ENVFILE=.env.prod && cd android && ./gradlew assembleRelease && cd .."
}
В моем build.gradle я разместил следующее
project.ext.envConfigFiles = [
debug: ".env.staging",
release: ".env.prod",
anycustombuildlowercase: ".env.staging",
]
Я думаю, что существует конфликт между сценариями и кодом build.gradle, потому что когда я запускаю npm run build-android-staging
, он создает выпуск в производственной среде. Если я удаляю код в build.gradle и вызываю API, я получаю ошибку Fatal Exception: java.lang.IllegalArgumentException
unexpected url: undefinedapi/
. Что мне нужно изменить, чтобы мои сценарии сборки могли работать с правильными средами?