fastlane 2.176.0 → 2.177.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +80 -80
- data/deliver/lib/deliver/app_screenshot.rb +6 -2
- data/deliver/lib/deliver/runner.rb +1 -1
- data/deliver/lib/deliver/upload_metadata.rb +3 -3
- data/deliver/lib/deliver/upload_screenshots.rb +10 -10
- data/fastlane/lib/fastlane/actions/app_store_connect_api_key.rb +1 -1
- data/fastlane/lib/fastlane/actions/appaloosa.rb +7 -2
- data/fastlane/lib/fastlane/actions/push_to_git_remote.rb +0 -1
- data/fastlane/lib/fastlane/actions/upload_symbols_to_crashlytics.rb +4 -5
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/fastlane/swift/Deliverfile.swift +1 -1
- data/fastlane/swift/DeliverfileProtocol.swift +1 -1
- data/fastlane/swift/Fastlane.swift +14 -5
- data/fastlane/swift/Gymfile.swift +1 -1
- data/fastlane/swift/GymfileProtocol.swift +1 -1
- data/fastlane/swift/Matchfile.swift +1 -1
- data/fastlane/swift/MatchfileProtocol.swift +1 -1
- data/fastlane/swift/Precheckfile.swift +1 -1
- data/fastlane/swift/PrecheckfileProtocol.swift +1 -1
- data/fastlane/swift/Scanfile.swift +1 -1
- data/fastlane/swift/ScanfileProtocol.swift +5 -1
- data/fastlane/swift/Screengrabfile.swift +1 -1
- data/fastlane/swift/ScreengrabfileProtocol.swift +1 -1
- data/fastlane/swift/Snapshotfile.swift +1 -1
- data/fastlane/swift/SnapshotfileProtocol.swift +1 -1
- data/fastlane/swift/formatting/Brewfile.lock.json +12 -12
- data/fastlane_core/lib/fastlane_core.rb +1 -0
- data/fastlane_core/lib/fastlane_core/ipa_upload_package_builder.rb +3 -2
- data/fastlane_core/lib/fastlane_core/itunes_transporter.rb +4 -2
- data/fastlane_core/lib/fastlane_core/pkg_upload_package_builder.rb +3 -2
- data/{deliver/lib/deliver → fastlane_core/lib/fastlane_core}/queue_worker.rb +2 -2
- data/gym/lib/gym/.runner.rb.swp +0 -0
- data/gym/lib/gym/generators/.package_command_generator_xcode7.rb.swp +0 -0
- data/pilot/lib/pilot/build_manager.rb +9 -2
- data/scan/lib/scan/detect_values.rb +4 -1
- data/scan/lib/scan/options.rb +5 -0
- data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher_base.rb +2 -1
- data/spaceship/lib/spaceship/client.rb +18 -17
- data/spaceship/lib/spaceship/connect_api/api_client.rb +24 -6
- data/spaceship/lib/spaceship/connect_api/models/app.rb +1 -1
- data/spaceship/lib/spaceship/connect_api/models/app_preview_set.rb +5 -0
- data/spaceship/lib/spaceship/connect_api/models/app_screenshot_set.rb +5 -0
- data/spaceship/lib/spaceship/connect_api/models/app_store_version_localization.rb +6 -0
- data/spaceship/lib/spaceship/connect_api/models/build.rb +5 -0
- data/spaceship/lib/spaceship/connect_api/models/build_beta_detail.rb +4 -0
- data/spaceship/lib/spaceship/connect_api/models/user_invitation.rb +13 -0
- data/spaceship/lib/spaceship/connect_api/tunes/tunes.rb +15 -0
- metadata +20 -19
- data/pilot/lib/pilot/.build_manager.rb.swp +0 -0
@@ -150,6 +150,12 @@ module Spaceship
|
|
150
150
|
|
151
151
|
protected
|
152
152
|
|
153
|
+
class TimeoutRetryError < StandardError
|
154
|
+
def initialize(msg)
|
155
|
+
super
|
156
|
+
end
|
157
|
+
end
|
158
|
+
|
153
159
|
def with_asc_retry(tries = 5, &_block)
|
154
160
|
tries = 1 if Object.const_defined?("SpecHelper")
|
155
161
|
|
@@ -159,7 +165,7 @@ module Spaceship
|
|
159
165
|
|
160
166
|
if [500, 504].include?(status)
|
161
167
|
msg = "Timeout received! Retrying after 3 seconds (remaining: #{tries})..."
|
162
|
-
raise msg
|
168
|
+
raise TimeoutRetryError, msg
|
163
169
|
end
|
164
170
|
|
165
171
|
return response
|
@@ -167,7 +173,7 @@ module Spaceship
|
|
167
173
|
# Catch unathorized access and re-raising
|
168
174
|
# There is no need to try again
|
169
175
|
raise error
|
170
|
-
rescue => error
|
176
|
+
rescue TimeoutRetryError => error
|
171
177
|
tries -= 1
|
172
178
|
puts(error) if Spaceship::Globals.verbose?
|
173
179
|
if tries.zero?
|
@@ -190,7 +196,7 @@ module Spaceship
|
|
190
196
|
|
191
197
|
raise UnexpectedResponse, response.body['error'] if response.body['error']
|
192
198
|
|
193
|
-
raise UnexpectedResponse,
|
199
|
+
raise UnexpectedResponse, format_errors(response) if response.body['errors']
|
194
200
|
|
195
201
|
raise UnexpectedResponse, "Temporary App Store Connect error: #{response.body}" if response.body['statusCode'] == 'ERROR'
|
196
202
|
|
@@ -199,11 +205,23 @@ module Spaceship
|
|
199
205
|
return Spaceship::ConnectAPI::Response.new(body: response.body, status: response.status, headers: response.headers, client: self)
|
200
206
|
end
|
201
207
|
|
202
|
-
|
203
|
-
|
208
|
+
# Overridden from Spaceship::Client
|
209
|
+
def handle_error(response)
|
210
|
+
case response.status.to_i
|
211
|
+
when 401
|
212
|
+
raise UnauthorizedAccessError, format_errors(response) if response && (response.body || {})['errors']
|
213
|
+
when 403
|
214
|
+
error = (response.body['errors'] || []).first || {}
|
215
|
+
error_code = error['code']
|
216
|
+
if error_code == "FORBIDDEN.REQUIRED_AGREEMENTS_MISSING_OR_EXPIRED"
|
217
|
+
raise ProgramLicenseAgreementUpdated, format_errors(response) if response && (response.body || {})['errors']
|
218
|
+
else
|
219
|
+
raise AccessForbiddenError, format_errors(response) if response && (response.body || {})['errors']
|
220
|
+
end
|
221
|
+
end
|
204
222
|
end
|
205
223
|
|
206
|
-
def
|
224
|
+
def format_errors(response)
|
207
225
|
# Example error format
|
208
226
|
# {
|
209
227
|
# "errors":[
|
@@ -203,7 +203,7 @@ module Spaceship
|
|
203
203
|
# @return (Bool) Was something changed?
|
204
204
|
def ensure_version!(version_string, platform: nil, client: nil)
|
205
205
|
client ||= Spaceship::ConnectAPI
|
206
|
-
app_store_version = get_edit_app_store_version(platform: platform)
|
206
|
+
app_store_version = get_edit_app_store_version(client: client, platform: platform)
|
207
207
|
|
208
208
|
if app_store_version
|
209
209
|
if version_string != app_store_version.version_string
|
@@ -69,6 +69,11 @@ module Spaceship
|
|
69
69
|
return client.get_app_preview_set(app_preview_set_id: app_preview_set_id, filter: nil, includes: includes, limit: nil, sort: nil).first
|
70
70
|
end
|
71
71
|
|
72
|
+
def delete!(client: nil, filter: {}, includes: nil, limit: nil, sort: nil)
|
73
|
+
client ||= Spaceship::ConnectAPI
|
74
|
+
return client.delete_app_preview_set(app_preview_set_id: id)
|
75
|
+
end
|
76
|
+
|
72
77
|
def upload_preview(client: nil, path: nil, wait_for_processing: true, position: nil, frame_time_code: nil)
|
73
78
|
client ||= Spaceship::ConnectAPI
|
74
79
|
# Upload preview
|
@@ -123,6 +123,11 @@ module Spaceship
|
|
123
123
|
return client.get_app_screenshot_set(app_screenshot_set_id: app_screenshot_set_id, filter: nil, includes: includes, limit: nil, sort: nil).first
|
124
124
|
end
|
125
125
|
|
126
|
+
def delete!(client: nil, filter: {}, includes: nil, limit: nil, sort: nil)
|
127
|
+
client ||= Spaceship::ConnectAPI
|
128
|
+
return client.delete_app_screenshot_set(app_screenshot_set_id: id)
|
129
|
+
end
|
130
|
+
|
126
131
|
def upload_screenshot(client: nil, path: nil, wait_for_processing: true, position: nil)
|
127
132
|
client ||= Spaceship::ConnectAPI
|
128
133
|
screenshot = Spaceship::ConnectAPI::AppScreenshot.create(client: client, app_screenshot_set_id: id, path: path, wait_for_processing: wait_for_processing)
|
@@ -39,6 +39,12 @@ module Spaceship
|
|
39
39
|
# API
|
40
40
|
#
|
41
41
|
|
42
|
+
def self.get(client: nil, app_store_version_localization_id: nil, filter: {}, includes: nil, limit: nil, sort: nil)
|
43
|
+
client ||= Spaceship::ConnectAPI
|
44
|
+
resp = client.get_app_store_version_localization(app_store_version_localization_id: app_store_version_localization_id, filter: filter, includes: includes, limit: limit, sort: sort)
|
45
|
+
return resp.to_models
|
46
|
+
end
|
47
|
+
|
42
48
|
def self.all(client: nil, app_store_version_id: nil, filter: {}, includes: nil, limit: nil, sort: nil)
|
43
49
|
client ||= Spaceship::ConnectAPI
|
44
50
|
resp = client.get_app_store_version_localizations(app_store_version_id: app_store_version_id, filter: filter, includes: includes, limit: limit, sort: sort)
|
@@ -87,6 +87,11 @@ module Spaceship
|
|
87
87
|
return build_beta_detail.ready_for_beta_submission?
|
88
88
|
end
|
89
89
|
|
90
|
+
def missing_export_compliance?
|
91
|
+
raise "No build_beta_detail included" unless build_beta_detail
|
92
|
+
return build_beta_detail.missing_export_compliance?
|
93
|
+
end
|
94
|
+
|
90
95
|
# This is here temporarily until the removal of Spaceship::TestFlight
|
91
96
|
def to_testflight_build
|
92
97
|
h = {
|
@@ -56,6 +56,10 @@ module Spaceship
|
|
56
56
|
def ready_for_beta_submission?
|
57
57
|
return external_build_state == ExternalState::READY_FOR_BETA_SUBMISSION
|
58
58
|
end
|
59
|
+
|
60
|
+
def missing_export_compliance?
|
61
|
+
return external_build_state == ExternalState::MISSING_EXPORT_COMPLIANCE
|
62
|
+
end
|
59
63
|
end
|
60
64
|
end
|
61
65
|
end
|
@@ -53,6 +53,19 @@ module Spaceship
|
|
53
53
|
return all(client: client, filter: { email: email }, includes: includes)
|
54
54
|
end
|
55
55
|
|
56
|
+
def self.create(client: nil, email: nil, first_name: nil, last_name: nil, roles: [], provisioning_allowed: nil, all_apps_visible: nil)
|
57
|
+
client ||= Spaceship::ConnectAPI
|
58
|
+
resp = client.post_user_invitation(
|
59
|
+
email: email,
|
60
|
+
first_name: first_name,
|
61
|
+
last_name: last_name,
|
62
|
+
roles: roles,
|
63
|
+
provisioning_allowed: provisioning_allowed,
|
64
|
+
all_apps_visible: all_apps_visible
|
65
|
+
)
|
66
|
+
return resp.to_models.first
|
67
|
+
end
|
68
|
+
|
56
69
|
def delete!(client: nil)
|
57
70
|
client ||= Spaceship::ConnectAPI
|
58
71
|
client.delete_user_invitation(user_invitation_id: id)
|
@@ -381,6 +381,11 @@ module Spaceship
|
|
381
381
|
tunes_request_client.post("appPreviewSets", body)
|
382
382
|
end
|
383
383
|
|
384
|
+
def delete_app_preview_set(app_preview_set_id: nil)
|
385
|
+
params = tunes_request_client.build_params(filter: nil, includes: nil, limit: nil, sort: nil)
|
386
|
+
tunes_request_client.delete("appPreviewSets/#{app_preview_set_id}", params)
|
387
|
+
end
|
388
|
+
|
384
389
|
def patch_app_preview_set_previews(app_preview_set_id: nil, app_preview_ids: nil)
|
385
390
|
app_preview_ids ||= []
|
386
391
|
|
@@ -515,6 +520,11 @@ module Spaceship
|
|
515
520
|
tunes_request_client.patch("appScreenshotSets/#{app_screenshot_set_id}/relationships/appScreenshots", body)
|
516
521
|
end
|
517
522
|
|
523
|
+
def delete_app_screenshot_set(app_screenshot_set_id: nil)
|
524
|
+
params = tunes_request_client.build_params(filter: nil, includes: nil, limit: nil, sort: nil)
|
525
|
+
tunes_request_client.delete("appScreenshotSets/#{app_screenshot_set_id}", params)
|
526
|
+
end
|
527
|
+
|
518
528
|
#
|
519
529
|
# appScreenshots
|
520
530
|
#
|
@@ -757,6 +767,11 @@ module Spaceship
|
|
757
767
|
tunes_request_client.get("appStoreVersions/#{app_store_version_id}/appStoreVersionLocalizations", params)
|
758
768
|
end
|
759
769
|
|
770
|
+
def get_app_store_version_localization(app_store_version_localization_id: nil, filter: {}, includes: nil, limit: nil, sort: nil)
|
771
|
+
params = tunes_request_client.build_params(filter: nil, includes: nil, limit: nil, sort: nil)
|
772
|
+
tunes_request_client.get("appStoreVersionLocalizations/#{app_store_version_localization_id}", params)
|
773
|
+
end
|
774
|
+
|
760
775
|
def post_app_store_version_localization(app_store_version_id: nil, attributes: {})
|
761
776
|
body = {
|
762
777
|
data: {
|
metadata
CHANGED
@@ -1,35 +1,35 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fastlane
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.177.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
+
- Kohki Miki
|
7
8
|
- Jan Piotrowski
|
8
|
-
- Stefan Natchev
|
9
|
-
- Aaron Brager
|
10
|
-
- Manu Wallner
|
11
|
-
- Jérôme Lacoste
|
12
|
-
- Olivier Halligon
|
13
|
-
- Helmut Januschka
|
14
|
-
- Jorge Revuelta H
|
15
|
-
- Danielle Tomlinson
|
16
9
|
- Jimmy Dee
|
17
|
-
- Felix Krause
|
18
10
|
- Andrew McBurney
|
19
|
-
- Fumiya Nakamura
|
20
11
|
- Daniel Jankowski
|
21
|
-
-
|
12
|
+
- Luka Mirosevic
|
22
13
|
- Iulian Onofrei
|
23
|
-
-
|
14
|
+
- Helmut Januschka
|
15
|
+
- Maksym Grebenets
|
16
|
+
- Matthew Ellis
|
24
17
|
- Max Ott
|
25
|
-
-
|
18
|
+
- Danielle Tomlinson
|
19
|
+
- Aaron Brager
|
20
|
+
- Josh Holtz
|
21
|
+
- Fumiya Nakamura
|
22
|
+
- Olivier Halligon
|
23
|
+
- Jérôme Lacoste
|
26
24
|
- Joshua Liebowitz
|
27
|
-
-
|
28
|
-
-
|
25
|
+
- Stefan Natchev
|
26
|
+
- Felix Krause
|
27
|
+
- Jorge Revuelta H
|
28
|
+
- Manu Wallner
|
29
29
|
autorequire:
|
30
30
|
bindir: bin
|
31
31
|
cert_chain: []
|
32
|
-
date: 2021-
|
32
|
+
date: 2021-03-08 00:00:00.000000000 Z
|
33
33
|
dependencies:
|
34
34
|
- !ruby/object:Gem::Dependency
|
35
35
|
name: slack-notifier
|
@@ -983,7 +983,6 @@ files:
|
|
983
983
|
- deliver/lib/deliver/loader.rb
|
984
984
|
- deliver/lib/deliver/module.rb
|
985
985
|
- deliver/lib/deliver/options.rb
|
986
|
-
- deliver/lib/deliver/queue_worker.rb
|
987
986
|
- deliver/lib/deliver/runner.rb
|
988
987
|
- deliver/lib/deliver/setup.rb
|
989
988
|
- deliver/lib/deliver/submit_for_review.rb
|
@@ -1423,6 +1422,7 @@ files:
|
|
1423
1422
|
- fastlane_core/lib/fastlane_core/print_table.rb
|
1424
1423
|
- fastlane_core/lib/fastlane_core/project.rb
|
1425
1424
|
- fastlane_core/lib/fastlane_core/provisioning_profile.rb
|
1425
|
+
- fastlane_core/lib/fastlane_core/queue_worker.rb
|
1426
1426
|
- fastlane_core/lib/fastlane_core/string_filters.rb
|
1427
1427
|
- fastlane_core/lib/fastlane_core/swag.rb
|
1428
1428
|
- fastlane_core/lib/fastlane_core/tag_version.rb
|
@@ -1465,10 +1465,12 @@ files:
|
|
1465
1465
|
- gym/lib/assets/GymfileTemplate.swift
|
1466
1466
|
- gym/lib/assets/wrap_xcodebuild/xcbuild-safe.sh
|
1467
1467
|
- gym/lib/gym.rb
|
1468
|
+
- gym/lib/gym/.runner.rb.swp
|
1468
1469
|
- gym/lib/gym/code_signing_mapping.rb
|
1469
1470
|
- gym/lib/gym/commands_generator.rb
|
1470
1471
|
- gym/lib/gym/detect_values.rb
|
1471
1472
|
- gym/lib/gym/error_handler.rb
|
1473
|
+
- gym/lib/gym/generators/.package_command_generator_xcode7.rb.swp
|
1472
1474
|
- gym/lib/gym/generators/README.md
|
1473
1475
|
- gym/lib/gym/generators/build_command_generator.rb
|
1474
1476
|
- gym/lib/gym/generators/package_command_generator.rb
|
@@ -1514,7 +1516,6 @@ files:
|
|
1514
1516
|
- pem/lib/pem/options.rb
|
1515
1517
|
- pilot/README.md
|
1516
1518
|
- pilot/lib/pilot.rb
|
1517
|
-
- pilot/lib/pilot/.build_manager.rb.swp
|
1518
1519
|
- pilot/lib/pilot/build_manager.rb
|
1519
1520
|
- pilot/lib/pilot/commands_generator.rb
|
1520
1521
|
- pilot/lib/pilot/features.rb
|
Binary file
|