fastlane 2.86.0.beta.20180316050051 → 2.86.0.beta.20180317050040
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/credentials_manager/lib/credentials_manager/appfile_config.rb +1 -1
- data/deliver/lib/deliver/app_screenshot.rb +4 -4
- data/deliver/lib/deliver/commands_generator.rb +1 -1
- data/deliver/lib/deliver/options.rb +5 -0
- data/deliver/lib/deliver/runner.rb +9 -1
- data/deliver/lib/deliver/submit_for_review.rb +1 -1
- data/fastlane/lib/fastlane/actions/app_store_build_number.rb +8 -2
- data/fastlane/lib/fastlane/actions/badge.rb +1 -1
- data/fastlane/lib/fastlane/actions/crashlytics.rb +1 -1
- data/fastlane/lib/fastlane/actions/download_dsyms.rb +18 -15
- data/fastlane/lib/fastlane/actions/get_build_number.rb +1 -1
- data/fastlane/lib/fastlane/actions/get_push_certificate.rb +1 -1
- data/fastlane/lib/fastlane/actions/get_version_number.rb +68 -84
- data/fastlane/lib/fastlane/actions/hockey.rb +4 -4
- data/fastlane/lib/fastlane/actions/increment_build_number.rb +1 -1
- data/fastlane/lib/fastlane/actions/installr.rb +1 -1
- data/fastlane/lib/fastlane/actions/oclint.rb +1 -1
- data/fastlane/lib/fastlane/actions/set_changelog.rb +1 -1
- data/fastlane/lib/fastlane/actions/slather.rb +1 -1
- data/fastlane/lib/fastlane/actions/sonar.rb +1 -1
- data/fastlane/lib/fastlane/actions/swiftlint.rb +1 -1
- data/fastlane/lib/fastlane/actions/testfairy.rb +1 -1
- data/fastlane/lib/fastlane/actions/tryouts.rb +2 -2
- data/fastlane/lib/fastlane/actions/typetalk.rb +1 -1
- data/fastlane/lib/fastlane/actions/update_app_group_identifiers.rb +1 -1
- data/fastlane/lib/fastlane/actions/update_icloud_container_identifiers.rb +1 -1
- data/fastlane/lib/fastlane/actions/update_info_plist.rb +2 -2
- data/fastlane/lib/fastlane/actions/upload_symbols_to_sentry.rb +2 -2
- data/fastlane/lib/fastlane/actions/verify_xcode.rb +1 -1
- data/fastlane/lib/fastlane/actions/xcode_server_get_assets.rb +1 -1
- data/fastlane/lib/fastlane/configuration_helper.rb +1 -1
- data/fastlane/lib/fastlane/lane_manager.rb +4 -4
- data/fastlane/lib/fastlane/plugins/template/.rubocop.yml +2 -1
- data/fastlane/lib/fastlane/runner.rb +2 -2
- data/fastlane/lib/fastlane/server/socket_server.rb +17 -3
- data/fastlane/lib/fastlane/setup/setup.rb +1 -1
- data/fastlane/lib/fastlane/swift_fastlane_api_generator.rb +1 -4
- data/fastlane/lib/fastlane/swift_lane_manager.rb +2 -2
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/fastlane_core/lib/fastlane_core/command_executor.rb +1 -1
- data/fastlane_core/lib/fastlane_core/configuration/configuration.rb +5 -5
- data/fastlane_core/lib/fastlane_core/helper.rb +1 -1
- data/fastlane_core/lib/fastlane_core/ipa_file_analyser.rb +1 -1
- data/fastlane_core/lib/fastlane_core/itunes_transporter.rb +2 -2
- data/fastlane_core/lib/fastlane_core/project.rb +6 -5
- data/fastlane_core/lib/fastlane_core/tool_collector.rb +1 -1
- data/frameit/lib/frameit/editor.rb +2 -2
- data/gym/lib/gym/generators/build_command_generator.rb +0 -1
- data/match/lib/match/git_helper.rb +1 -1
- data/match/lib/match/options.rb +1 -1
- data/match/lib/match/runner.rb +3 -3
- data/pilot/lib/pilot/build_manager.rb +3 -3
- data/scan/lib/scan/slack_poster.rb +1 -1
- data/scan/lib/scan/test_command_generator.rb +0 -1
- data/scan/lib/scan/test_result_parser.rb +1 -1
- data/sigh/lib/sigh/runner.rb +1 -1
- data/snapshot/lib/snapshot/options.rb +8 -0
- data/snapshot/lib/snapshot/runner.rb +1 -1
- data/snapshot/lib/snapshot/test_command_generator.rb +28 -1
- data/spaceship/lib/spaceship/client.rb +4 -4
- data/spaceship/lib/spaceship/du/du_client.rb +1 -1
- data/spaceship/lib/spaceship/launcher.rb +1 -1
- data/spaceship/lib/spaceship/portal/provisioning_profile.rb +4 -4
- data/spaceship/lib/spaceship/tunes/application.rb +34 -0
- data/spaceship/lib/spaceship/tunes/build_train.rb +1 -0
- data/spaceship/lib/spaceship/tunes/tunes_client.rb +4 -4
- metadata +27 -13
@@ -86,7 +86,7 @@ module Frameit
|
|
86
86
|
|
87
87
|
@offset_information = fetch_config['offset'] || Offsets.image_offset(screenshot).dup
|
88
88
|
|
89
|
-
if @offset_information
|
89
|
+
if @offset_information && (@offset_information['offset'] || @offset_information['offset'])
|
90
90
|
return @offset_information
|
91
91
|
end
|
92
92
|
UI.user_error!("Could not find offset_information for '#{screenshot}'")
|
@@ -450,7 +450,7 @@ module Frameit
|
|
450
450
|
# No string files, fallback to Framefile config
|
451
451
|
text = fetch_config[type.to_s]['text'] if fetch_config[type.to_s] && fetch_config[type.to_s]['text'] && fetch_config[type.to_s]['text'].length > 0 # Ignore empty string
|
452
452
|
|
453
|
-
if type == :title
|
453
|
+
if type == :title && !text
|
454
454
|
# title is mandatory
|
455
455
|
UI.user_error!("Could not get title for screenshot #{screenshot.path}. Please provide one in your Framefile.json or title.strings")
|
456
456
|
end
|
@@ -37,7 +37,6 @@ module Gym
|
|
37
37
|
options << "-sdk '#{config[:sdk]}'" if config[:sdk]
|
38
38
|
options << "-toolchain '#{config[:toolchain]}'" if config[:toolchain]
|
39
39
|
options << "-destination '#{config[:destination]}'" if config[:destination]
|
40
|
-
options << "-xcconfig '#{config[:xcconfig]}'" if config[:xcconfig]
|
41
40
|
options << "-archivePath #{archive_path.shellescape}" unless config[:skip_archive]
|
42
41
|
options << "-derivedDataPath '#{config[:derived_data_path]}'" if config[:derived_data_path]
|
43
42
|
options << "-resultBundlePath '#{result_bundle_path}'" if config[:result_bundle]
|
@@ -59,7 +59,7 @@ module Match
|
|
59
59
|
|
60
60
|
checkout_branch(branch) unless branch == "master"
|
61
61
|
|
62
|
-
if !Helper.test?
|
62
|
+
if !Helper.test? && GitHelper.match_version(@dir).nil? && manual_password.nil? && File.exist?(File.join(@dir, "README.md"))
|
63
63
|
UI.important("Migrating to new match...")
|
64
64
|
ChangePassword.update(params: { git_url: git_url,
|
65
65
|
git_branch: branch,
|
data/match/lib/match/options.rb
CHANGED
@@ -125,7 +125,7 @@ module Match
|
|
125
125
|
description: nil,
|
126
126
|
verify_block: proc do |value|
|
127
127
|
unless Helper.test?
|
128
|
-
if value.start_with?("/var/folders")
|
128
|
+
if value.start_with?("/var/folders") || value.include?("tmp/") || value.include?("temp/")
|
129
129
|
# that's fine
|
130
130
|
else
|
131
131
|
UI.user_error!("Specify the `git_url` instead of the `path`")
|
data/match/lib/match/runner.rb
CHANGED
@@ -67,7 +67,7 @@ module Match
|
|
67
67
|
end
|
68
68
|
|
69
69
|
# Done
|
70
|
-
if self.files_to_commmit.count > 0
|
70
|
+
if self.files_to_commmit.count > 0 && !params[:readonly]
|
71
71
|
message = GitHelper.generate_commit_message(params)
|
72
72
|
GitHelper.commit_changes(params[:workspace], message, params[:git_url], params[:git_branch], self.files_to_commmit)
|
73
73
|
end
|
@@ -94,7 +94,7 @@ module Match
|
|
94
94
|
certs = Dir[File.join(params[:workspace], "certs", cert_type.to_s, "*.cer")]
|
95
95
|
keys = Dir[File.join(params[:workspace], "certs", cert_type.to_s, "*.p12")]
|
96
96
|
|
97
|
-
if certs.count == 0
|
97
|
+
if certs.count == 0 || keys.count == 0
|
98
98
|
UI.important("Couldn't find a valid code signing identity in the git repo for #{cert_type}... creating one for you now")
|
99
99
|
UI.crash!("No code signing identity found and can not create a new one because you enabled `readonly`") if params[:readonly]
|
100
100
|
cert_path = Generator.generate_certificate(params, cert_type)
|
@@ -151,7 +151,7 @@ module Match
|
|
151
151
|
end
|
152
152
|
end
|
153
153
|
|
154
|
-
if profile.nil?
|
154
|
+
if profile.nil? || params[:force]
|
155
155
|
if params[:readonly]
|
156
156
|
all_profiles = Dir.entries(base_dir).reject { |f| f.start_with?(".") }
|
157
157
|
UI.error("No matching provisioning profiles found for '#{profile_name}'")
|
@@ -15,7 +15,7 @@ module Pilot
|
|
15
15
|
|
16
16
|
UI.user_error!("No ipa file given") unless config[:ipa]
|
17
17
|
|
18
|
-
if options[:changelog].nil?
|
18
|
+
if options[:changelog].nil? && options[:distribute_external] == true
|
19
19
|
if UI.interactive?
|
20
20
|
options[:changelog] = UI.input("No changelog provided for new build. Please provide a changelog. You can also provide a changelog using the `changelog` option")
|
21
21
|
else
|
@@ -62,7 +62,7 @@ module Pilot
|
|
62
62
|
|
63
63
|
def distribute(options, build: nil)
|
64
64
|
start(options)
|
65
|
-
if config[:apple_id].to_s.length == 0
|
65
|
+
if config[:apple_id].to_s.length == 0 && config[:app_identifier].to_s.length == 0
|
66
66
|
config[:app_identifier] = UI.input("App Identifier: ")
|
67
67
|
end
|
68
68
|
|
@@ -102,7 +102,7 @@ module Pilot
|
|
102
102
|
|
103
103
|
def list(options)
|
104
104
|
start(options)
|
105
|
-
if config[:apple_id].to_s.length == 0
|
105
|
+
if config[:apple_id].to_s.length == 0 && config[:app_identifier].to_s.length == 0
|
106
106
|
config[:app_identifier] = UI.input("App Identifier: ")
|
107
107
|
end
|
108
108
|
|
@@ -40,7 +40,6 @@ module Scan
|
|
40
40
|
options << "-enableCodeCoverage #{config[:code_coverage] ? 'YES' : 'NO'}" unless config[:code_coverage].nil?
|
41
41
|
options << "-enableAddressSanitizer #{config[:address_sanitizer] ? 'YES' : 'NO'}" unless config[:address_sanitizer].nil?
|
42
42
|
options << "-enableThreadSanitizer #{config[:thread_sanitizer] ? 'YES' : 'NO'}" unless config[:thread_sanitizer].nil?
|
43
|
-
options << "-xcconfig '#{config[:xcconfig]}'" if config[:xcconfig]
|
44
43
|
options << "-xctestrun '#{config[:xctestrun]}'" if config[:xctestrun]
|
45
44
|
options << config[:xcargs] if config[:xcargs]
|
46
45
|
|
@@ -6,7 +6,7 @@ module Scan
|
|
6
6
|
# e.g. ...<testsuites tests='2' failures='1'>...
|
7
7
|
matched = output.scan(/<testsuites\b(?=[^<>]*\s+tests='(\d+)')(?=[^<>]*\s+failures='(\d+)')[^<>]+>/)
|
8
8
|
|
9
|
-
if matched
|
9
|
+
if matched && matched.length == 1 && matched[0].length == 2
|
10
10
|
tests = matched[0][0].to_i
|
11
11
|
failures = matched[0][1].to_i
|
12
12
|
|
data/sigh/lib/sigh/runner.rb
CHANGED
@@ -222,7 +222,7 @@ module Sigh
|
|
222
222
|
end
|
223
223
|
end
|
224
224
|
|
225
|
-
if certificates.count > 1
|
225
|
+
if certificates.count > 1 && !Sigh.config[:development]
|
226
226
|
UI.important("Found more than one code signing identity. Choosing the first one. Check out `fastlane sigh --help` to see all available options.")
|
227
227
|
UI.important("Available Code Signing Identities for current filters:")
|
228
228
|
certificates.each do |c|
|
@@ -37,6 +37,14 @@ module Snapshot
|
|
37
37
|
description: "Pass additional arguments to xcodebuild for the test phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\"",
|
38
38
|
optional: true,
|
39
39
|
type: :shell_string),
|
40
|
+
FastlaneCore::ConfigItem.new(key: :xcconfig,
|
41
|
+
short_option: "-y",
|
42
|
+
env_name: "SNAPSHOT_XCCONFIG",
|
43
|
+
description: "Use an extra XCCONFIG file to build your app",
|
44
|
+
optional: true,
|
45
|
+
verify_block: proc do |value|
|
46
|
+
UI.user_error!("File not found at path '#{File.expand_path(value)}'") unless File.exist?(value)
|
47
|
+
end),
|
40
48
|
FastlaneCore::ConfigItem.new(key: :devices,
|
41
49
|
description: "A list of devices you want to take the screenshots from",
|
42
50
|
short_option: "-d",
|
@@ -16,7 +16,7 @@ require_relative 'simulator_launchers/launcher_configuration'
|
|
16
16
|
module Snapshot
|
17
17
|
class Runner
|
18
18
|
def work
|
19
|
-
if File.exist?("./fastlane/snapshot.js")
|
19
|
+
if File.exist?("./fastlane/snapshot.js") || File.exist?("./snapshot.js")
|
20
20
|
UI.error("Found old snapshot configuration file 'snapshot.js'")
|
21
21
|
UI.error("You updated to snapshot 1.0 which now uses UI Automation")
|
22
22
|
UI.error("Please follow the migration guide: https://github.com/fastlane/fastlane/blob/master/snapshot/MigrationGuide.md")
|
@@ -52,7 +52,10 @@ module Snapshot
|
|
52
52
|
return [destinations.join(' ')]
|
53
53
|
end
|
54
54
|
|
55
|
-
def verify_devices_share_os(
|
55
|
+
def verify_devices_share_os(device_names)
|
56
|
+
# Get device types based off of device name
|
57
|
+
devices = get_device_type_with_simctl(device_names)
|
58
|
+
|
56
59
|
# Check each device to see if it is an iOS device
|
57
60
|
all_ios = devices.map do |device|
|
58
61
|
device = device.downcase
|
@@ -74,6 +77,30 @@ module Snapshot
|
|
74
77
|
# as checked above, that would imply that this is a mixed bag
|
75
78
|
return devices.count == 1
|
76
79
|
end
|
80
|
+
|
81
|
+
private
|
82
|
+
|
83
|
+
# Creates an alias for require to prevent `rubocop/require_tools`
|
84
|
+
# from failing. This eventually change it when `simctl` doesn't
|
85
|
+
# execute shell commands at the top-level anymore
|
86
|
+
#
|
87
|
+
# Issue: https://github.com/fastlane/fastlane/issues/12071
|
88
|
+
alias silence_the_horrible_require_checker require
|
89
|
+
|
90
|
+
def get_device_type_with_simctl(device_names)
|
91
|
+
return device_names if Helper.test?
|
92
|
+
|
93
|
+
silence_the_horrible_require_checker("simctl")
|
94
|
+
|
95
|
+
# Gets actual simctl device type from device name
|
96
|
+
return device_names.map do |device_name|
|
97
|
+
# Disable checking due to alias-ed require above
|
98
|
+
device = SimCtl.device(name: device_name) # rubocop:disable Require/MissingRequireStatement
|
99
|
+
if device
|
100
|
+
device.devicetype.name
|
101
|
+
end
|
102
|
+
end.compact
|
103
|
+
end
|
77
104
|
end
|
78
105
|
end
|
79
106
|
end
|
@@ -340,7 +340,7 @@ module Spaceship
|
|
340
340
|
#
|
341
341
|
# @return (Spaceship::Client) The client the login method was called for
|
342
342
|
def login(user = nil, password = nil)
|
343
|
-
if user.to_s.empty?
|
343
|
+
if user.to_s.empty? || password.to_s.empty?
|
344
344
|
require 'credentials_manager/account_manager'
|
345
345
|
|
346
346
|
keychain_entry = CredentialsManager::AccountManager.new(user: user, password: password)
|
@@ -348,7 +348,7 @@ module Spaceship
|
|
348
348
|
password = keychain_entry.password
|
349
349
|
end
|
350
350
|
|
351
|
-
if user.to_s.strip.empty?
|
351
|
+
if user.to_s.strip.empty? || password.to_s.strip.empty?
|
352
352
|
raise NoUserCredentialsError.new, "No login data provided"
|
353
353
|
end
|
354
354
|
|
@@ -657,9 +657,9 @@ module Spaceship
|
|
657
657
|
|
658
658
|
# Is called from `parse_response` to store the latest csrf_token (if available)
|
659
659
|
def store_csrf_tokens(response)
|
660
|
-
if response
|
660
|
+
if response && response.headers
|
661
661
|
tokens = response.headers.select { |k, v| %w(csrf csrf_ts).include?(k) }
|
662
|
-
if tokens
|
662
|
+
if tokens && !tokens.empty?
|
663
663
|
@csrf_tokens = tokens
|
664
664
|
end
|
665
665
|
end
|
@@ -89,7 +89,7 @@ module Spaceship
|
|
89
89
|
req.headers['Connection'] = "keep-alive"
|
90
90
|
end
|
91
91
|
|
92
|
-
if r.status == 500
|
92
|
+
if r.status == 500 && r.body.include?("Server Error")
|
93
93
|
return upload_file(app_version: app_version, upload_file: upload_file, path: path, content_provider_id: content_provider_id, sso_token: sso_token, du_validation_rule_set: du_validation_rule_set, app_id: app_id)
|
94
94
|
end
|
95
95
|
|
@@ -262,7 +262,7 @@ module Spaceship
|
|
262
262
|
app = Spaceship::Portal::App.find(bundle_id, mac: mac)
|
263
263
|
raise "Could not find app with bundle id '#{bundle_id}'" unless app
|
264
264
|
|
265
|
-
raise "Invalid sub_platform #{sub_platform}, valid values are tvOS" if !sub_platform.nil?
|
265
|
+
raise "Invalid sub_platform #{sub_platform}, valid values are tvOS" if !sub_platform.nil? && sub_platform != 'tvOS'
|
266
266
|
|
267
267
|
# Fill in sensible default values
|
268
268
|
name ||= [bundle_id, self.pretty_type].join(' ')
|
@@ -278,8 +278,8 @@ module Spaceship
|
|
278
278
|
# Fix https://github.com/KrauseFx/fastlane/issues/349
|
279
279
|
certificate_parameter = certificate_parameter.first if certificate_parameter.count == 1
|
280
280
|
|
281
|
-
if devices.nil?
|
282
|
-
if self == Development
|
281
|
+
if devices.nil? || devices.count == 0
|
282
|
+
if self == Development || self == AdHoc
|
283
283
|
# For Development and AdHoc we usually want all compatible devices by default
|
284
284
|
if mac
|
285
285
|
devices = Spaceship::Portal::Device.all_macs
|
@@ -364,7 +364,7 @@ module Spaceship
|
|
364
364
|
# This may also contain invalid or expired profiles
|
365
365
|
def find_by_bundle_id(bundle_id: nil, mac: false, sub_platform: nil)
|
366
366
|
raise "Missing required parameter 'bundle_id'" if bundle_id.to_s.empty?
|
367
|
-
raise "Invalid sub_platform #{sub_platform}, valid values are tvOS" if !sub_platform.nil?
|
367
|
+
raise "Invalid sub_platform #{sub_platform}, valid values are tvOS" if !sub_platform.nil? && sub_platform != 'tvOS'
|
368
368
|
find_tvos_profiles = sub_platform == 'tvOS'
|
369
369
|
all(mac: mac).find_all do |profile|
|
370
370
|
profile.app.bundle_id == bundle_id && profile.tvos? == find_tvos_profiles
|
@@ -6,6 +6,7 @@ require_relative 'app_submission'
|
|
6
6
|
require_relative 'app_version'
|
7
7
|
require_relative 'app_version_generated_promocodes'
|
8
8
|
require_relative 'app_version_history'
|
9
|
+
require_relative 'build_train'
|
9
10
|
require_relative 'iap'
|
10
11
|
require_relative 'tunes_base'
|
11
12
|
require_relative 'version_set'
|
@@ -236,6 +237,15 @@ module Spaceship
|
|
236
237
|
end
|
237
238
|
end
|
238
239
|
|
240
|
+
def reject_version_if_possible!
|
241
|
+
can_reject = edit_version.can_reject_version
|
242
|
+
if can_reject
|
243
|
+
client.reject!(apple_id, edit_version.version_id)
|
244
|
+
end
|
245
|
+
|
246
|
+
return can_reject
|
247
|
+
end
|
248
|
+
|
239
249
|
# set the price tier. This method doesn't require `save` to be called
|
240
250
|
def update_price_tier!(price_tier)
|
241
251
|
client.update_price_tier!(self.apple_id, price_tier)
|
@@ -296,6 +306,30 @@ module Spaceship
|
|
296
306
|
return TestFlight::Build.all_processing_builds(app_id: self.apple_id, platform: platform || self.platform)
|
297
307
|
end
|
298
308
|
|
309
|
+
def tunes_all_build_trains(app_id: nil, platform: nil)
|
310
|
+
resp = client.all_build_trains(app_id: apple_id, platform: platform)
|
311
|
+
trains = resp["trains"] or []
|
312
|
+
trains.map do |attrs|
|
313
|
+
attrs['application'] = self
|
314
|
+
Tunes::BuildTrain.factory(attrs)
|
315
|
+
end
|
316
|
+
end
|
317
|
+
|
318
|
+
def tunes_all_builds_for_train(train: nil, platform: nil)
|
319
|
+
resp = client.all_builds_for_train(app_id: apple_id, train: train, platform: platform)
|
320
|
+
items = resp["items"] or []
|
321
|
+
items.map do |attrs|
|
322
|
+
attrs['apple_id'] = apple_id
|
323
|
+
Tunes::Build.factory(attrs)
|
324
|
+
end
|
325
|
+
end
|
326
|
+
|
327
|
+
def tunes_build_details(train: nil, build_number: nil, platform: nil)
|
328
|
+
resp = client.build_details(app_id: apple_id, train: train, build_number: build_number, platform: platform)
|
329
|
+
resp['apple_id'] = apple_id
|
330
|
+
Tunes::BuildDetails.factory(resp)
|
331
|
+
end
|
332
|
+
|
299
333
|
# Get all builds that are already processed for all build trains
|
300
334
|
# You can either use the return value (array) or pass a block
|
301
335
|
def builds(platform: nil)
|
@@ -182,7 +182,7 @@ module Spaceship
|
|
182
182
|
hash.each do |key, value|
|
183
183
|
errors += handle_response_hash.call(value, current_language)
|
184
184
|
|
185
|
-
next unless key == 'errorKeys'
|
185
|
+
next unless key == 'errorKeys' && value.kind_of?(Array) && value.count > 0
|
186
186
|
# Prepend the error with the language so it's easier to understand for the user
|
187
187
|
errors += value.collect do |current_error_message|
|
188
188
|
current_language ? "[#{current_language}]: #{current_error_message}" : current_error_message
|
@@ -215,11 +215,11 @@ module Spaceship
|
|
215
215
|
|
216
216
|
if errors.count > 0 # they are separated by `.` by default
|
217
217
|
# Sample `error` content: [["Forbidden"]]
|
218
|
-
if errors.count == 1
|
218
|
+
if errors.count == 1 && errors.first == "You haven't made any changes."
|
219
219
|
# This is a special error which we really don't care about
|
220
|
-
elsif errors.count == 1
|
220
|
+
elsif errors.count == 1 && errors.first.include?("try again later")
|
221
221
|
raise ITunesConnectTemporaryError.new, errors.first
|
222
|
-
elsif errors.count == 1
|
222
|
+
elsif errors.count == 1 && errors.first.include?("Forbidden")
|
223
223
|
raise_insuffient_permission_error!
|
224
224
|
elsif flaky_api_call
|
225
225
|
raise ITunesConnectPotentialServerError.new, errors.join(' ')
|
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.86.0.beta.
|
4
|
+
version: 2.86.0.beta.20180317050040
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Maksym Grebenets
|
@@ -27,7 +27,7 @@ authors:
|
|
27
27
|
autorequire:
|
28
28
|
bindir: bin
|
29
29
|
cert_chain: []
|
30
|
-
date: 2018-03-
|
30
|
+
date: 2018-03-17 00:00:00.000000000 Z
|
31
31
|
dependencies:
|
32
32
|
- !ruby/object:Gem::Dependency
|
33
33
|
name: slack-notifier
|
@@ -591,6 +591,20 @@ dependencies:
|
|
591
591
|
- - "~>"
|
592
592
|
- !ruby/object:Gem::Version
|
593
593
|
version: '0.9'
|
594
|
+
- !ruby/object:Gem::Dependency
|
595
|
+
name: simctl
|
596
|
+
requirement: !ruby/object:Gem::Requirement
|
597
|
+
requirements:
|
598
|
+
- - "~>"
|
599
|
+
- !ruby/object:Gem::Version
|
600
|
+
version: '1.6'
|
601
|
+
type: :runtime
|
602
|
+
prerelease: false
|
603
|
+
version_requirements: !ruby/object:Gem::Requirement
|
604
|
+
requirements:
|
605
|
+
- - "~>"
|
606
|
+
- !ruby/object:Gem::Version
|
607
|
+
version: '1.6'
|
594
608
|
- !ruby/object:Gem::Dependency
|
595
609
|
name: google-api-client
|
596
610
|
requirement: !ruby/object:Gem::Requirement
|
@@ -1607,22 +1621,22 @@ post_install_message:
|
|
1607
1621
|
rdoc_options: []
|
1608
1622
|
require_paths:
|
1609
1623
|
- supply/lib
|
1610
|
-
-
|
1611
|
-
- produce/lib
|
1612
|
-
- scan/lib
|
1624
|
+
- fastlane_core/lib
|
1613
1625
|
- cert/lib
|
1614
|
-
- frameit/lib
|
1615
|
-
- screengrab/lib
|
1616
|
-
- precheck/lib
|
1617
|
-
- pilot/lib
|
1618
1626
|
- gym/lib
|
1619
|
-
-
|
1620
|
-
-
|
1627
|
+
- produce/lib
|
1628
|
+
- pilot/lib
|
1629
|
+
- scan/lib
|
1630
|
+
- spaceship/lib
|
1631
|
+
- sigh/lib
|
1621
1632
|
- deliver/lib
|
1622
|
-
-
|
1633
|
+
- screengrab/lib
|
1623
1634
|
- pem/lib
|
1635
|
+
- frameit/lib
|
1624
1636
|
- credentials_manager/lib
|
1625
|
-
-
|
1637
|
+
- snapshot/lib
|
1638
|
+
- match/lib
|
1639
|
+
- precheck/lib
|
1626
1640
|
- fastlane/lib
|
1627
1641
|
required_ruby_version: !ruby/object:Gem::Requirement
|
1628
1642
|
requirements:
|