将react-native-config与fastlane结合使用

son*_*xqt 1 react-native fastlane react-native-config

目前在我的反应本机应用程序中,我使用fastlane:beta和配置两个通道production。我用于react-native-config不同的环境配置(存储在 2 个文件中:.env.beta.env.production)。我怎样才能fastlane知道每个通道应该使用哪个环境文件?

Lyn*_*son 5

如果您在调用命令构建应用程序之前询问如何设置环境变量,您可以在Fastfile. 在您的 中Fastfile,在调用fastlane构建应用程序的操作之前,将ENV['ENVFILE']变量设置为指向您的.env.X文件。请参阅环境上的react-native-config文档

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
Run Code Online (Sandbox Code Playgroud)

更好的是,如果通道完全相同,您可能需要从命令行使用配置选项来调用它:

# 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
Run Code Online (Sandbox Code Playgroud)