fastlane 2.39.0.beta.20170613010056 → 2.39.0.beta.20170614010012

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b9609a3fb26dbf87c7496a3ce7e971d939696fd5
4
- data.tar.gz: a9e5c7e87e54afa63f47f12682e3e1d3b3d90e7a
3
+ metadata.gz: 295c2d8d4545f7f8c59a6f90160ea85260312d44
4
+ data.tar.gz: cdbcd96a54341a4861d359a8092360098ac4aaae
5
5
  SHA512:
6
- metadata.gz: 2d8234c9b0c7824d669238ed303579f67c204aa8123c8e4475d5f6745d80df2d0b1795474594c29bbe51a62bdb29dfbbb0a56df2b2a5e98cc20514f912ef3a59
7
- data.tar.gz: 2620c8305021be03cd2b5ea9f439c63016198153ecf53c637936965d3aa2ca2be26eeb75cd43f67671ff92b73e07d7b9f5f089dd9d9a774cd65e83003d60c6ea
6
+ metadata.gz: d3ae3cdc1be6c4c7c0130db181e842685408edfd0344dc1b92bbdd6ac0ec2d1e1c40fc2a778549fb50318bf088a8952e1cb9cc120abe4cfef5912eb0674ed723
7
+ data.tar.gz: 95e5cc12d9711a2baea78e22b69bb433fb6a6282bfc808eb7f28ccdb63fa4c9d192983e853f012a8c110c39216d51a23940ca8d457dcebdb9906d8aced376271
@@ -69,18 +69,17 @@ module Deliver
69
69
  end
70
70
 
71
71
  def find_build(candidate_builds)
72
- build = nil
72
+ if (candidate_builds || []).count == 0
73
+ UI.user_error!("Could not find any available candidate builds on iTunes Connect to submit")
74
+ end
75
+
76
+ build = candidate_builds.first
73
77
  candidate_builds.each do |b|
74
- if !build or b.upload_date > build.upload_date
78
+ if b.upload_date > build.upload_date
75
79
  build = b
76
80
  end
77
81
  end
78
82
 
79
- unless build
80
- UI.error(candidate_builds)
81
- UI.crash!("Could not find build")
82
- end
83
-
84
83
  return build
85
84
  end
86
85
  end
@@ -118,8 +118,19 @@ module Deliver
118
118
 
119
119
  UI.message("Uploading metadata to iTunes Connect")
120
120
  v.save!
121
- details.save!
122
- UI.success("Successfully uploaded set of metadata to iTunes Connect")
121
+ begin
122
+ details.save!
123
+ UI.success("Successfully uploaded set of metadata to iTunes Connect")
124
+ rescue Spaceship::ITunesConnectError => e
125
+ # This makes sure that we log invalid app names as user errors
126
+ # If another string needs to be checked here we should
127
+ # figure out a more generic way to handle these cases.
128
+ if e.message.include?('App Name cannot be longer than 50 characters') || e.message.include?('The app name you entered is already being used')
129
+ UI.user_error!(e.message)
130
+ else
131
+ raise e
132
+ end
133
+ end
123
134
  end
124
135
 
125
136
  # If the user is using the 'default' language, then assign values where they are needed
@@ -0,0 +1,54 @@
1
+ module Fastlane
2
+ module Actions
3
+ module SharedValues
4
+ end
5
+
6
+ class RubyVersionAction < Action
7
+ def self.run(params)
8
+ params = nil unless params.kind_of?(Array)
9
+ value = (params || []).first
10
+ defined_version = Gem::Version.new(value) if value
11
+
12
+ UI.user_error!("Please pass minimum ruby version as parameter to ruby_version") unless defined_version
13
+
14
+ if Gem::Version.new(RUBY_VERSION) < defined_version
15
+ error_message = "The Fastfile requires a ruby version of >= #{defined_version}. You are on #{RUBY_VERSION}."
16
+ UI.user_error!(error_message)
17
+ end
18
+
19
+ UI.message("Your ruby version #{RUBY_VERSION} matches the minimum requirement of #{defined_version} ✅")
20
+ end
21
+
22
+ def self.step_text
23
+ "Verifying required ruby version"
24
+ end
25
+
26
+ def self.author
27
+ "sebastianvarela"
28
+ end
29
+
30
+ def self.description
31
+ "Verifies the minimum ruby version required"
32
+ end
33
+
34
+ def self.example_code
35
+ ['ruby_version "2.4.0"']
36
+ end
37
+
38
+ def self.details
39
+ [
40
+ "Add this to your `Fastfile` to require a certain version of _ruby_.",
41
+ "Put it at the top of your `Fastfile to ensure that _fastlane_ is executed appropriately."
42
+ ].join("\n")
43
+ end
44
+
45
+ def self.category
46
+ :misc
47
+ end
48
+
49
+ def self.is_supported?(platform)
50
+ true
51
+ end
52
+ end
53
+ end
54
+ end
@@ -10,7 +10,16 @@ module Fastlane
10
10
  begin
