currently in my react-native app I configure two lanes using fastlane: beta and production. I'm using react-native-config for different environment configs (stored in 2 files: .env.beta and .env.production). How can I let fastlane know which env file should be used for each lane ?
Using react-native-config with fastlane
3.4k views Asked by sonlexqt At
2
There are 2 answers
0
On
If you asking how to set environment variables before you call a command to build your app, you can do this in your Fastfile. In your Fastfile, before you call the fastlane action to build your app, set the ENV['ENVFILE'] variable to point to your .env.X file. See the react-native-config docs on environments.
lane :build_beta do
ENV['ENVFILE'] = '.env.beta'
build_ios_app(...) # you may be using `gym` instead.
end
lane :build_production do
ENV['ENVFILE'] = '.env.production'
build_ios_app(...) # you may be using `gym` instead.
end
Better yet, if the lane is exactly the same, you may want to call it with the config option from the command line:
# call me from the command line like: `fastlane build_sonlexqts_app config:beta`
lane :build_sonlexqts_app |options|
config = options[:config]
unless %w(beta production).include?(config)
UI.user_error!("#{config} is invalid. Please pass either 'beta' or 'production'")
end
ENV['ENVFILE'] = ".env.#{config}"
build_ios_app(...) # you may be using `gym` instead.
end
I managed to get
react-native-configto pick up the correct config file using the environment variables feature provided byfastlaneby usingfastlane [lane] --env [beta|production].