在fastlane中运行健身脚本时如何获得用户选择的方案?

时间:2017-06-20 04:59:16

标签: ios fastlane

我已将fastlane添加到我的iOS项目中以创建.ipa

使用以下脚本我可以创建ipa。

  desc "Generate .ipa"
  lane :createipa do
    gym(clean: true, export_method: ENV["EXPORT_METHOD"], output_directory: ENV["DIRECTORY"])
  end

健身房有2个其他属性,一个是 scheme ,它与不同的方案有关,你想要创建ipa,另一个是 output_name ,这是ipa的名字。 现在,当我使用没有方案的脚本时,它在运行时要求我选择方案,我想在运行时将用户输入方案保存到变量并将其设置为 output_name ,有没有办法做到这一点?

1 个答案:

答案 0 :(得分:1)

由于您正在寻找用户输入,为什么不在运行bundle exec fastlane createipa scheme:MySchemeName 时将方案名称传递给脚本?像这样:

Fastfile

并将您的 desc "Generate .ipa" lane :createipa do |options| gym( clean: true, export_method: ENV["EXPORT_METHOD"], output_directory: ENV["DIRECTORY"], scheme: options[:scheme] ) end 修改为:

ENV

或者,您可以将其另存为XCODE_SCHEME=MySchemeName bundle exec fastlane 条目:

desc 'Generate the ipa based on the scheme selected by the user' lane :createipa do glob_pattern = 'MyApp/MyApp.xcodeproj/**/*.xcscheme' schemes = Dir[glob_pattern].map do |scheme_filepath| File.basename(scheme_filepath) end prompt_text = 'Select a scheme:\n' schemes.each_index do |index| prompt_text << " #{index}. #{schemes[index]}\n" end prompt_text << '> ' print prompt_text selected_scheme_index = gets.to_i selected_scheme = schemes[selected_scheme_index] puts "Selected Scheme: #{selected_scheme}" ipa_output_name "#{selected_scheme}.ipa" gym( clean: true, export_method: ENV['EXPORT_METHOD'], output_directory: ENV['DIRECTORY'], scheme: selected_scheme, output_name: ipa_output_name ) end

要直接回答此问题,请使用此代码

{{1}}