11
11
  path = File.expand_path(params[:path])
12
12
  plist = Plist.parse_xml(path)
13
- plist[params[:key]] = params[:value]
13
+ if params[:subkey]
14
+ if plist[params[:key]]
15
+ plist[params[:key]][params[:subkey]] = params[:value]
16
+ else
17
+ UI.message "Key doesn't exist, going to create new one ..."
18
+ plist[params[:key]] = { params[:subkey] => params[:value] }
19
+ end
20
+ else
21
+ plist[params[:key]] = params[:value]
22
+ end
14
23
  new_plist = Plist::Emit.dump(plist)
15
24
  File.write(path, new_plist)
16
25
 
@@ -31,6 +40,10 @@ module Fastlane
31
40
  env_name: "FL_SET_INFO_PLIST_PARAM_NAME",
32
41
  description: "Name of key in plist",
33
42
  optional: false),
43
+ FastlaneCore::ConfigItem.new(key: :subkey,
44
+ env_name: "FL_SET_INFO_PLIST_SUBPARAM_NAME",
45
+ description: "Name of subkey in plist",
46
+ optional: true),
34
47
  FastlaneCore::ConfigItem.new(key: :value,
35
48
  env_name: "FL_SET_INFO_PLIST_PARAM_VALUE",
36
49
  description: "Value to setup",
@@ -47,7 +60,7 @@ module Fastlane
47
60
  end
48
61
 
49
62
  def self.authors
50
- ["kohtenko"]
63
+ ["kohtenko", "uwehollatz"]
51
64
  end
52
65
 
53
66
  def self.is_supported?(platform)
@@ -56,7 +69,8 @@ module Fastlane
56
69
 
57
70
  def self.example_code
58
71
  [
59
- 'set_info_plist_value(path: "./Info.plist", key: "CFBundleIdentifier", value: "com.krausefx.app.beta")'
72
+ 'set_info_plist_value(path: "./Info.plist", key: "CFBundleIdentifier", value: "com.krausefx.app.beta")',
73
+ 'set_info_plist_value(path: "./MyApp-Info.plist", key: "NSAppTransportSecurity", subkey: "NSAllowsArbitraryLoads", value: true)'
60
74
  ]
61
75
  end
62
76
 
@@ -2,16 +2,17 @@ module Fastlane
2
2
  module Actions
3
3
  class SwiftlintAction < Action
4
4
  def self.run(params)
5
- if `which swiftlint`.to_s.length == 0 and !Helper.test?
6
- UI.user_error!("You have to install swiftlint using `brew install swiftlint`")
5
+ if `which swiftlint`.to_s.length == 0 && params[:executable].nil? && !Helper.test?
6
+ UI.user_error!("You have to install swiftlint using `brew install swiftlint` or specify the executable path with the `:executable` option.")
7
7
  end
8
8
 
9
- version = swiftlint_version
9
+ version = swiftlint_version(executable: params[:executable])
10
10
  if params[:mode] == :autocorrect and version < Gem::Version.new('0.5.0') and !Helper.test?
11
11
  UI.user_error!("Your version of swiftlint (#{version}) does not support autocorrect mode.\nUpdate swiftlint using `brew update && brew upgrade swiftlint`")
12
12
  end
13
13
 
14
- command = "swiftlint #{params[:mode]}"
14
+ command = params[:executable].nil? ? "swiftlint" : params[:executable]
15
+ command << " #{params[:mode]}"
15
16
  command << supported_option_switch(params, :strict, "0.9.2", true)
16
17
  command << " --config #{params[:config_file].shellescape}" if params[:config_file]
17
18
  command << " --reporter #{params[:reporter]}" if params[:reporter]
@@ -37,16 +38,18 @@ module Fastlane
37
38
  end
38
39
 
39
40
  # Get current SwiftLint version
40
- def self.swiftlint_version
41
- Gem::Version.new(`swiftlint version`.chomp)
41
+ def self.swiftlint_version(executable: nil)
42
+ binary = executable.nil? ? 'swiftlint' : executable
43
+ Gem::Version.new(`#{binary} version`.chomp)
42
44
  end
43
45
 
44
46
  # Return "--option" switch if option is on and current SwiftLint version is greater or equal than min version.
45
47
  # Return "" otherwise.
46
48
  def self.supported_option_switch(params, option, min_version, can_ignore = false)
47
49
  return "" unless params[option]
48
- if swiftlint_version < Gem::Version.new(min_version)
49
- message = "Your version of swiftlint (#{swiftlint_version}) does not support '--#{option}' option.\nUpdate swiftlint to #{min_version} or above using `brew update && brew upgrade swiftlint`"
50
+ version = swiftlint_version(executable: params[:executable])
51
+ if version < Gem::Version.new(min_version)
52
+ message = "Your version of swiftlint (#{version}) does not support '--#{option}' option.\nUpdate swiftlint to #{min_version} or above using `brew update && brew upgrade swiftlint`"
50
53
  message += "\nThe option will be ignored." if can_ignore
51
54
  can_ignore ? UI.important(message) : UI.user_error!(message)
52
55
  ""
@@ -102,6 +105,10 @@ module Fastlane
102
105
  description: "Don't print status logs like 'Linting <file>' & 'Done linting'",
103
106
  default_value: false,
104
107
  is_string: false,
108
+ optional: true),
109
+ FastlaneCore::ConfigItem.new(key: :executable,
110
+ description: "Path to the `swiftlint` executable on your machine",
111
+ is_string: true,
105
112
  optional: true)
