fastlane 0.11.0 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/lib/assets/FastfileTemplate +3 -0
 - data/lib/fastlane.rb +1 -0
 - data/lib/fastlane/action.rb +5 -0
 - data/lib/fastlane/action_collector.rb +3 -1
 - data/lib/fastlane/actions/actions_helper.rb +5 -0
 - data/lib/fastlane/actions/add_git_tag.rb +21 -15
 - data/lib/fastlane/actions/cert.rb +2 -2
 - data/lib/fastlane/actions/clean_build_artifacts.rb +1 -1
 - data/lib/fastlane/actions/commit_version_bump.rb +15 -8
 - data/lib/fastlane/actions/crashlytics.rb +51 -66
 - data/lib/fastlane/actions/deliver.rb +32 -15
 - data/lib/fastlane/actions/deploygate.rb +29 -22
 - data/lib/fastlane/actions/ensure_git_status_clean.rb +1 -1
 - data/lib/fastlane/actions/frameit.rb +2 -2
 - data/lib/fastlane/actions/gcovr.rb +2 -2
 - data/lib/fastlane/actions/hipchat.rb +36 -23
 - data/lib/fastlane/actions/hockey.rb +37 -23
 - data/lib/fastlane/actions/increment_build_number.rb +14 -19
 - data/lib/fastlane/actions/increment_version_number.rb +42 -44
 - data/lib/fastlane/actions/install_carthage.rb +1 -1
 - data/lib/fastlane/actions/install_cocapods.rb +1 -1
 - data/lib/fastlane/actions/ipa.rb +69 -47
 - data/lib/fastlane/actions/notify.rb +1 -1
 - data/lib/fastlane/actions/pem.rb +1 -1
 - data/lib/fastlane/actions/produce.rb +3 -4
 - data/lib/fastlane/actions/push_to_git_remote.rb +24 -14
 - data/lib/fastlane/actions/register_devices.rb +23 -11
 - data/lib/fastlane/actions/reset_git_repo.rb +13 -5
 - data/lib/fastlane/actions/resign.rb +19 -16
 - data/lib/fastlane/actions/s3.rb +56 -37
 - data/lib/fastlane/actions/sigh.rb +1 -1
 - data/lib/fastlane/actions/slack.rb +31 -13
 - data/lib/fastlane/actions/snapshot.rb +13 -6
 - data/lib/fastlane/actions/team_id.rb +1 -1
 - data/lib/fastlane/actions/team_name.rb +1 -1
 - data/lib/fastlane/actions/testmunk.rb +28 -14
 - data/lib/fastlane/actions/typetalk.rb +1 -1
 - data/lib/fastlane/actions/update_fastlane.rb +115 -0
 - data/lib/fastlane/actions/update_project_code_signing.rb +22 -7
 - data/lib/fastlane/actions/xcode_select.rb +1 -1
 - data/lib/fastlane/actions/xcodebuild.rb +56 -12
 - data/lib/fastlane/actions_list.rb +2 -2
 - data/lib/fastlane/configuration_helper.rb +28 -0
 - data/lib/fastlane/fast_file.rb +17 -0
 - data/lib/fastlane/fastlane_folder.rb +3 -3
 - data/lib/fastlane/setup.rb +11 -5
 - data/lib/fastlane/version.rb +1 -1
 - metadata +7 -5
 
| 
         @@ -7,9 +7,9 @@ module Fastlane 
     | 
|
| 
       7 
7 
     | 
    
         
             
                    require 'frameit'
         
     | 
| 
       8 
8 
     | 
    
         | 
| 
       9 
9 
     | 
    
         
             
                    begin
         
     | 
| 
       10 
     | 
    
         
            -
                      FastlaneCore::UpdateChecker.start_looking_for_update('frameit')
         
     | 
| 
      
 10 
     | 
    
         
            +
                      FastlaneCore::UpdateChecker.start_looking_for_update('frameit') unless Helper.is_test?
         
     | 
| 
       11 
11 
     | 
    
         
             
                      color = Frameit::Editor::Color::BLACK
         
     | 
