fastlane 2.176.0 → 2.177.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (50) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +80 -80
  3. data/deliver/lib/deliver/app_screenshot.rb +6 -2
  4. data/deliver/lib/deliver/runner.rb +1 -1
  5. data/deliver/lib/deliver/upload_metadata.rb +3 -3
  6. data/deliver/lib/deliver/upload_screenshots.rb +10 -10
  7. data/fastlane/lib/fastlane/actions/app_store_connect_api_key.rb +1 -1
  8. data/fastlane/lib/fastlane/actions/appaloosa.rb +7 -2
  9. data/fastlane/lib/fastlane/actions/push_to_git_remote.rb +0 -1
  10. data/fastlane/lib/fastlane/actions/upload_symbols_to_crashlytics.rb +4 -5
  11. data/fastlane/lib/fastlane/version.rb +1 -1
  12. data/fastlane/swift/Deliverfile.swift +1 -1
  13. data/fastlane/swift/DeliverfileProtocol.swift +1 -1
  14. data/fastlane/swift/Fastlane.swift +14 -5
  15. data/fastlane/swift/Gymfile.swift +1 -1
  16. data/fastlane/swift/GymfileProtocol.swift +1 -1
  17. data/fastlane/swift/Matchfile.swift +1 -1
  18. data/fastlane/swift/MatchfileProtocol.swift +1 -1
  19. data/fastlane/swift/Precheckfile.swift +1 -1
  20. data/fastlane/swift/PrecheckfileProtocol.swift +1 -1
  21. data/fastlane/swift/Scanfile.swift +1 -1
  22. data/fastlane/swift/ScanfileProtocol.swift +5 -1
  23. data/fastlane/swift/Screengrabfile.swift +1 -1
  24. data/fastlane/swift/ScreengrabfileProtocol.swift +1 -1
  25. data/fastlane/swift/Snapshotfile.swift +1 -1
  26. data/fastlane/swift/SnapshotfileProtocol.swift +1 -1
  27. data/fastlane/swift/formatting/Brewfile.lock.json +12 -12
  28. data/fastlane_core/lib/fastlane_core.rb +1 -0
  29. data/fastlane_core/lib/fastlane_core/ipa_upload_package_builder.rb +3 -2
  30. data/fastlane_core/lib/fastlane_core/itunes_transporter.rb +4 -2
  31. data/fastlane_core/lib/fastlane_core/pkg_upload_package_builder.rb +3 -2
  32. data/{deliver/lib/deliver → fastlane_core/lib/fastlane_core}/queue_worker.rb +2 -2
  33. data/gym/lib/gym/.runner.rb.swp +0 -0
  34. data/gym/lib/gym/generators/.package_command_generator_xcode7.rb.swp +0 -0
  35. data/pilot/lib/pilot/build_manager.rb +9 -2
  36. data/scan/lib/scan/detect_values.rb +4 -1
  37. data/scan/lib/scan/options.rb +5 -0
  38. data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher_base.rb +2 -1
  39. data/spaceship/lib/spaceship/client.rb +18 -17
  40. data/spaceship/lib/spaceship/connect_api/api_client.rb +24 -6
  41. data/spaceship/lib/spaceship/connect_api/models/app.rb +1 -1
  42. data/spaceship/lib/spaceship/connect_api/models/app_preview_set.rb +5 -0
  43. data/spaceship/lib/spaceship/connect_api/models/app_screenshot_set.rb +5 -0
  44. data/spaceship/lib/spaceship/connect_api/models/app_store_version_localization.rb +6 -0
  45. data/spaceship/lib/spaceship/connect_api/models/build.rb +5 -0
  46. data/spaceship/lib/spaceship/connect_api/models/build_beta_detail.rb +4 -0
  47. data/spaceship/lib/spaceship/connect_api/models/user_invitation.rb +13 -0
  48. data/spaceship/lib/spaceship/connect_api/tunes/tunes.rb +15 -0
  49. metadata +20 -19
  50. 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, handle_errors(response) if response.body['errors']
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
- def handle_401(response)
203
- raise UnauthorizedAccessError, handle_errors(response) if response && (response.body || {})['errors']
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 handle_errors(response)
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.176.0
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
- - Maksym Grebenets
12
+ - Luka Mirosevic
22
13
  - Iulian Onofrei
23
- - Josh Holtz
14
+ - Helmut Januschka
15
+ - Maksym Grebenets
16
+ - Matthew Ellis
24
17
  - Max Ott
25
- - Luka Mirosevic
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
- - Kohki Miki
28
- - Matthew Ellis
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-02-24 00:00:00.000000000 Z
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