106
113
  ]
107
114
  end
@@ -47,10 +47,10 @@ module Fastlane
47
47
 
48
48
  project = Xcodeproj::Project.open(folder)
49
49
  project.targets.each do |target|
50
- if !target_filter || target.product_name.match(target_filter) || (target.respond_to?(:product_type) && target.product_type.match(target_filter))
51
- UI.success("Updating target #{target.product_name}...")
50
+ if !target_filter || target.name.match(target_filter) || (target.respond_to?(:product_type) && target.product_type.match(target_filter))
51
+ UI.success("Updating target #{target.name}...")
52
52
  else
53
- UI.important("Skipping target #{target.product_name} as it doesn't match the filter '#{target_filter}'")
53
+ UI.important("Skipping target #{target.name} as it doesn't match the filter '#{target_filter}'")
54
54
  next
55
55
  end
56
56
 
@@ -233,16 +233,11 @@ module Fastlane
233
233
  [key, content.to_s]
234
234
  end
235
235
 
236
- begin
237
- require 'terminal-table'
238
- puts Terminal::Table.new({
239
- title: "Lane Context".yellow,
240
- rows: FastlaneCore::PrintTable.transform_output(rows)
241
- })
242
- rescue
243
- os = Helper.linux? ? 'linux' : 'mac'
244
- UI.crash!("Something went wrong trying to print the lane context on #{os}")
245
- end
236
+ require 'terminal-table'
237
+ puts Terminal::Table.new({
238
+ title: "Lane Context".yellow,
239
+ rows: FastlaneCore::PrintTable.transform_output(rows)
240
+ })
246
241
  end
247
242
  end
248
243
  end
@@ -257,13 +257,13 @@ module Fastlane
257
257
  rescue FastlaneCore::Interface::FastlaneCommonException => e # these are exceptions that we dont count as crashes
258
258
  raise e
259
259
  rescue FastlaneCore::Interface::FastlaneError => e # user_error!
260
- FastlaneCore::CrashReporter.report_crash(exception: e, action: method_sym)
260
+ FastlaneCore::CrashReporter.report_crash(exception: e)
261
261
  collector.did_raise_error(method_sym) if e.fastlane_should_report_metrics?
262
262
  raise e
263
263
  rescue Exception => e # rubocop:disable Lint/RescueException
264
264
  # high chance this is actually FastlaneCore::Interface::FastlaneCrash, but can be anything else
265
265
  # Catches all exceptions, since some plugins might use system exits to get out
266
- FastlaneCore::CrashReporter.report_crash(exception: e, action: method_sym)
266
+ FastlaneCore::CrashReporter.report_crash(exception: e)
267
267
  collector.did_crash(method_sym) if e.fastlane_should_report_metrics?
268
268
  raise e
269
269
  end
@@ -1,4 +1,4 @@
1
1
  module Fastlane