| 
       12 
     | 
    
         
            -
                      color = Frameit::Editor::Color::SILVER if [:silver, :white].include?(params 
     | 
| 
      
 12 
     | 
    
         
            +
                      color = Frameit::Editor::Color::SILVER if [:silver, :white].include?(params)
         
     | 
| 
       13 
13 
     | 
    
         | 
| 
       14 
14 
     | 
    
         
             
                      screenshots_folder = Actions.lane_context[SharedValues::SNAPSHOT_SCREENSHOTS_PATH]
         
     | 
| 
       15 
15 
     | 
    
         
             
                      screenshots_folder ||= FastlaneFolder.path
         
     | 
| 
         @@ -60,8 +60,8 @@ module Fastlane 
     | 
|
| 
       60 
60 
     | 
    
         
             
                    gcovr_args = nil
         
     | 
| 
       61 
61 
     | 
    
         | 
| 
       62 
62 
     | 
    
         
             
                    # Allows for a whole variety of configurations
         
     | 
| 
       63 
     | 
    
         
            -
                    if params. 
     | 
| 
       64 
     | 
    
         
            -
                      params_hash = params 
     | 
| 
      
 63 
     | 
    
         
            +
                    if params.is_a? Hash
         
     | 
| 
      
 64 
     | 
    
         
            +
                      params_hash = params
         
     | 
| 
       65 
65 
     | 
    
         | 
| 
       66 
66 
     | 
    
         
             
                      # Check if an output path was given
         
     | 
| 
       67 
67 
     | 
    
         
             
                      if params_hash.has_key? :output
         
     | 
| 
         @@ -4,26 +4,12 @@ module Fastlane 
     | 
|
| 
       4 
4 
     | 
    
         
             
                end
         
     | 
| 
       5 
5 
     | 
    
         | 
| 
       6 
6 
     | 
    
         
             
                class HipchatAction < Action
         
     | 
| 
       7 
     | 
    
         
            -
                  def self.run( 
     | 
| 
       8 
     | 
    
         
            -
                    options = { message: '',
         
     | 
| 
       9 
     | 
    
         
            -
                                success: true,
         
     | 
| 
       10 
     | 
    
         
            -
                                channel: nil
         
     | 
| 
       11 
     | 
    
         
            -
                              }.merge(params.first || {})
         
     | 
| 
       12 
     | 
    
         
            -
             
     | 
| 
      
 7 
     | 
    
         
            +
                  def self.run(options)
         
     | 
| 
       13 
8 
     | 
    
         
             
                    require 'net/http'
         
     | 
| 
       14 
9 
     | 
    
         
             
                    require 'uri'
         
     | 
| 
       15 
10 
     | 
    
         | 
| 
       16 
     | 
    
         
            -
                    api_token =  
     | 
| 
       17 
     | 
    
         
            -
                    api_version =  
     | 
| 
       18 
     | 
    
         
            -
             
     | 
| 
       19 
     | 
    
         
            -
                    unless api_token
         
     | 
| 
       20 
     | 
    
         
            -
                      Helper.log.fatal "Please add 'ENV[\"HIPCHAT_API_TOKEN\"] = \"your token\"' to your Fastfile's `before_all` section.".red
         
     | 
| 
       21 
     | 
    
         
            -
                      raise 'No HIPCHAT_API_TOKEN given.'.red
         
     | 
| 
       22 
     | 
    
         
            -
                    end
         
     | 
| 
       23 
     | 
    
         
            -
                    if api_version.nil? || ![1, 2].include?(api_version[0].to_i)
         
     | 
| 
       24 
     | 
    
         
            -
                      Helper.log.fatal "Please add 'ENV[\"HIPCHAT_API_VERSION\"] = \"1 or 2\"' to your Fastfile's `before_all` section.".red
         
     | 
| 
       25 
     | 
    
         
            -
                      raise 'No HIPCHAT_API_VERSION given.'.red
         
     | 
| 
       26 
     | 
    
         
            -
                    end
         
     | 
| 
      
 11 
     | 
    
         
            +
                    api_token = options[:api_token]
         
     | 
| 
      
 12 
     | 
    
         
            +
                    api_version = options[:version]
         
     | 
| 
       27 
13 
     | 
    
         | 
| 
       28 
14 
     | 
    
         
             
                    channel = options[:channel]
         
     | 
| 
       29 
15 
     | 
    
         
             
                    color = (options[:success] ? 'green' : 'red')
         
     | 
| 
         @@ -94,12 +80,39 @@ module Fastlane 
     | 
|
| 
       94 
80 
     | 
    
         | 
| 
       95 
81 
     | 
    
         
             
                  def self.available_options
         
     | 
| 
       96 
82 
     | 
    
         
             
                    [
         
     | 
| 
       97 
     | 
    
         
            -
                       
     | 
| 
       98 
     | 
    
         
            -
             
     | 
| 
       99 
     | 
    
         
            -
             
     | 
| 
       100 
     | 
    
         
            -
             
     | 
| 
       101 
     | 
    
         
            -
                       
     | 
| 
       102 
     | 
    
         
            -
             
     | 
| 
      
 83 
     | 
    
         
            +
                      FastlaneCore::ConfigItem.new(key: :message,
         
     | 
| 
      
 84 
     | 
    
         
            +
                                                   env_name: "FL_HIPCHAT_MESSAGE",
         
     | 
| 
      
 85 
     | 
    
         
            +
                                                   description: "The message to post on HipChat",
         
     | 
| 
      
 86 
     | 
    
         
            +
                                                   default_value: ''),
         
     | 
| 
      
 87 
     | 
    
         
            +
                      FastlaneCore::ConfigItem.new(key: :channel,
         
     | 
| 
      
 88 
     | 
    
         
            +
                                                   env_name: "FL_HIPCHAT_CHANNEL",
         
     | 
| 
      
 89 
     | 
    
         
            +
                                                   description: "The room or @username",
         
     | 
| 
      
 90 
     | 
    
         
            +
                                                   optional: true),
         
     | 
| 
      
 91 
     | 
    
         
            +
                      FastlaneCore::ConfigItem.new(key: :api_token,
         
     | 
| 
      
 92 
     | 
    
         
            +
                                                   env_name: "HIPCHAT_API_TOKEN",
         
     | 
| 
      
 93 
     | 
    
         
            +
                                                   description: "Hipchat API Token",
         
     | 
| 
      
 94 
     | 
    
         
            +
                                                   verify_block: Proc.new do |value|
         
     | 
| 
      
 95 
     | 
    
         
            +
                                                    unless value.to_s.length > 0
         
     | 
| 
      
 96 
     | 
    
         
            +
                                                      Helper.log.fatal "Please add 'ENV[\"HIPCHAT_API_TOKEN\"] = \"your token\"' to your Fastfile's `before_all` section.".red
         
     | 
| 
      
 97 
     | 
    
         
            +
                                                      raise 'No HIPCHAT_API_TOKEN given.'.red
         
     | 
| 
      
 98 
     | 
    
         
            +
                                                    end
         
     | 
| 
      
 99 
     | 
    
         
            +
                                                   end),
         
     | 
| 
      
 100 
     | 
    
         
            +
                      FastlaneCore::ConfigItem.new(key: :success,
         
     | 
| 
      
 101 
     | 
    
         
            +
                                                   env_name: "FL_HIPCHAT_SUCCESS",
         
     | 
| 
      
 102 
     | 
    
         
            +
                                                   description: "Was this build successful? (true/false)",
         
     | 
| 
      
 103 
     | 
    
         
            +
                                                   optional: true,
         
     | 
| 
      
 104 
     | 
    
         
            +
                                                   default_value: true,
         
     | 
| 
      
 105 
     | 
    
         
            +
                                                   is_string: false),
         
     | 
| 
      
 106 
     | 
    
         
            +
                      FastlaneCore::ConfigItem.new(key: :version,
         
     | 
| 
      
 107 
     | 
    
         
            +
                                                   env_name: "HIPCHAT_API_VERSION",
         
     | 
| 
      
 108 
     | 
    
         
            +
                                                   description: "Version of the Hipchat API. Must be 1 or 2",
         
     | 
| 
      
 109 
     | 
    
         
            +
                                                   verify_block: Proc.new do |value|
         
     | 
| 
      
 110 
     | 
    
         
            +
                                                    if api_version.nil? || ![1, 2].include?(api_version[0].to_i)
         
     | 
| 
      
 111 
     | 
    
         
            +
                                                      Helper.log.fatal "Please add 'ENV[\"HIPCHAT_API_VERSION\"] = \"1 or 2\"' to your Fastfile's `before_all` section.".red
         
     | 
| 
      
 112 
     | 
    
         
            +
                                                      raise 'No HIPCHAT_API_VERSION given.'.red
         
     | 
| 
      
 113 
     | 
    
         
            +
                                                    end
         
     | 
| 
      
 114 
     | 
    
         
            +
                                                   end)
         
     | 
| 
      
 115 
     | 
    
         
            +
                      ]
         
     | 
| 
       103 
116 
     | 
    
         
             
                  end
         
     | 
| 
       104 
117 
     | 
    
         | 
| 
       105 
118 
     | 
    
         
             
                  def self.author
         
     | 
| 
         @@ -10,37 +10,25 @@ module Fastlane 
     | 
|
| 
       10 
10 
     | 
    
         
             
                end
         
     | 
| 
       11 
11 
     | 
    
         | 
| 
       12 
12 
     | 
    
         
             
                class HockeyAction < Action
         
     | 
| 
       13 
     | 
    
         
            -
                  def self.run( 
     | 
| 
      
 13 
     | 
    
         
            +
                  def self.run(options)
         
     | 
| 
       14 
14 
     | 
    
         
             
                    # Available options: http://support.hockeyapp.net/kb/api/api-versions#upload-version
         
     | 
| 
       15 
     | 
    
         
            -
                    options = {
         
     | 
| 
       16 
     | 
    
         
            -
                      notes: 'No changelog given',
         
     | 
| 
       17 
     | 
    
         
            -
                      status: 2,
         
     | 
| 
       18 
     | 
    
         
            -
                      notify: 1
         
     | 
| 
       19 
     | 
    
         
            -
                    }.merge(params.first)
         
     | 
| 
       20 
     | 
    
         
            -
             
     | 
| 
       21 
     | 
    
         
            -
                    options[:ipa] ||= Actions.lane_context[SharedValues::IPA_OUTPUT_PATH]
         
     | 
| 
       22 
     | 
    
         
            -
                    options[:dsym] ||= Actions.lane_context[SharedValues::DSYM_OUTPUT_PATH]
         
     | 
| 
       23 
15 
     | 
    
         | 
| 
       24 
16 
     | 
    
         
             
                    require 'shenzhen'
         
     | 
| 
       25 
17 
     | 
    
         
             
                    require 'shenzhen/plugins/hockeyapp'
         
     | 
| 
       26 
18 
     | 
    
         | 
| 
       27 
     | 
    
         
            -
                    raise "No API Token for Hockey given, pass using `api_token: 'token'`. Open https://rink.hockeyapp.net/manage/auth_tokens to get one".red unless options[:api_token].to_s.length > 0
         
     | 
| 
       28 
     | 
    
         
            -
                    raise "No IPA file given or found, pass using `ipa: 'path.ipa'`".red unless options[:ipa]
         
     | 
| 
       29 
     | 
    
         
            -
                    raise "IPA file on path '#{File.expand_path(options[:ipa])}' not found".red unless File.exist?(options[:ipa])
         
     | 
| 
       30 
     | 
    
         
            -
             
     | 
| 
       31 
19 
     | 
    
         
             
                    if options[:dsym]
         
     | 
| 
       32 
     | 
    
         
            -
                       
     | 
| 
      
 20 
     | 
    
         
            +
                      dsym_filename = options[:dsym]
         
     | 
| 
       33 
21 
     | 
    
         
             
                    else
         
     | 
| 
       34 
22 
     | 
    
         
             
                      dsym_path = options[:ipa].gsub('ipa', 'app.dSYM.zip')
         
     | 
| 
       35 
23 
     | 
    
         
             
                      if File.exist?(dsym_path)
         
     | 
| 
       36 
     | 
    
         
            -
                         
     | 
| 
      
 24 
     | 
    
         
            +
                        dsym_filename = dsym_path
         
     | 
| 
       37 
25 
     | 
    
         
             
                      else
         
     | 
| 
       38 
26 
     | 
    
         
             
                        Helper.log.info "Symbols not found on path #{File.expand_path(dsym_path)}. Crashes won't be symbolicated properly".yellow
         
     | 
| 
       39 
27 
     | 
    
         
             
                      end
         
     | 
| 
       40 
28 
     | 
    
         
             
                    end
         
     | 
| 
       41 
29 
     | 
    
         | 
| 
       42 
     | 
    
         
            -
                    raise "Symbols on path '#{File.expand_path( 
     | 
| 
       43 
     | 
    
         
            -
                                                                                                            !File.exist?( 
     | 
| 
      
 30 
     | 
    
         
            +
                    raise "Symbols on path '#{File.expand_path(dsym_filename)}' not found".red if (dsym_filename &&
         
     | 
| 
      
 31 
     | 
    
         
            +
                                                                                                            !File.exist?(dsym_filename))
         
     | 
| 
       44 
32 
     | 
    
         | 
| 
       45 
33 
     | 
    
         
             
                    Helper.log.info 'Starting with ipa upload to HockeyApp... this could take some time.'.green
         
     | 
| 
       46 
34 
     | 
    
         | 
| 
         @@ -70,12 +58,38 @@ module Fastlane 
     | 
|
| 
       70 
58 
     | 
    
         | 
| 
       71 
59 
     | 
    
         
             
                  def self.available_options
         
     | 
| 
       72 
60 
     | 
    
         
             
                    [
         
     | 
| 
       73 
     | 
    
         
            -
                       
     | 
| 
       74 
     | 
    
         
            -
             
     | 
| 
       75 
     | 
    
         
            -
             
     | 
| 
       76 
     | 
    
         
            -
             
     | 
| 
       77 
     | 
    
         
            -
             
     | 
| 
       78 
     | 
    
         
            -
             
     | 
| 
      
 61 
     | 
    
         
            +
                      FastlaneCore::ConfigItem.new(key: :api_token,
         
     | 
| 
      
 62 
     | 
    
         
            +
                                                   env_name: "FL_HOCKEY_API_TOKEN",
         
     | 
| 
      
 63 
     | 
    
         
            +
                                                   description: "API Token for Hockey Access",
         
     | 
| 
      
 64 
     | 
    
         
            +
                                                   verify_block: Proc.new do |value|
         
     | 
| 
      
 65 
     | 
    
         
            +
                                                      raise "No API token for Hockey given, pass using `api_token: 'token'`".red unless (value and not value.empty?)
         
     | 
| 
      
 66 
     | 
    
         
            +
                                                   end),
         
     | 
| 
      
 67 
     | 
    
         
            +
                      FastlaneCore::ConfigItem.new(key: :ipa,
         
     | 
| 
      
 68 
     | 
    
         
            +
                                                   env_name: "FL_HOCKEY_IPA",
         
     | 
| 
      
 69 
     | 
    
         
            +
                                                   description: "Path to your IPA file. Optional if you use the `ipa` or `xcodebuild` action",
         
     | 
| 
      
 70 
     | 
    
         
            +
                                                   default_value: Actions.lane_context[SharedValues::IPA_OUTPUT_PATH],
         
     | 
| 
      
 71 
     | 
    
         
            +
                                                   verify_block: Proc.new do |value|
         
     | 
| 
      
 72 
     | 
    
         
            +
                                                    raise "No IPA file given or found, pass using `ipa: 'path/app.ipa'`".red unless File.exists?(value)
         
     | 
| 
      
 73 
     | 
    
         
            +
                                                   end),
         
     | 
| 
      
 74 
     | 
    
         
            +
                      FastlaneCore::ConfigItem.new(key: :dsym,
         
     | 
| 
      
 75 
     | 
    
         
            +
                                                   env_name: "FL_HOCKEY_DSYM",
         
     | 
| 
      
 76 
     | 
    
         
            +
                                                   description: "Path to your DSYM file",
         
     | 
| 
      
 77 
     | 
    
         
            +
                                                   optional: true,
         
     | 
| 
      
 78 
     | 
    
         
            +
                                                   verify_block: Proc.new do |value|
         
     | 
| 
      
 79 
     | 
    
         
            +
                                                    # validation is done in the action
         
     | 
| 
      
 80 
     | 
    
         
            +
                                                   end),
         
     | 
| 
      
 81 
     | 
    
         
            +
                      FastlaneCore::ConfigItem.new(key: :notes,
         
     | 
| 
      
 82 
     | 
    
         
            +
                                                   env_name: "FL_HOCKEY_NOTES",
         
     | 
| 
      
 83 
     | 
    
         
            +
                                                   description: "Beta Notes",
         
     | 
| 
      
 84 
     | 
    
         
            +
                                                   default_value: "No changelog given"),
         
     | 
| 
      
 85 
     | 
    
         
            +
                      FastlaneCore::ConfigItem.new(key: :notify,
         
     | 
| 
      
 86 
     | 
    
         
            +
                                                   env_name: "FL_HOCKEY_NOTIFY",
         
     | 
| 
      
 87 
     | 
    
         
            +
                                                   description: "Notify testers? 1 for yes",
         
     | 
| 
      
 88 
     | 
    
         
            +
                                                   default_value: 1),
         
     | 
| 
      
 89 
     | 
    
         
            +
                      FastlaneCore::ConfigItem.new(key: :status,
         
     | 
| 
      
 90 
     | 
    
         
            +
                                                   env_name: "FL_HOCKEY_STATUS",
         
     | 
| 
      
 91 
     | 
    
         
            +
                                                   description: "Download status: 1 = No user can download; 2 = Available for download",
         
     | 
| 
      
 92 
     | 
    
         
            +
                                                   default_value: "2")
         
     | 
| 
       79 
93 
     | 
    
         
             
                    ]
         
     | 
| 
       80 
94 
     | 
    
         
             
                  end
         
     | 
| 
       81 
95 
     | 
    
         | 
| 
         @@ -17,22 +17,7 @@ module Fastlane 
     | 
|
| 
       17 
17 
     | 
    
         
             
                    # Attention: This is NOT the version number - but the build number
         
     | 
| 
       18 
18 
     | 
    
         | 
| 
       19 
19 
     | 
    
         
             
                    begin
         
     | 
| 
       20 
     | 
    
         
            -
                       
     | 
| 
       21 
     | 
    
         
            -
             
     | 
| 
       22 
     | 
    
         
            -
                      case first_param
         
     | 
| 
       23 
     | 
    
         
            -
                      when NilClass
         
     | 
| 
       24 
     | 
    
         
            -
                        custom_number = nil
         
     | 
| 
       25 
     | 
    
         
            -
                        folder = '.'
         
     | 
| 
       26 
     | 
    
         
            -
                      when Fixnum
         
     | 
| 
       27 
     | 
    
         
            -
                        custom_number = first_param
         
     | 
| 
       28 
     | 
    
         
            -
                        folder = '.'
         
     | 
| 
       29 
     | 
    
         
            -
                      when String
         
     | 
| 
       30 
     | 
    
         
            -
                        custom_number = first_param
         
     | 
| 
       31 
     | 
    
         
            -
                        folder = '.'
         
     | 
| 
       32 
     | 
    
         
            -
                      when Hash
         
     | 
| 
       33 
     | 
    
         
            -
                        custom_number = first_param[:build_number]
         
     | 
| 
       34 
     | 
    
         
            -
                        folder = first_param[:xcodeproj] ? File.join('.', first_param[:xcodeproj], '..') : '.'
         
     | 
| 
       35 
     | 
    
         
            -
                      end
         
     | 
| 
      
 20 
     | 
    
         
            +
                      folder = params[:xcodeproj] ? File.join('.', params[:xcodeproj], '..') : '.'
         
     | 
| 
       36 
21 
     | 
    
         | 
| 
       37 
22 
     | 
    
         
             
                      command_prefix = [
         
     | 
| 
       38 
23 
     | 
    
         
             
                        'cd',
         
     | 
| 
         @@ -43,7 +28,7 @@ module Fastlane 
     | 
|
| 
       43 
28 
     | 
    
         
             
                      command = [
         
     | 
| 
       44 
29 
     | 
    
         
             
                        command_prefix,
         
     | 
| 
       45 
30 
     | 
    
         
             
                        'agvtool',
         
     | 
| 
       46 
     | 
    
         
            -
                         
     | 
| 
      
 31 
     | 
    
         
            +
                        params[:build_number] ? "new-version -all #{params[:build_number]}" : 'next-version -all'
         
     | 
| 
       47 
32 
     | 
    
         
             
                      ].join(' ')
         
     | 
| 
       48 
33 
     | 
    
         | 
| 
       49 
34 
     | 
    
         
             
                      if Helper.test?
         
     | 
| 
         @@ -69,8 +54,18 @@ module Fastlane 
     | 
|
| 
       69 
54 
     | 
    
         | 
| 
       70 
55 
     | 
    
         
             
                  def self.available_options
         
     | 
| 
       71 
56 
     | 
    
         
             
                    [
         
     | 
| 
       72 
     | 
    
         
            -
                       
     | 
| 
       73 
     | 
    
         
            -
             
     | 
| 
      
 57 
     | 
    
         
            +
                      FastlaneCore::ConfigItem.new(key: :build_number,
         
     | 
| 
      
 58 
     | 
    
         
            +
                                                   env_name: "FL_BUILD_NUMBER_BUILD_NUMBER",
         
     | 
| 
      
 59 
     | 
    
         
            +
                                                   description: "Change to a specific version",
         
     | 
| 
      
 60 
     | 
    
         
            +
                                                   optional: true,
         
     | 
| 
      
 61 
     | 
    
         
            +
                                                   is_string: false),
         
     | 
| 
      
 62 
     | 
    
         
            +
                      FastlaneCore::ConfigItem.new(key: :xcodeproj,
         
     | 
| 
      
 63 
     | 
    
         
            +
                                                   env_name: "FL_BUILD_NUMBER_PROJECT",
         
     | 
| 
      
 64 
     | 
    
         
            +
                                                   description: "optional, you must specify the path to your main Xcode project if it is not in the project root directory",
         
     | 
| 
      
 65 
     | 
    
         
            +
                                                   verify_block: Proc.new do |value|
         
     | 
| 
      
 66 
     | 
    
         
            +
                                                    raise "Please pass the path to the project, not the workspace".red if value.include?"workspace"
         
     | 
| 
      
 67 
     | 
    
         
            +
                                                    raise "Could not find Xcode project".red if (not File.exists?(value) and not Helper.is_test?)
         
     | 
| 
      
 68 
     | 
    
         
            +
                                                   end)
         
     | 
| 
       74 
69 
     | 
    
         
             
                    ]
         
     | 
| 
       75 
70 
     | 
    
         
             
                  end
         
     | 
| 
       76 
71 
     | 
    
         | 
| 
         @@ -16,34 +16,8 @@ module Fastlane 
     | 
|
| 
       16 
16 
     | 
    
         
             
                    # https://developer.apple.com/library/ios/qa/qa1827/_index.html
         
     | 
| 
       17 
17 
     | 
    
         | 
| 
       18 
18 
     | 
    
         
             
                    begin
         
     | 
| 
       19 
     | 
    
         
            -
                      first_param = (params.first rescue nil)
         
     | 
| 
       20 
19 
     | 
    
         
             
                      folder = '.' #Current folder is the default folder
         
     | 
| 
       21 
20 
     | 
    
         | 
| 
       22 
     | 
    
         
            -
                      case first_param
         
     | 
| 
       23 
     | 
    
         
            -
                        when NilClass
         
     | 
| 
       24 
     | 
    
         
            -
                          release_task = 'patch' #Patch is the default action
         
     | 
| 
       25 
     | 
    
         
            -
                        when String
         
     | 
| 
       26 
     | 
    
         
            -
                          release_task = first_param
         
     | 
| 
       27 
     | 
    
         
            -
                        when Hash
         
     | 
| 
       28 
     | 
    
         
            -
                          release_task = first_param[:release_task] ? first_param[:release_task] : "patch"
         
     | 
| 
       29 
     | 
    
         
            -
                          folder = first_param[:xcodeproj] ? File.join('.', first_param[:xcodeproj], '..') : '.'
         
     | 
| 
       30 
     | 
    
         
            -
                      end
         
     | 
| 
       31 
     | 
    
         
            -
             
     | 
| 
       32 
     | 
    
         
            -
                      # Verify integrity
         
     | 
| 
       33 
     | 
    
         
            -
                      case release_task
         
     | 
| 
       34 
     | 
    
         
            -
                        when /\d.\d.\d/
         
     | 
| 
       35 
     | 
    
         
            -
                          specific_version_number = release_task
         
     | 
| 
       36 
     | 
    
         
            -
                          release_task = 'specific_version'
         
     | 
| 
       37 
     | 
    
         
            -
                        when "patch"
         
     | 
| 
       38 
     | 
    
         
            -
                          release_task = 'patch'
         
     | 
| 
       39 
     | 
    
         
            -
                        when "minor"
         
     | 
| 
       40 
     | 
    
         
            -
                          release_task = 'minor'
         
     | 
| 
       41 
     | 
    
         
            -
                        when "major"
         
     | 
| 
       42 
     | 
    
         
            -
                          release_task = "major"
         
     | 
| 
       43 
     | 
    
         
            -
                        else
         
     | 
| 
       44 
     | 
    
         
            -
                          raise 'Invalid parameter #{release_task}'
         
     | 
| 
       45 
     | 
    
         
            -
                      end
         
     | 
| 
       46 
     | 
    
         
            -
             
     | 
| 
       47 
21 
     | 
    
         
             
                      command_prefix = [
         
     | 
| 
       48 
22 
     | 
    
         
             
                          'cd',
         
     | 
| 
       49 
23 
     | 
    
         
             
                          File.expand_path(folder).shellescape,
         
     | 
| 
         @@ -55,7 +29,7 @@ module Fastlane 
     | 
|
| 
       55 
29 
     | 
    
         
             
                      else
         
     | 
| 
       56 
30 
     | 
    
         
             
                        current_version = `#{command_prefix} agvtool what-marketing-version -terse1`.split("\n").last
         
     | 
| 
       57 
31 
     | 
    
         
             
                        raise 'Your current version (#{current_version}) does not respect the format A.B.C' unless current_version.match(/\d.\d.\d/)
         
     | 
| 
       58 
     | 
    
         
            -
                        #Check if CFBundleShortVersionString is the same for each occurrence
         
     | 
| 
      
 32 
     | 
    
         
            +
                        # Check if CFBundleShortVersionString is the same for each occurrence
         
     | 
| 
       59 
33 
     | 
    
         
             
                        allBundles = `#{command_prefix} agvtool what-marketing-version -terse`.split("\n")
         
     | 
| 
       60 
34 
     | 
    
         
             
                        allBundles.each do |bundle|
         
     | 
| 
       61 
35 
     | 
    
         
             
                          raise 'Ensure all you CFBundleShortVersionString are equals in your project ' unless bundle.end_with? "=#{current_version}"
         
     | 
| 
         @@ -63,21 +37,26 @@ module Fastlane 
     | 
|
| 
       63 
37 
     | 
    
         
             
                        version_array = current_version.split(".").map(&:to_i)
         
     | 
| 
       64 
38 
     | 
    
         
             
                      end
         
     | 
| 
       65 
39 
     | 
    
         | 
| 
       66 
     | 
    
         
            -
                       
     | 
| 
       67 
     | 
    
         
            -
                         
     | 
| 
       68 
     | 
    
         
            -
             
     | 
| 
       69 
     | 
    
         
            -
             
     | 
| 
       70 
     | 
    
         
            -
                         
     | 
| 
       71 
     | 
    
         
            -
                           
     | 
| 
       72 
     | 
    
         
            -
             
     | 
| 
       73 
     | 
    
         
            -
             
     | 
| 
       74 
     | 
    
         
            -
             
     | 
| 
       75 
     | 
    
         
            -
             
     | 
| 
       76 
     | 
    
         
            -
             
     | 
| 
       77 
     | 
    
         
            -
             
     | 
| 
       78 
     | 
    
         
            -
                           
     | 
| 
       79 
     | 
    
         
            -
             
     | 
| 
       80 
     | 
    
         
            -
             
     | 
| 
      
 40 
     | 
    
         
            +
                      if params[:version_number]
         
     | 
| 
      
 41 
     | 
    
         
            +
                        # Specific version
         
     | 
| 
      
 42 
     | 
    
         
            +
                        next_version_number = params[:version_number]
         
     | 
| 
      
 43 
     | 
    
         
            +
                      else
         
     | 
| 
      
 44 
     | 
    
         
            +
                        case params[:bump_type]
         
     | 
| 
      
 45 
     | 
    
         
            +
                          when "patch"
         
     | 
| 
      
 46 
     | 
    
         
            +
                            version_array[2] = version_array[2] + 1
         
     | 
| 
      
 47 
     | 
    
         
            +
                            next_version_number = version_array.join(".")
         
     | 
| 
      
 48 
     | 
    
         
            +
                          when "minor"
         
     | 
| 
      
 49 
     | 
    
         
            +
                            version_array[1] = version_array[1] + 1
         
     | 
| 
      
 50 
     | 
    
         
            +
                            version_array[2] = version_array[2] = 0
         
     | 
| 
      
 51 
     | 
    
         
            +
                            next_version_number = version_array.join(".")
         
     | 
| 
      
 52 
     | 
    
         
            +
                          when "major"
         
     | 
| 
      
 53 
     | 
    
         
            +
                            version_array[0] = version_array[0] + 1
         
     | 
| 
      
 54 
     | 
    
         
            +
                            version_array[1] = version_array[1] = 0
         
     | 
| 
      
 55 
     | 
    
         
            +
                            version_array[1] = version_array[2] = 0
         
     | 
| 
      
 56 
     | 
    
         
            +
                            next_version_number = version_array.join(".")
         
     | 
| 
      
 57 
     | 
    
         
            +
                          when "specific_version"
         
     | 
| 
      
 58 
     | 
    
         
            +
                            next_version_number = specific_version_number
         
     | 
| 
      
 59 
     | 
    
         
            +
                        end
         
     | 
| 
       81 
60 
     | 
    
         
             
                      end
         
     | 
| 
       82 
61 
     | 
    
         | 
| 
       83 
62 
     | 
    
         
             
                      command = [
         
     | 
| 
         @@ -112,8 +91,27 @@ module Fastlane 
     | 
|
| 
       112 
91 
     | 
    
         | 
| 
       113 
92 
     | 
    
         
             
                  def self.available_options
         
     | 
| 
       114 
93 
     | 
    
         
             
                    [
         
     | 
| 
       115 
     | 
    
         
            -
                       
     | 
| 
       116 
     | 
    
         
            -
             
     | 
| 
      
 94 
     | 
    
         
            +
                      FastlaneCore::ConfigItem.new(key: :bump_type,
         
     | 
| 
      
 95 
     | 
    
         
            +
                                                   env_name: "FL_VERSION_NUMBER_BUMP_TYPE",
         
     | 
| 
      
 96 
     | 
    
         
            +
                                                   description: "The type of this version bump. Available: patch, minor, major",
         
     | 
| 
      
 97 
     | 
    
         
            +
                                                   default_value: "patch",
         
     | 
| 
      
 98 
     | 
    
         
            +
                                                   verify_block: Proc.new do |value|
         
     | 
| 
      
 99 
     | 
    
         
            +
                                                    raise "Available values are 'patch', 'minor' and 'major'" unless ['patch', 'minor', 'major'].include?value
         
     | 
| 
      
 100 
     | 
    
         
            +
                                                   end),
         
     | 
| 
      
 101 
     | 
    
         
            +
                      FastlaneCore::ConfigItem.new(key: :version_number,
         
     | 
| 
      
 102 
     | 
    
         
            +
                                                   env_name: "FL_VERSION_NUMBER_VERSION_NUMBER",
         
     | 
| 
      
 103 
     | 
    
         
            +
                                                   description: "Change to a specific version. This will replace the bump type value",
         
     | 
| 
      
 104 
     | 
    
         
            +
                                                   optional: true, 
         
     | 
| 
      
 105 
     | 
    
         
            +
                                                   verify_block: Proc.new do |value|
         
     | 
| 
      
 106 
     | 
    
         
            +
                                                    raise "Invalid version '#{value}' given. Must be x.y.z".red unless value.split(".").count == 3
         
     | 
| 
      
 107 
     | 
    
         
            +
                                                   end),
         
     | 
| 
      
 108 
     | 
    
         
            +
                      FastlaneCore::ConfigItem.new(key: :xcodeproj,
         
     | 
| 
      
 109 
     | 
    
         
            +
                                                   env_name: "FL_VERSION_NUMBER_PROJECT",
         
     | 
| 
      
 110 
     | 
    
         
            +
                                                   description: "optional, you must specify the path to your main Xcode project if it is not in the project root directory",
         
     | 
| 
      
 111 
     | 
    
         
            +
                                                   verify_block: Proc.new do |value|
         
     | 
| 
      
 112 
     | 
    
         
            +
                                                    raise "Please pass the path to the project, not the workspace".red if value.include?"workspace"
         
     | 
| 
      
 113 
     | 
    
         
            +
                                                    raise "Could not find Xcode project".red unless File.exists?(value)
         
     | 
| 
      
 114 
     | 
    
         
            +
                                                   end)
         
     | 
| 
       117 
115 
     | 
    
         
             
                    ]
         
     | 
| 
       118 
116 
     | 
    
         
             
                  end
         
     | 
| 
       119 
117 
     | 
    
         | 
    
        data/lib/fastlane/actions/ipa.rb
    CHANGED
    
    | 
         @@ -5,20 +5,6 @@ module Fastlane 
     | 
|
| 
       5 
5 
     | 
    
         
             
                  DSYM_OUTPUT_PATH = :DSYM_OUTPUT_PATH
         
     | 
| 
       6 
6 
     | 
    
         
             
                end
         
     | 
| 
       7 
7 
     | 
    
         | 
| 
       8 
     | 
    
         
            -
                # -w, --workspace                   WORKSPACE Workspace (.xcworkspace) file to use to build app (automatically detected in current directory)
         
     | 
| 
       9 
     | 
    
         
            -
                # -p, --project PROJECT             Project (.xcodeproj) file to use to build app (automatically detected in current directory, overridden by --workspace option, if passed)
         
     | 
| 
       10 
     | 
    
         
            -
                # -c, --configuration CONFIGURATION Configuration used to build
         
     | 
| 
       11 
     | 
    
         
            -
                # -s, --scheme SCHEME               Scheme used to build app
         
     | 
| 
       12 
     | 
    
         
            -
                # --xcconfig XCCONFIG               use an extra XCCONFIG file to build the app
         
     | 
| 
       13 
     | 
    
         
            -
                # --xcargs XCARGS                   pass additional arguments to xcodebuild when building the app. Be sure to quote multiple args.
         
     | 
| 
       14 
     | 
    
         
            -
                # --[no-]clean                      Clean project before building
         
     | 
| 
       15 
     | 
    
         
            -
                # --[no-]archive                    Archive project after building
         
     | 
| 
       16 
     | 
    
         
            -
                # -d, --destination DESTINATION     Destination. Defaults to current directory
         
     | 
| 
       17 
     | 
    
         
            -
                # -m, --embed PROVISION             Sign .ipa file with .mobileprovision
         
     | 
| 
       18 
     | 
    
         
            -
                # -i, --identity IDENTITY           Identity to be used along with --embed
         
     | 
| 
       19 
     | 
    
         
            -
                # --sdk SDK                         use SDK as the name or path of the base SDK when building the project
         
     | 
| 
       20 
     | 
    
         
            -
                # --ipa IPA                         specify the name of the .ipa file to generate (including file extension)
         
     | 
| 
       21 
     | 
    
         
            -
             
     | 
| 
       22 
8 
     | 
    
         
             
                ARGS_MAP = {
         
     | 
| 
       23 
9 
     | 
    
         
             
                  workspace: '-w',
         
     | 
| 
       24 
10 
     | 
    
         
             
                  project: '-p',
         
     | 
| 
         @@ -31,6 +17,7 @@ module Fastlane 
     | 
|
| 
       31 
17 
     | 
    
         
             
                  identity: '-i',
         
     | 
| 
       32 
18 
     | 
    
         
             
                  sdk: '--sdk',
         
     | 
| 
       33 
19 
     | 
    
         
             
                  ipa: '--ipa',
         
     | 
| 
      
 20 
     | 
    
         
            +
                  xcconfig: '--xcconfig',
         
     | 
| 
       34 
21 
     | 
    
         
             
                  xcargs: '--xcargs',
         
     | 
| 
       35 
22 
     | 
    
         
             
                }
         
     | 
| 
       36 
23 
     | 
    
         | 
| 
         @@ -48,24 +35,15 @@ module Fastlane 
     | 
|
| 
       48 
35 
     | 
    
         
             
                    # The output directory of the IPA and dSYM
         
     | 
| 
       49 
36 
     | 
    
         
             
                    absolute_dest_directory = nil
         
     | 
| 
       50 
37 
     | 
    
         | 
| 
       51 
     | 
    
         
            -
                     
     | 
| 
       52 
     | 
    
         
            -
             
     | 
| 
       53 
     | 
    
         
            -
             
     | 
| 
       54 
     | 
    
         
            -
                    if params.first.is_a? Hash
         
     | 
| 
       55 
     | 
    
         
            -
             
     | 
| 
       56 
     | 
    
         
            -
                      # Used to get the final path of the IPA and dSYM
         
     | 
| 
       57 
     | 
    
         
            -
                      if dest = params.first[:destination]
         
     | 
| 
       58 
     | 
    
         
            -
                        absolute_dest_directory = Dir.glob(dest).map(&File.method(:realpath)).first
         
     | 
| 
       59 
     | 
    
         
            -
                      end
         
     | 
| 
       60 
     | 
    
         
            -
             
     | 
| 
       61 
     | 
    
         
            -
                      # Maps nice developer build parameters to Shenzhen args
         
     | 
| 
       62 
     | 
    
         
            -
                      build_args = params_to_build_args(params.first)
         
     | 
| 
       63 
     | 
    
         
            -
             
     | 
| 
       64 
     | 
    
         
            -
                    else
         
     | 
| 
       65 
     | 
    
         
            -
                      build_args = params
         
     | 
| 
      
 38 
     | 
    
         
            +
                    # Used to get the final path of the IPA and dSYM
         
     | 
| 
      
 39 
     | 
    
         
            +
                    if dest = params[:destination]
         
     | 
| 
      
 40 
     | 
    
         
            +
                      absolute_dest_directory = Dir.glob(dest).map(&File.method(:realpath)).first
         
     | 
| 
       66 
41 
     | 
    
         
             
                    end
         
     | 
| 
       67 
42 
     | 
    
         | 
| 
       68 
     | 
    
         
            -
                     
     | 
| 
      
 43 
     | 
    
         
            +
                    # Maps nice developer build parameters to Shenzhen args
         
     | 
| 
      
 44 
     | 
    
         
            +
                    build_args = params_to_build_args(params)
         
     | 
| 
      
 45 
     | 
    
         
            +
             
     | 
| 
      
 46 
     | 
    
         
            +
                    unless (params[:scheme] rescue nil)
         
     | 
| 
       69 
47 
     | 
    
         
             
                      Helper.log.warn "You haven't specified a scheme. This might cause problems. If you can't see any outupt, please pass a `scheme`"
         
     | 
| 
       70 
48 
     | 
    
         
             
                    end
         
     | 
| 
       71 
49 
     | 
    
         | 
| 
         @@ -96,10 +74,10 @@ module Fastlane 
     | 
|
| 
       96 
74 
     | 
    
         
             
                    ENV[SharedValues::DSYM_OUTPUT_PATH.to_s] = absolute_dsym_path
         
     | 
| 
       97 
75 
     | 
    
         
             
                  end
         
     | 
| 
       98 
76 
     | 
    
         | 
| 
       99 
     | 
    
         
            -
                  def self.params_to_build_args( 
     | 
| 
       100 
     | 
    
         
            -
                     
     | 
| 
       101 
     | 
    
         
            -
                    params = params.delete_if { |k, v| (k != :clean && k != :archive) && v.nil? }
         
     | 
| 
      
 77 
     | 
    
         
            +
                  def self.params_to_build_args(config)
         
     | 
| 
      
 78 
     | 
    
         
            +
                    params = config.values
         
     | 
| 
       102 
79 
     | 
    
         | 
| 
      
 80 
     | 
    
         
            +
                    params = params.delete_if { |k, v| v.nil? }
         
     | 
| 
       103 
81 
     | 
    
         
             
                    params = fill_in_default_values(params)
         
     | 
| 
       104 
82 
     | 
    
         | 
| 
       105 
83 
     | 
    
         
             
                    # Maps nice developer param names to Shenzhen's `ipa build` arguments
         
     | 
| 
         @@ -108,6 +86,8 @@ module Fastlane 
     | 
|
| 
       108 
86 
     | 
    
         
             
                      if args = ARGS_MAP[k]
         
     | 
| 
       109 
87 
     | 
    
         
             
                        if k == :clean
         
     | 
| 
       110 
88 
     | 
    
         
             
                          v == true ? '--clean' : '--no-clean'
         
     | 
| 
      
 89 
     | 
    
         
            +
                        elsif k == :archive
         
     | 
| 
      
 90 
     | 
    
         
            +
                          v == true ? '--archive' : nil
         
     | 
| 
       111 
91 
     | 
    
         
             
                        else
         
     | 
| 
       112 
92 
     | 
    
         
             
                          value = (v.to_s.length > 0 ? "\"#{v}\"" : '')
         
     | 
| 
       113 
93 
     | 
    
         
             
                          "#{ARGS_MAP[k]} #{value}".strip
         
     | 
| 
         @@ -143,20 +123,62 @@ module Fastlane 
     | 
|
| 
       143 
123 
     | 
    
         
             
                  end
         
     | 
| 
       144 
124 
     | 
    
         | 
| 
       145 
125 
     | 
    
         
             
                  def self.available_options
         
     | 
| 
       146 
     | 
    
         
            -
                     
     | 
| 
       147 
     | 
    
         
            -
                       
     | 
| 
       148 
     | 
    
         
            -
             
     | 
| 
       149 
     | 
    
         
            -
             
     | 
| 
       150 
     | 
    
         
            -
             
     | 
| 
       151 
     | 
    
         
            -
                       
     | 
| 
       152 
     | 
    
         
            -
             
     | 
| 
       153 
     | 
    
         
            -
             
     | 
| 
       154 
     | 
    
         
            -
             
     | 
| 
       155 
     | 
    
         
            -
                       
     | 
| 
       156 
     | 
    
         
            -
             
     | 
| 
       157 
     | 
    
         
            -
             
     | 
| 
       158 
     | 
    
         
            -
             
     | 
| 
       159 
     | 
    
         
            -
             
     | 
| 
      
 126 
     | 
    
         
            +
                    [
         
     | 
| 
      
 127 
     | 
    
         
            +
                      FastlaneCore::ConfigItem.new(key: :workspace,
         
     | 
| 
      
 128 
     | 
    
         
            +
                                                   env_name: "IPA_WORKSPACE",
         
     | 
| 
      
 129 
     | 
    
         
            +
                                                   description: "WORKSPACE Workspace (.xcworkspace) file to use to build app (automatically detected in current directory)",
         
     | 
| 
      
 130 
     | 
    
         
            +
                                                   optional: true),
         
     | 
| 
      
 131 
     | 
    
         
            +
                      FastlaneCore::ConfigItem.new(key: :project,
         
     | 
| 
      
 132 
     | 
    
         
            +
                                                   env_name: "IPA_PROJECT",
         
     | 
| 
      
 133 
     | 
    
         
            +
                                                   description: "Project (.xcodeproj) file to use to build app (automatically detected in current directory, overridden by --workspace option, if passed)",
         
     | 
| 
      
 134 
     | 
    
         
            +
                                                   optional: true),
         
     | 
| 
      
 135 
     | 
    
         
            +
                      FastlaneCore::ConfigItem.new(key: :configuration,
         
     | 
| 
      
 136 
     | 
    
         
            +
                                                   env_name: "IPA_CONFIGURATION",
         
     | 
| 
      
 137 
     | 
    
         
            +
                                                   description: "Configuration used to build",
         
     | 
| 
      
 138 
     | 
    
         
            +
                                                   optional: true),
         
     | 
| 
      
 139 
     | 
    
         
            +
                      FastlaneCore::ConfigItem.new(key: :scheme,
         
     | 
| 
      
 140 
     | 
    
         
            +
                                                   env_name: "IPA_SCHEME",
         
     | 
| 
      
 141 
     | 
    
         
            +
                                                   description: "Scheme used to build app",
         
     | 
| 
      
 142 
     | 
    
         
            +
                                                   optional: true),
         
     | 
| 
      
 143 
     | 
    
         
            +
                      FastlaneCore::ConfigItem.new(key: :clean,
         
     | 
| 
      
 144 
     | 
    
         
            +
                                                   env_name: "IPA_CLEAN",
         
     | 
| 
      
 145 
     | 
    
         
            +
                                                   description: "Clean project before building",
         
     | 
| 
      
 146 
     | 
    
         
            +
                                                   optional: true,
         
     | 
| 
      
 147 
     | 
    
         
            +
                                                   is_string: false),
         
     | 
| 
      
 148 
     | 
    
         
            +
                      FastlaneCore::ConfigItem.new(key: :archive,
         
     | 
| 
      
 149 
     | 
    
         
            +
                                                   env_name: "IPA_ARCHIVE",
         
     | 
| 
      
 150 
     | 
    
         
            +
                                                   description: "Archive project after building",
         
     | 
| 
      
 151 
     | 
    
         
            +
                                                   optional: true,
         
     | 
| 
      
 152 
     | 
    
         
            +
                                                   is_string: false),
         
     | 
| 
      
 153 
     | 
    
         
            +
                      FastlaneCore::ConfigItem.new(key: :destination,
         
     | 
| 
      
 154 
     | 
    
         
            +
                                                   env_name: "IPA_DESTINATION",
         
     | 
| 
      
 155 
     | 
    
         
            +
                                                   description: "Build destination. Defaults to current directory",
         
     | 
| 
      
 156 
     | 
    
         
            +
                                                   optional: true),
         
     | 
| 
      
 157 
     | 
    
         
            +
                      FastlaneCore::ConfigItem.new(key: :embed,
         
     | 
| 
      
 158 
     | 
    
         
            +
                                                   env_name: "IPA_EMBED",
         
     | 
| 
      
 159 
     | 
    
         
            +
                                                   description: "Sign .ipa file with .mobileprovision",
         
     | 
| 
      
 160 
     | 
    
         
            +
                                                   optional: true),
         
     | 
| 
      
 161 
     | 
    
         
            +
                      FastlaneCore::ConfigItem.new(key: :identity,
         
     | 
| 
      
 162 
     | 
    
         
            +
                                                   env_name: "IPA_IDENTITY",
         
     | 
| 
      
 163 
     | 
    
         
            +
                                                   description: "Identity to be used along with --embed",
         
     | 
| 
      
 164 
     | 
    
         
            +
                                                   optional: true),
         
     | 
| 
      
 165 
     | 
    
         
            +
                      FastlaneCore::ConfigItem.new(key: :sdk,
         
     | 
| 
      
 166 
     | 
    
         
            +
                                                   env_name: "IPA_SDK",
         
     | 
| 
      
 167 
     | 
    
         
            +
                                                   description: "Use SDK as the name or path of the base SDK when building the project",
         
     | 
| 
      
 168 
     | 
    
         
            +
                                                   optional: true),
         
     | 
| 
      
 169 
     | 
    
         
            +
                      FastlaneCore::ConfigItem.new(key: :ipa,
         
     | 
| 
      
 170 
     | 
    
         
            +
                                                   env_name: "IPA_IPA",
         
     | 
| 
      
 171 
     | 
    
         
            +
                                                   description: "Specify the name of the .ipa file to generate (including file extension)",
         
     | 
| 
      
 172 
     | 
    
         
            +
                                                   optional: true),
         
     | 
| 
      
 173 
     | 
    
         
            +
                      FastlaneCore::ConfigItem.new(key: :xcconfig,
         
     | 
| 
      
 174 
     | 
    
         
            +
                                                   env_name: "IPA_XCCONFIG",
         
     | 
| 
      
 175 
     | 
    
         
            +
                                                   description: "Use an extra XCCONFIG file to build the app",
         
     | 
| 
      
 176 
     | 
    
         
            +
                                                   optional: true),
         
     | 
| 
      
 177 
     | 
    
         
            +
                      FastlaneCore::ConfigItem.new(key: :xcargs,
         
     | 
| 
      
 178 
     | 
    
         
            +
                                                   env_name: "IPA_XCARGS",
         
     | 
| 
      
 179 
     | 
    
         
            +
                                                   description: "Pass additional arguments to xcodebuild when building the app. Be sure to quote multiple args",
         
     | 
| 
      
 180 
     | 
    
         
            +
                                                   optional: true),
         
     | 
| 
      
 181 
     | 
    
         
            +
                    ]
         
     | 
| 
       160 
182 
     | 
    
         
             
                  end
         
     | 
| 
       161 
183 
     | 
    
         | 
| 
       162 
184 
     | 
    
         
             
                  def self.output
         
     |