Пустой объект конфигурации в JS

#react-native #gradle #fastlane #android-productflavors #react-native-config

Вопрос:

Используя RN 64.0 и fastlane, у меня есть следующая команда сборки

 desc 'Build the Staging Android application.'
    lane :build_staging do
      gradle(task: 'clean', project_dir: 'android/')
      gradle(task: 'assemble', flavor: "staging", build_type: 'release', project_dir: 'android/')
  end
 

В app/build.gradle я добавил файлы env. config примерно так:

 project.ext.envConfigFiles = [
    stagingdebug: ".env.staging",
    stagingrelease: ".env.staging",
    productiondebug: ".env.production",
    productionrelease: ".env.production",
]
 

По какой — то причине, когда я запускаю команду сборки , другими словами fastlane android build_production , и устанавливаю apk ее на устройство, файл конфигурации является пустым объектом при использовании из import env from 'react-native-config';

Когда я запускаю npx react-native run-android --variant stagingrelease" , приложение работает так, как ожидалось, и получает конфигурацию.

Ответ №1:

введение gradle(...) команды hte env на fastlane сделало свое дело. Ожидаемое поведение состояло в том, что он разрешал правильный файл на основе {{flavor}}{{build type}} того, что, похоже, не работает с fastlane на данный момент.

Решение:

 gradle(task: 'assemble', flavor: "staging", build_type: 'Release', project_dir: 'android/', system_properties: {"ENVFILE": ".env.staging" })