2
- VERSION = '2.39.0.beta.20170613010056'.freeze
2
+ VERSION = '2.39.0.beta.20170614010012'.freeze
3
3
  DESCRIPTION = "The easiest way to automate beta deployments and releases for your iOS and Android apps".freeze
4
4
  end
@@ -1,9 +1,9 @@
1
1
  module FastlaneCore
2
2
  class CrashReportGenerator
3
3
  class << self
4
- def generate(exception: nil, action: nil)
4
+ def generate(exception: nil)
5
5
  message = format_crash_report_message(exception: exception)
6
- crash_report_payload(message: message, action: action)
6
+ crash_report_payload(message: message)
7
7
  end
8
8
 
9
9
  private
@@ -35,11 +35,11 @@ module FastlaneCore
35
35
  message + backtrace
36
36
  end
37
37
 
38
- def crash_report_payload(message: '', action: nil)
38
+ def crash_report_payload(message: '')
39
39
  {
40
40
  'eventTime' => Time.now.utc.to_datetime.rfc3339,
41
41
  'serviceContext' => {
42
- 'service' => action || 'fastlane',
42
+ 'service' => 'fastlane',
43
43
  'version' => Fastlane::VERSION
44
44
  },
45
45
  'message' => message
@@ -16,7 +16,7 @@ module FastlaneCore
16
16
  !FastlaneCore::Env.truthy?("FASTLANE_OPT_OUT_CRASH_REPORTING")
17
17
  end
18
18
 
19
- def report_crash(exception: nil, action: nil)
19
+ def report_crash(exception: nil)
20
20
  return unless enabled?
21
21
  return if @did_report_crash
22
22
  return if exception.fastlane_crash_came_from_custom_action?
@@ -26,7 +26,7 @@ module FastlaneCore
26
26
  # we want to test it
27
27
  return if Helper.test? && !@explicitly_enabled_for_testing
28
28
  begin
29
- payload = CrashReportGenerator.generate(exception: exception, action: action)
29
+ payload = CrashReportGenerator.generate(exception: exception)
30
30
  send_report(payload: payload)
31
31
  save_file(payload: payload)
32
32
  show_message unless did_show_message?
@@ -26,12 +26,12 @@ end
26
26
 
27
27
  class Exception
28
28
  def fastlane_crash_came_from_custom_action?
29
- custom_frame = exception.backtrace.find { |frame| frame.start_with?('actions/') }
29
+ custom_frame = exception && exception.backtrace && exception.backtrace.find { |frame| frame.start_with?('actions/') }
30
30
  !custom_frame.nil?
31
31
  end
32
32
 
33
33
  def fastlane_crash_came_from_plugin?
34
- plugin_frame = backtrace.find { |frame| frame.include?('fastlane-plugin-') }
34
+ plugin_frame = exception && exception.backtrace && exception.backtrace.find { |frame| frame.include?('fastlane-plugin-') }
35
35
  !plugin_frame.nil?
36
36
  end
37
37
 
@@ -43,7 +43,7 @@ module Commander
43
43
  if FastlaneCore::Helper.test?
44
44
  raise e
45
45
  else
46
- FastlaneCore::CrashReporter.report_crash(exception: e, action: @program[:name])
46
+ FastlaneCore::CrashReporter.report_crash(exception: e)
47
47
  abort "#{e}. Use --help for more information"
48
48
  end
49
49
  rescue Interrupt => e
@@ -62,7 +62,7 @@ module Commander
62
62
  if FastlaneCore::Helper.test?
63
63
  raise e
64
64
  else
65
- FastlaneCore::CrashReporter.report_crash(exception: e, action: @program[:name])
65
+ FastlaneCore::CrashReporter.report_crash(exception: e)
66
66
  if self.active_command.name == "help" && @default_command == :help # need to access directly via @
67
67
  # This is a special case, for example for pilot
68
68
  # when the user runs `fastlane pilot -u user@google.com`
@@ -105,7 +105,7 @@ module Commander
105
105
  FastlaneCore::UI.important("Error accessing file, this might be due to fastlane's directory handling")
106
106
  FastlaneCore::UI.important("Check out https://docs.fastlane.tools/advanced/#directory-behavior for more details")
107
107
  puts ""
108
- FastlaneCore::CrashReporter.report_crash(exception: e, action: @program[:name])
108
+ FastlaneCore::CrashReporter.report_crash(exception: e)
109
109
  raise e
110
110
  end
111
111
 
@@ -113,13 +113,13 @@ module Commander
113
113
  if e.message.include? 'Connection reset by peer - SSL_connect'
114
114
  handle_tls_error!(e)
115
115
  else
116
- FastlaneCore::CrashReporter.report_crash(exception: e, action: @program[:name])
116
+ FastlaneCore::CrashReporter.report_crash(exception: e)
117
117
  handle_unknown_error!(e)
118
118
  end
119
119
  end
120
120
 
121
121
  def rescue_unknown_error(e)
122
- FastlaneCore::CrashReporter.report_crash(exception: e, action: @program[:name])
122
+ FastlaneCore::CrashReporter.report_crash(exception: e)
123
123
  collector.did_crash(@program[:name]) if e.fastlane_should_report_metrics?
124
124
  handle_unknown_error!(e)
125
125
  end
@@ -127,7 +127,7 @@ module Commander
127
127
  def rescue_fastlane_error(e)
128
128
  collector.did_raise_error(@program[:name]) if e.fastlane_should_report_metrics?
129
129
  show_github_issues(e.message) if e.show_github_issues
130
- FastlaneCore::CrashReporter.report_crash(exception: e, action: @program[:name])
130
+ FastlaneCore::CrashReporter.report_crash(exception: e)
131
131
  display_user_error!(e, e.message)
132
132
  end
133
133
 
@@ -130,7 +130,7 @@ module Supply
130
130
  def listings
131
131
  ensure_active_edit!
132
132
 
133
- result = call_google_api { android_publisher.list_listings(current_package_name, current_edit.id) }
133
+ result = call_google_api { android_publisher.list_edit_listings(current_package_name, current_edit.id) }
134
134
 
135
135
  return result.listings.map do |row|
136
136
  Listing.new(self, row.language, row)
@@ -142,7 +142,7 @@ module Supply
142
142
  ensure_active_edit!
143
143
 
144
144
  begin
145
- result = android_publisher.get_listing(
145
+ result = android_publisher.get_edit_listing(
146
146
  current_package_name,
147
147
  current_edit.id,
148
148
  language
@@ -159,7 +159,7 @@ module Supply
159
159
  def apks_version_codes
160
160
  ensure_active_edit!
161
161
 
162
- result = call_google_api { android_publisher.list_apks(current_package_name, current_edit.id) }
162
+ result = call_google_api { android_publisher.list_edit_apks(current_package_name, current_edit.id) }
163
163
 
164
164
  return result.apks.map(&:version_code)
165
165
  end
@@ -169,7 +169,7 @@ module Supply
169
169
  ensure_active_edit!
170
170
 
171
171
  result = call_google_api do
172
- android_publisher.list_apk_listings(
172
+ android_publisher.list_edit_apklistings(
173
173
  current_package_name,
174
174
  current_edit.id,
175
175
  apk_version_code
@@ -198,7 +198,7 @@ module Supply
198
198
  })
199
199
 
200
200
  call_google_api do
201
- android_publisher.update_listing(
201
+ android_publisher.update_edit_listing(
202
202
  current_package_name,
203
203
  current_edit.id,
204
204
  language,
@@ -211,7 +211,7 @@ module Supply
211
211
  ensure_active_edit!
212
212
 
213
213
  result_upload = call_google_api do
214
- android_publisher.upload_apk(
214
+ android_publisher.upload_edit_apk(
215
215
  current_package_name,
216
216
  current_edit.id,
217
217
  upload_source: path_to_apk
@@ -249,7 +249,7 @@ module Supply
249
249
  })
250
250
 
251
251
  call_google_api do
252
- android_publisher.update_track(
252
+ android_publisher.update_edit_track(
253
253
  current_package_name,
254
254
  current_edit.id,
255
255
  track,
@@ -262,8 +262,8 @@ module Supply
262
262
  def track_version_codes(track)
263
263
  ensure_active_edit!
264
264
 
265
- result = call_google_api do
266
- android_publisher.get_track(
265
+ begin
266
+ result = android_publisher.get_edit_track(
267
267
  current_package_name,
268
268
  current_edit.id,
269
269
  track
@@ -282,7 +282,7 @@ module Supply
282
282
  })
283
283
 
284
284
  call_google_api do
285
- android_publisher.update_apk_listing(
285
+ android_publisher.update_edit_apklisting(
286
286
  current_package_name,
287
287
  current_edit.id,
288
288
  apk_listing.apk_version_code,
@@ -300,7 +300,7 @@ module Supply
300
300
  ensure_active_edit!
301
301
 
302
302
  result = call_google_api do
303
- android_publisher.list_images(
303
+ android_publisher.list_edit_images(
304
304
  current_package_name,
305
305
  current_edit.id,
306
306
  language,
@@ -316,7 +316,7 @@ module Supply
316
316
  ensure_active_edit!
317
317
 
318
318
  call_google_api do
319
- android_publisher.upload_image(
319
+ android_publisher.upload_edit_image(
320
320
  current_package_name,
321
321
  current_edit.id,
322
322
  language,
@@ -331,7 +331,7 @@ module Supply
331
331
  ensure_active_edit!
332
332
 
333
333
  call_google_api do
334
- android_publisher.delete_all_images(
334
+ android_publisher.deleteall_edit_image(
335
335
  current_package_name,
336
336
  current_edit.id,
337
337
  language,
@@ -344,7 +344,7 @@ module Supply
344
344
  ensure_active_edit!
345
345
 
346
346
  call_google_api do
347
- android_publisher.upload_expansion_file(
347
+ android_publisher.upload_edit_expansionfile(
348
348
  current_package_name,
349
349
  current_edit.id,
350
350
  apk_version_code,
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastlane
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.39.0.beta.20170613010056
4
+ version: 2.39.0.beta.20170614010012
5
5
  platform: ruby
6
6
  authors:
7
7
  - Felix Krause
@@ -15,7 +15,7 @@ authors:
15
15
  autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
- date: 2017-06-13 00:00:00.000000000 Z
18
+ date: 2017-06-14 00:00:00.000000000 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: slack-notifier
@@ -345,16 +345,22 @@ dependencies:
345
345
  name: google-api-client
346
346
  requirement: !ruby/object:Gem::Requirement
347
347
  requirements:
348
- - - "~>"
348
+ - - ">="
349
+ - !ruby/object:Gem::Version
350
+ version: 0.12.0
351
+ - - "<"
349
352
  - !ruby/object:Gem::Version
350
- version: 0.9.2
353
+ version: 0.13.0
351
354
  type: :runtime
352
355
  prerelease: false
353
356
  version_requirements: !ruby/object:Gem::Requirement
354
357
  requirements:
355
- - - "~>"
358
+ - - ">="
359
+ - !ruby/object:Gem::Version
360
+ version: 0.12.0
361
+ - - "<"
356
362
  - !ruby/object:Gem::Version
357
- version: 0.9.2
363
+ version: 0.13.0
358
364
  - !ruby/object:Gem::Dependency
359
365
  name: highline
360
366
  requirement: !ruby/object:Gem::Requirement
@@ -944,6 +950,7 @@ files:
944
950
  - fastlane/lib/fastlane/actions/restore_file.rb
945
951
  - fastlane/lib/fastlane/actions/rocket.rb
946
952
  - fastlane/lib/fastlane/actions/rsync.rb
953
+ - fastlane/lib/fastlane/actions/ruby_version.rb
947
954
  - fastlane/lib/fastlane/actions/s3.rb
948
955
  - fastlane/lib/fastlane/actions/say.rb
949
956
  - fastlane/lib/fastlane/actions/scan.rb
@@ -1368,23 +1375,23 @@ metadata:
1368
1375
  post_install_message:
1369
1376
  rdoc_options: []
1370
1377
  require_paths:
1371
- - scan/lib
1372
- - spaceship/lib
1373
- - frameit/lib
1374
- - deliver/lib
1375
1378
  - supply/lib
1379
+ - deliver/lib
1376
1380
  - gym/lib
1377
- - sigh/lib
1378
- - credentials_manager/lib
1379
- - fastlane/lib
1380
- - match/lib
1381
- - produce/lib
1382
- - cert/lib
1381
+ - spaceship/lib
1382
+ - scan/lib
1383
1383
  - pem/lib
1384
1384
  - screengrab/lib
1385
1385
  - fastlane_core/lib
1386
+ - sigh/lib
1387
+ - fastlane/lib
1388
+ - cert/lib
1386
1389
  - pilot/lib
1390
+ - match/lib
1391
+ - credentials_manager/lib
1387
1392
  - snapshot/lib
1393
+ - produce/lib
1394
+ - frameit/lib
1388
1395
  required_ruby_version: !ruby/object:Gem::Requirement
1389
1396
  requirements:
1390
1397
  - - ">="