fastlane 2.220.0 → 2.221.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +100 -100
  3. data/deliver/lib/deliver/options.rb +1 -1
  4. data/deliver/lib/deliver/submit_for_review.rb +2 -79
  5. data/fastlane/lib/fastlane/actions/app_store_connect_api_key.rb +2 -1
  6. data/fastlane/lib/fastlane/actions/docs/upload_to_app_store.md.erb +3 -3
  7. data/fastlane/lib/fastlane/actions/spm.rb +7 -0
  8. data/fastlane/lib/fastlane/lane_manager_base.rb +16 -8
  9. data/fastlane/lib/fastlane/runner.rb +2 -2
  10. data/fastlane/lib/fastlane/version.rb +1 -1
  11. data/fastlane/swift/Deliverfile.swift +1 -1
  12. data/fastlane/swift/DeliverfileProtocol.swift +2 -2
  13. data/fastlane/swift/Fastlane.swift +12 -8
  14. data/fastlane/swift/Gymfile.swift +1 -1
  15. data/fastlane/swift/GymfileProtocol.swift +1 -1
  16. data/fastlane/swift/Matchfile.swift +1 -1
  17. data/fastlane/swift/MatchfileProtocol.swift +1 -1
  18. data/fastlane/swift/Precheckfile.swift +1 -1
  19. data/fastlane/swift/PrecheckfileProtocol.swift +1 -1
  20. data/fastlane/swift/Scanfile.swift +1 -1
  21. data/fastlane/swift/ScanfileProtocol.swift +1 -1
  22. data/fastlane/swift/Screengrabfile.swift +1 -1
  23. data/fastlane/swift/ScreengrabfileProtocol.swift +1 -1
  24. data/fastlane/swift/Snapshotfile.swift +1 -1
  25. data/fastlane/swift/SnapshotfileProtocol.swift +1 -1
  26. data/fastlane/swift/formatting/Brewfile.lock.json +19 -19
  27. data/fastlane_core/lib/fastlane_core/ui/implementations/shell.rb +2 -0
  28. data/match/lib/match/runner.rb +0 -1
  29. data/pilot/lib/pilot/build_manager.rb +9 -4
  30. data/spaceship/lib/spaceship/connect_api/api_client.rb +1 -1
  31. data/spaceship/lib/spaceship/connect_api/models/app.rb +28 -33
  32. data/spaceship/lib/spaceship/connect_api/models/app_store_version.rb +1 -19
  33. data/spaceship/lib/spaceship/connect_api/provisioning/client.rb +1 -1
  34. data/spaceship/lib/spaceship/connect_api/provisioning/provisioning.rb +31 -22
  35. data/spaceship/lib/spaceship/connect_api/testflight/client.rb +1 -1
  36. data/spaceship/lib/spaceship/connect_api/testflight/testflight.rb +47 -43
  37. data/spaceship/lib/spaceship/connect_api/token.rb +7 -2
  38. data/spaceship/lib/spaceship/connect_api/tunes/client.rb +1 -1
  39. data/spaceship/lib/spaceship/connect_api/tunes/tunes.rb +92 -131
  40. data/spaceship/lib/spaceship/connect_api/users/client.rb +1 -1
  41. data/spaceship/lib/spaceship/connect_api/users/users.rb +15 -11
  42. data/spaceship/lib/spaceship/connect_api.rb +0 -1
  43. data/spaceship/lib/spaceship/stats_middleware.rb +2 -2
  44. data/spaceship/lib/spaceship/tunes/app_submission.rb +0 -19
  45. metadata +23 -24
  46. data/spaceship/lib/spaceship/connect_api/models/idfa_declaration.rb +0 -43
@@ -17,4 +17,4 @@ public class Gymfile: GymfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.220.0
20
+ // Generated with fastlane 2.221.1
@@ -208,4 +208,4 @@ public extension GymfileProtocol {
208
208
 
209
209
  // Please don't remove the lines below
210
210
  // They are used to detect outdated files
211
- // FastlaneRunnerAPIVersion [0.9.127]
211
+ // FastlaneRunnerAPIVersion [0.9.129]
@@ -17,4 +17,4 @@ public class Matchfile: MatchfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.220.0
20
+ // Generated with fastlane 2.221.1
@@ -228,4 +228,4 @@ public extension MatchfileProtocol {
228
228
 
229
229
  // Please don't remove the lines below
230
230
  // They are used to detect outdated files
231
- // FastlaneRunnerAPIVersion [0.9.121]
231
+ // FastlaneRunnerAPIVersion [0.9.123]
@@ -17,4 +17,4 @@ public class Precheckfile: PrecheckfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.220.0
20
+ // Generated with fastlane 2.221.1
@@ -52,4 +52,4 @@ public extension PrecheckfileProtocol {
52
52
 
53
53
  // Please don't remove the lines below
54
54
  // They are used to detect outdated files
55
- // FastlaneRunnerAPIVersion [0.9.120]
55
+ // FastlaneRunnerAPIVersion [0.9.122]
@@ -17,4 +17,4 @@ public class Scanfile: ScanfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.220.0
20
+ // Generated with fastlane 2.221.1
@@ -320,4 +320,4 @@ public extension ScanfileProtocol {
320
320
 
321
321
  // Please don't remove the lines below
322
322
  // They are used to detect outdated files
323
- // FastlaneRunnerAPIVersion [0.9.132]
323
+ // FastlaneRunnerAPIVersion [0.9.134]
@@ -17,4 +17,4 @@ public class Screengrabfile: ScreengrabfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.220.0
20
+ // Generated with fastlane 2.221.1
@@ -96,4 +96,4 @@ public extension ScreengrabfileProtocol {
96
96
 
97
97
  // Please don't remove the lines below
98
98
  // They are used to detect outdated files
99
- // FastlaneRunnerAPIVersion [0.9.122]
99
+ // FastlaneRunnerAPIVersion [0.9.124]
@@ -17,4 +17,4 @@ public class Snapshotfile: SnapshotfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.220.0
20
+ // Generated with fastlane 2.221.1
@@ -204,4 +204,4 @@ public extension SnapshotfileProtocol {
204
204
 
205
205
  // Please don't remove the lines below
206
206
  // They are used to detect outdated files
207
- // FastlaneRunnerAPIVersion [0.9.116]
207
+ // FastlaneRunnerAPIVersion [0.9.118]
@@ -2,45 +2,45 @@
2
2
  "entries": {
3
3
  "brew": {
4
4
  "swiftformat": {
5
- "version": "0.53.5",
5
+ "version": "0.53.10",
6
6
  "bottle": {
7
7
  "rebuild": 0,
8
8
  "root_url": "https://ghcr.io/v2/homebrew/core",
9
9
  "files": {
10
10
  "arm64_sonoma": {
11
11
  "cellar": ":any_skip_relocation",
12
- "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:04e089d4b1ae1217dd6c8133b3c661add56d7c4f4f24ee67becd3cf8f54e6e80",
13
- "sha256": "04e089d4b1ae1217dd6c8133b3c661add56d7c4f4f24ee67becd3cf8f54e6e80"
12
+ "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:07a24ab550f0a4b26168b77c14b3b184e97552eb9071723af1103b1ff8d38bfd",
13
+ "sha256": "07a24ab550f0a4b26168b77c14b3b184e97552eb9071723af1103b1ff8d38bfd"
14
14
  },
15
15
  "arm64_ventura": {
16
16
  "cellar": ":any_skip_relocation",
17
- "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:19a6ce102e7df1cdee150dee619025aa3b2a4980070bee4f8cdd6976c0936d46",
18
- "sha256": "19a6ce102e7df1cdee150dee619025aa3b2a4980070bee4f8cdd6976c0936d46"
17
+ "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:2781c7eb35cfe585ae8a5f41395694e67af26c5725d25d08530a4f6adb191842",
18
+ "sha256": "2781c7eb35cfe585ae8a5f41395694e67af26c5725d25d08530a4f6adb191842"
19
19
  },
20
20
  "arm64_monterey": {
21
21
  "cellar": ":any_skip_relocation",
22
- "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:745ba037da0e1fe62f2f22faa45a17655b89d8870bacd9db32597ce1fd779509",
23
- "sha256": "745ba037da0e1fe62f2f22faa45a17655b89d8870bacd9db32597ce1fd779509"
22
+ "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:be39b5733c7a181931682200f3fbece32146b84b7098fec1d9f4d22d248a91e9",
23
+ "sha256": "be39b5733c7a181931682200f3fbece32146b84b7098fec1d9f4d22d248a91e9"
24
24
  },
25
25
  "sonoma": {
26
26
  "cellar": ":any_skip_relocation",
27
- "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:6830f0bd5d06dca19d2bcd614e6d0c87e7a3d703d33bce90d0448a83310dddcc",
28
- "sha256": "6830f0bd5d06dca19d2bcd614e6d0c87e7a3d703d33bce90d0448a83310dddcc"
27
+ "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:a080392954a019c55552ca7c6ab56033e8ab6aa1a598a0015b80ee12c62a4414",
28
+ "sha256": "a080392954a019c55552ca7c6ab56033e8ab6aa1a598a0015b80ee12c62a4414"
29
29
  },
30
30
  "ventura": {
31
31
  "cellar": ":any_skip_relocation",
32
- "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:dacbfeca6cbe99fc73448f08c0289f135e807bc220ac1dcb61952410f1b43535",
33
- "sha256": "dacbfeca6cbe99fc73448f08c0289f135e807bc220ac1dcb61952410f1b43535"
32
+ "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:7a5cc00008a574bcc3f94c8048fe058a4211a1f2952b65051a723212c07d8ce5",
33
+ "sha256": "7a5cc00008a574bcc3f94c8048fe058a4211a1f2952b65051a723212c07d8ce5"
34
34
  },
35
35
  "monterey": {
36
36
  "cellar": ":any_skip_relocation",
37
- "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:a5e30f5378aca201ca8bc7a350ebac28b3202366be1b37cf254f77c27761753a",
38
- "sha256": "a5e30f5378aca201ca8bc7a350ebac28b3202366be1b37cf254f77c27761753a"
37
+ "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:60b9451e66902de3233febbf20cfa3df39304fb329eb478a8cab277874da7869",
38
+ "sha256": "60b9451e66902de3233febbf20cfa3df39304fb329eb478a8cab277874da7869"
39
39
  },
40
40
  "x86_64_linux": {
41
41
  "cellar": "/home/linuxbrew/.linuxbrew/Cellar",
42
- "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:909ae79dbe735c9377355e202d07a58aeff1af1707ba7a3c843cf7c3b10f68a9",
43
- "sha256": "909ae79dbe735c9377355e202d07a58aeff1af1707ba7a3c843cf7c3b10f68a9"
42
+ "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:d4bacdce7d4de2ca8e026577a94e87828038d25c28235a96f740fee46c317798",
43
+ "sha256": "d4bacdce7d4de2ca8e026577a94e87828038d25c28235a96f740fee46c317798"
44
44
  }
45
45
  }
46
46
  }
@@ -82,12 +82,12 @@
82
82
  "macOS": "13.6"
83
83
  },
84
84
  "sonoma": {
85
- "HOMEBREW_VERSION": "4.2.16-71-g044e48b",
85
+ "HOMEBREW_VERSION": "4.3.5",
86
86
  "HOMEBREW_PREFIX": "/opt/homebrew",
87
87
  "Homebrew/homebrew-core": "api",
88
- "CLT": "15.0.0.0.1.1694021235",
89
- "Xcode": "15.3",
90
- "macOS": "14.2.1"
88
+ "CLT": "15.3.0.0.1.1708646388",
89
+ "Xcode": "15.0.1",
90
+ "macOS": "14.5"
91
91
  }
92
92
  }
93
93
  }
@@ -108,12 +108,14 @@ module FastlaneCore
108
108
  start_line = error_line - 2 < 1 ? 1 : error_line - 2
109
109
  end_line = error_line + 2 < contents.length ? error_line + 2 : contents.length
110
110
 
111
+ error('```')
111
112
  Range.new(start_line, end_line).each do |line|
112
113
  str = line == error_line ? " => " : " "
113
114
  str << line.to_s.rjust(Math.log10(end_line) + 1)
114
115
  str << ":\t#{contents[line - 1]}"
115
116
  error(str)
116
117
  end
118
+ error('```')
117
119
  end
118
120
 
119
121
  #####################################################
@@ -356,7 +356,6 @@ module Match
356
356
 
357
357
  if params[:output_path]
358
358
  FileUtils.cp(stored_profile_path, params[:output_path])
359
- installed_profile = FastlaneCore::ProvisioningProfile.install(profile, keychain_path)
360
359
  end
361
360
 
362
361
  Utils.fill_environment(Utils.environment_variable_name(app_identifier: app_identifier,
@@ -368,12 +368,17 @@ module Pilot
368
368
  end
369
369
 
370
370
  def reject_build_waiting_for_review(build)
371
- waiting_for_review_build = build.app.get_builds(filter: { "betaAppReviewSubmission.betaReviewState" => "WAITING_FOR_REVIEW" }, includes: "betaAppReviewSubmission,preReleaseVersion").first
371
+ waiting_for_review_build = build.app.get_builds(
372
+ filter: { "betaAppReviewSubmission.betaReviewState" => "WAITING_FOR_REVIEW,IN_REVIEW",
373
+ "expired" => false,
374
+ "preReleaseVersion.version" => build.pre_release_version.version },
375
+ includes: "betaAppReviewSubmission,preReleaseVersion"
376
+ ).first
372
377
  unless waiting_for_review_build.nil?
373
378
  UI.important("Another build is already in review. Going to remove that build and submit the new one.")
374
- UI.important("Deleting beta app review submission for build: #{waiting_for_review_build.app_version} - #{waiting_for_review_build.version}")
375
- waiting_for_review_build.beta_app_review_submission.delete!
376
- UI.success("Deleted beta app review submission for previous build: #{waiting_for_review_build.app_version} - #{waiting_for_review_build.version}")
379
+ UI.important("Canceling beta app review submission for build: #{waiting_for_review_build.app_version} - #{waiting_for_review_build.version}")
380
+ waiting_for_review_build.expire!
381
+ UI.success("Canceled beta app review submission for previous build: #{waiting_for_review_build.app_version} - #{waiting_for_review_build.version}")
377
382
  end
378
383
  end
379
384
 
@@ -69,7 +69,7 @@ module Spaceship
69
69
  # Forwarding to class level if using web session.
70
70
  def hostname
71
71
  if @token
72
- return "https://api.appstoreconnect.apple.com/v1/"
72
+ return "https://api.appstoreconnect.apple.com/"
73
73
  end
74
74
  return self.class.hostname
75
75
  end
@@ -116,34 +116,29 @@ module Spaceship
116
116
  def fetch_live_app_info(client: nil, includes: Spaceship::ConnectAPI::AppInfo::ESSENTIAL_INCLUDES)
117
117
  client ||= Spaceship::ConnectAPI
118
118
  states = [
119
- Spaceship::ConnectAPI::AppInfo::AppStoreState::READY_FOR_SALE,
120
- Spaceship::ConnectAPI::AppInfo::AppStoreState::PENDING_APPLE_RELEASE,
121
- Spaceship::ConnectAPI::AppInfo::AppStoreState::PENDING_DEVELOPER_RELEASE,
122
- Spaceship::ConnectAPI::AppInfo::AppStoreState::PROCESSING_FOR_APP_STORE,
123
- Spaceship::ConnectAPI::AppInfo::AppStoreState::IN_REVIEW,
124
- Spaceship::ConnectAPI::AppInfo::AppStoreState::DEVELOPER_REMOVED_FROM_SALE
119
+ Spaceship::ConnectAPI::AppInfo::State::READY_FOR_DISTRIBUTION,
120
+ Spaceship::ConnectAPI::AppInfo::State::PENDING_RELEASE,
121
+ Spaceship::ConnectAPI::AppInfo::State::IN_REVIEW
125
122
  ]
126
123
 
127
124
  resp = client.get_app_infos(app_id: id, includes: includes)
128
125
  return resp.to_models.select do |model|
129
- states.include?(model.app_store_state)
126
+ states.include?(model.state)
130
127
  end.first
131
128
  end
132
129
 
133
130
  def fetch_edit_app_info(client: nil, includes: Spaceship::ConnectAPI::AppInfo::ESSENTIAL_INCLUDES)
134
131
  client ||= Spaceship::ConnectAPI
135
132
  states = [
136
- Spaceship::ConnectAPI::AppInfo::AppStoreState::PREPARE_FOR_SUBMISSION,
137
- Spaceship::ConnectAPI::AppInfo::AppStoreState::DEVELOPER_REJECTED,
138
- Spaceship::ConnectAPI::AppInfo::AppStoreState::REJECTED,
139
- Spaceship::ConnectAPI::AppInfo::AppStoreState::METADATA_REJECTED,
140
- Spaceship::ConnectAPI::AppInfo::AppStoreState::WAITING_FOR_REVIEW,
141
- Spaceship::ConnectAPI::AppInfo::AppStoreState::INVALID_BINARY
133
+ Spaceship::ConnectAPI::AppInfo::State::PREPARE_FOR_SUBMISSION,
134
+ Spaceship::ConnectAPI::AppInfo::State::DEVELOPER_REJECTED,
135
+ Spaceship::ConnectAPI::AppInfo::State::REJECTED,
136
+ Spaceship::ConnectAPI::AppInfo::State::WAITING_FOR_REVIEW
142
137
  ]
143
138
 
144
139
  resp = client.get_app_infos(app_id: id, includes: includes)
145
140
  return resp.to_models.select do |model|
146
- states.include?(model.app_store_state)
141
+ states.include?(model.state)
147
142
  end.first
148
143
  end
149
144
 
@@ -182,11 +177,11 @@ module Spaceship
182
177
  client ||= Spaceship::ConnectAPI
183
178
  platform ||= Spaceship::ConnectAPI::Platform::IOS
184
179
  filter = {
185
- appStoreState: [
186
- Spaceship::ConnectAPI::AppStoreVersion::AppStoreState::PENDING_APPLE_RELEASE,
187
- Spaceship::ConnectAPI::AppStoreVersion::AppStoreState::PENDING_DEVELOPER_RELEASE,
188
- Spaceship::ConnectAPI::AppStoreVersion::AppStoreState::IN_REVIEW,
189
- Spaceship::ConnectAPI::AppStoreVersion::AppStoreState::WAITING_FOR_REVIEW
180
+ appVersionState: [
181
+ Spaceship::ConnectAPI::AppStoreVersion::AppVersionState::PENDING_APPLE_RELEASE,
182
+ Spaceship::ConnectAPI::AppStoreVersion::AppVersionState::PENDING_DEVELOPER_RELEASE,
183
+ Spaceship::ConnectAPI::AppStoreVersion::AppVersionState::IN_REVIEW,
184
+ Spaceship::ConnectAPI::AppStoreVersion::AppVersionState::WAITING_FOR_REVIEW
190
185
  ].join(","),
191
186
  platform: platform
192
187
  }
@@ -240,9 +235,9 @@ module Spaceship
240
235
  client ||= Spaceship::ConnectAPI
241
236
  platform ||= Spaceship::ConnectAPI::Platform::IOS
242
237
  filter = {
243
- appStoreState: [
244
- Spaceship::ConnectAPI::AppStoreVersion::AppStoreState::READY_FOR_SALE,
245
- Spaceship::ConnectAPI::AppStoreVersion::AppStoreState::DEVELOPER_REMOVED_FROM_SALE
238
+ appVersionState: [
239
+ Spaceship::ConnectAPI::AppStoreVersion::AppVersionState::READY_FOR_DISTRIBUTION,
240
+ Spaceship::ConnectAPI::AppStoreVersion::AppVersionState::PROCESSING_FOR_DISTRIBUTION
246
241
  ].join(","),
247
242
  platform: platform
248
243
  }
@@ -253,13 +248,13 @@ module Spaceship
253
248
  client ||= Spaceship::ConnectAPI
254
249
  platform ||= Spaceship::ConnectAPI::Platform::IOS
255
250
  filter = {
256
- appStoreState: [
257
- Spaceship::ConnectAPI::AppStoreVersion::AppStoreState::PREPARE_FOR_SUBMISSION,
258
- Spaceship::ConnectAPI::AppStoreVersion::AppStoreState::DEVELOPER_REJECTED,
259
- Spaceship::ConnectAPI::AppStoreVersion::AppStoreState::REJECTED,
260
- Spaceship::ConnectAPI::AppStoreVersion::AppStoreState::METADATA_REJECTED,
261
- Spaceship::ConnectAPI::AppStoreVersion::AppStoreState::WAITING_FOR_REVIEW,
262
- Spaceship::ConnectAPI::AppStoreVersion::AppStoreState::INVALID_BINARY
251
+ appVersionState: [
252
+ Spaceship::ConnectAPI::AppStoreVersion::AppVersionState::PREPARE_FOR_SUBMISSION,
253
+ Spaceship::ConnectAPI::AppStoreVersion::AppVersionState::DEVELOPER_REJECTED,
254
+ Spaceship::ConnectAPI::AppStoreVersion::AppVersionState::REJECTED,
255
+ Spaceship::ConnectAPI::AppStoreVersion::AppVersionState::METADATA_REJECTED,
256
+ Spaceship::ConnectAPI::AppStoreVersion::AppVersionState::WAITING_FOR_REVIEW,
257
+ Spaceship::ConnectAPI::AppStoreVersion::AppVersionState::INVALID_BINARY
263
258
  ].join(","),
264
259
  platform: platform
265
260
  }
@@ -274,7 +269,7 @@ module Spaceship
274
269
  client ||= Spaceship::ConnectAPI
275
270
  platform ||= Spaceship::ConnectAPI::Platform::IOS
276
271
  filter = {
277
- appStoreState: Spaceship::ConnectAPI::AppStoreVersion::AppStoreState::IN_REVIEW,
272
+ appVersionState: Spaceship::ConnectAPI::AppStoreVersion::AppVersionState::IN_REVIEW,
278
273
  platform: platform
279
274
  }
280
275
  return get_app_store_versions(client: client, filter: filter, includes: includes).first
@@ -284,9 +279,9 @@ module Spaceship
284
279
  client ||= Spaceship::ConnectAPI
285
280
  platform ||= Spaceship::ConnectAPI::Platform::IOS
286
281
  filter = {
287
- appStoreState: [
288
- Spaceship::ConnectAPI::AppStoreVersion::AppStoreState::PENDING_APPLE_RELEASE,
289
- Spaceship::ConnectAPI::AppStoreVersion::AppStoreState::PENDING_DEVELOPER_RELEASE
282
+ appVersionState: [
283
+ Spaceship::ConnectAPI::AppStoreVersion::AppVersionState::PENDING_APPLE_RELEASE,
284
+ Spaceship::ConnectAPI::AppStoreVersion::AppVersionState::PENDING_DEVELOPER_RELEASE
290
285
  ].join(','),
291
286
  platform: platform
292
287
  }
@@ -16,7 +16,6 @@ module Spaceship
16
16
  attr_accessor :copyright
17
17
  attr_accessor :release_type
18
18
  attr_accessor :earliest_release_date # 2020-06-17T12:00:00-07:00
19
- attr_accessor :uses_idfa
20
19
  attr_accessor :is_watch_only
21
20
  attr_accessor :downloadable
22
21
  attr_accessor :created_date
@@ -90,7 +89,6 @@ module Spaceship
90
89
  "copyright" => "copyright",
91
90
  "releaseType" => "release_type",
92
91
  "earliestReleaseDate" => "earliest_release_date",
93
- "usesIdfa" => "uses_idfa",
94
92
  "isWatchOnly" => "is_watch_only",
95
93
  "downloadable" => "downloadable",
96
94
  "createdDate" => "created_date",
@@ -127,7 +125,7 @@ module Spaceship
127
125
  # API
128
126
  #
129
127
 
130
- # app,routingAppCoverage,resetRatingsRequest,appStoreVersionSubmission,appStoreVersionPhasedRelease,ageRatingDeclaration,appStoreReviewDetail,idfaDeclaration,gameCenterConfiguration
128
+ # app,routingAppCoverage,resetRatingsRequest,appStoreVersionSubmission,appStoreVersionPhasedRelease,ageRatingDeclaration,appStoreReviewDetail,gameCenterConfiguration
131
129
  def self.get(client: nil, app_store_version_id: nil, includes: nil, limit: nil, sort: nil)
132
130
  client ||= Spaceship::ConnectAPI
133
131
  return client.get_app_store_version(
@@ -241,22 +239,6 @@ module Spaceship
241
239
  return resp.to_models.first
242
240
  end
243
241
 
244
- #
245
- # IDFA Declarations
246
- #
247
-
248
- def fetch_idfa_declaration(client: nil)
249
- client ||= Spaceship::ConnectAPI
250
- resp = client.get_idfa_declaration(app_store_version_id: id)
251
- return resp.to_models.first
252
- end
253
-
254
- def create_idfa_declaration(client: nil, attributes: nil)
255
- client ||= Spaceship::ConnectAPI
256
- resp = client.post_idfa_declaration(app_store_version_id: id, attributes: attributes)
257
- return resp.to_models.first
258
- end
259
-
260
242
  #
261
243
  # Reset Ratings Requests
262
244
  #
@@ -16,7 +16,7 @@ module Spaceship
16
16
  end
17
17
 
18
18
  def self.hostname
19
- 'https://developer.apple.com/services-account/v1/'
19
+ 'https://developer.apple.com/services-account/'
20
20
  end
21
21
 
22
22
  #
@@ -4,6 +4,10 @@ module Spaceship
4
4
  class ConnectAPI
5
5
  module Provisioning
6
6
  module API
7
+ module Version
8
+ V1 = "v1"
9
+ end
10
+
7
11
  def provisioning_request_client=(provisioning_request_client)
8
12
  @provisioning_request_client = provisioning_request_client
9
13
  end
@@ -19,12 +23,12 @@ module Spaceship
19
23
 
20
24
  def get_bundle_ids(filter: {}, includes: nil, fields: nil, limit: nil, sort: nil)
21
25
  params = provisioning_request_client.build_params(filter: filter, includes: includes, fields: fields, limit: limit, sort: sort)
22
- provisioning_request_client.get("bundleIds", params)
26
+ provisioning_request_client.get("#{Version::V1}/bundleIds", params)
23
27
  end
24
28
 
25
29
  def get_bundle_id(bundle_id_id: {}, includes: nil)
26
30
  params = provisioning_request_client.build_params(filter: nil, includes: includes, limit: nil, sort: nil)
27
- provisioning_request_client.get("bundleIds/#{bundle_id_id}", params)
31
+ provisioning_request_client.get("#{Version::V1}/bundleIds/#{bundle_id_id}", params)
28
32
  end
29
33
 
30
34
  def post_bundle_id(name:, platform:, identifier:, seed_id:)
@@ -42,7 +46,7 @@ module Spaceship
42
46
  }
43
47
  }
44
48
 
45
- provisioning_request_client.post("bundleIds", body)
49
+ provisioning_request_client.post("#{Version::V1}/bundleIds", body)
46
50
  end
47
51
 
48
52
  #
@@ -51,12 +55,12 @@ module Spaceship
51
55
 
52
56
  def get_bundle_id_capabilities(bundle_id_id:, includes: nil, limit: nil, sort: nil)
53
57
  params = provisioning_request_client.build_params(filter: nil, includes: includes, limit: limit, sort: sort)
54
- provisioning_request_client.get("bundleIds/#{bundle_id_id}/bundleIdCapabilities", params)
58
+ provisioning_request_client.get("#{Version::V1}/bundleIds/#{bundle_id_id}/bundleIdCapabilities", params)
55
59
  end
56
60
 
57
61
  def get_available_bundle_id_capabilities(bundle_id_id:)
58
62
  params = provisioning_request_client.build_params(filter: { bundleId: bundle_id_id })
59
- provisioning_request_client.get("capabilities", params)
63
+ provisioning_request_client.get("#{Version::V1}/capabilities", params)
60
64
  end
61
65
 
62
66
  def post_bundle_id_capability(bundle_id_id:, capability_type:, settings: [])
@@ -83,7 +87,7 @@ module Spaceship
83
87
  }
84
88
  }
85
89
  }
86
- provisioning_request_client.post("bundleIdCapabilities", body)
90
+ provisioning_request_client.post("#{Version::V1}/bundleIdCapabilities", body)
87
91
  end
88
92
 
89
93
  def patch_bundle_id_capability(bundle_id_id:, seed_id:, enabled: false, capability_type:, settings: [])
@@ -92,7 +96,12 @@ module Spaceship
92
96
  type: "bundleIds",
93
97
  id: bundle_id_id,
94
98
  attributes: {
95
- teamId: seed_id
99
+ permissions: {
100
+ edit: true,
101
+ delete: true
102
+ },
103
+ seedId: seed_id,
104
+ teamId: provisioning_request_client.team_id
96
105
  },
97
106
  relationships: {
98
107
  bundleIdCapabilities: {
@@ -118,11 +127,11 @@ module Spaceship
118
127
  }
119
128
  }
120
129
 
121
- provisioning_request_client.patch("bundleIds/#{bundle_id_id}", body)
130
+ provisioning_request_client.patch("#{Version::V1}/bundleIds/#{bundle_id_id}", body)
122
131
  end
123
132
 
124
133
  def delete_bundle_id_capability(bundle_id_capability_id:)
125
- provisioning_request_client.delete("bundleIdCapabilities/#{bundle_id_capability_id}")
134
+ provisioning_request_client.delete("#{Version::V1}/bundleIdCapabilities/#{bundle_id_capability_id}")
126
135
  end
127
136
 
128
137
  #
@@ -132,15 +141,15 @@ module Spaceship
132
141
  def get_certificates(profile_id: nil, filter: {}, includes: nil, fields: nil, limit: nil, sort: nil)
133
142
  params = provisioning_request_client.build_params(filter: filter, includes: includes, fields: fields, limit: limit, sort: sort)
134
143
  if profile_id.nil?
135
- provisioning_request_client.get("certificates", params)
144
+ provisioning_request_client.get("#{Version::V1}/certificates", params)
136
145
  else
137
- provisioning_request_client.get("profiles/#{profile_id}/certificates", params)
146
+ provisioning_request_client.get("#{Version::V1}/profiles/#{profile_id}/certificates", params)
138
147
  end
139
148
  end
140
149
 
141
150
  def get_certificate(certificate_id: nil, includes: nil)
142
151
  params = provisioning_request_client.build_params(filter: nil, includes: includes, limit: nil, sort: nil)
143
- provisioning_request_client.get("certificates/#{certificate_id}", params)
152
+ provisioning_request_client.get("#{Version::V1}/certificates/#{certificate_id}", params)
144
153
  end
145
154
 
146
155
  def post_certificate(attributes: {})
@@ -151,13 +160,13 @@ module Spaceship
151
160
  }
152
161
  }
153
162
 
154
- provisioning_request_client.post("certificates", body)
163
+ provisioning_request_client.post("#{Version::V1}/certificates", body)
155
164
  end
156
165
 
157
166
  def delete_certificate(certificate_id: nil)
158
167
  raise "Certificate id is nil" if certificate_id.nil?
159
168
 
160
- provisioning_request_client.delete("certificates/#{certificate_id}")
169
+ provisioning_request_client.delete("#{Version::V1}/certificates/#{certificate_id}")
161
170
  end
162
171
 
163
172
  #
@@ -167,9 +176,9 @@ module Spaceship
167
176
  def get_devices(profile_id: nil, filter: {}, includes: nil, fields: nil, limit: nil, sort: nil)
168
177
  params = provisioning_request_client.build_params(filter: filter, includes: includes, fields: fields, limit: limit, sort: sort)
169
178
  if profile_id.nil?
170
- provisioning_request_client.get("devices", params)
179
+ provisioning_request_client.get("#{Version::V1}/devices", params)
171
180
  else
172
- provisioning_request_client.get("profiles/#{profile_id}/devices", params)
181
+ provisioning_request_client.get("#{Version::V1}/profiles/#{profile_id}/devices", params)
173
182
  end
174
183
  end
175
184
 
@@ -187,7 +196,7 @@ module Spaceship
187
196
  }
188
197
  }
189
198
 
190
- provisioning_request_client.post("devices", body)
199
+ provisioning_request_client.post("#{Version::V1}/devices", body)
191
200
  end
192
201
 
193
202
  def patch_device(id: nil, status: nil, new_name: nil)
@@ -206,7 +215,7 @@ module Spaceship
206
215
  }
207
216
  }
208
217
 
209
- provisioning_request_client.patch("devices/#{id}", body)
218
+ provisioning_request_client.patch("#{Version::V1}/devices/#{id}", body)
210
219
  end
211
220
 
212
221
  #
@@ -215,7 +224,7 @@ module Spaceship
215
224
 
216
225
  def get_profiles(filter: {}, includes: nil, fields: nil, limit: nil, sort: nil)
217
226
  params = provisioning_request_client.build_params(filter: filter, includes: includes, fields: fields, limit: limit, sort: sort)
218
- provisioning_request_client.get("profiles", params)
227
+ provisioning_request_client.get("#{Version::V1}/profiles", params)
219
228
  end
220
229
 
221
230
  def post_profiles(bundle_id_id: nil, certificates: nil, devices: nil, attributes: {})
@@ -250,19 +259,19 @@ module Spaceship
250
259
  }
251
260
  }
252
261
 
253
- provisioning_request_client.post("profiles", body)
262
+ provisioning_request_client.post("#{Version::V1}/profiles", body)
254
263
  end
255
264
 
256
265
  def get_profile_bundle_id(profile_id: nil)
257
266
  raise "Profile id is nil" if profile_id.nil?
258
267
 
259
- provisioning_request_client.get("profiles/#{profile_id}/bundleId")
268
+ provisioning_request_client.get("#{Version::V1}/profiles/#{profile_id}/bundleId")
260
269
  end
261
270
 
262
271
  def delete_profile(profile_id: nil)
263
272
  raise "Profile id is nil" if profile_id.nil?
264
273
 
265
- provisioning_request_client.delete("profiles/#{profile_id}")
274
+ provisioning_request_client.delete("#{Version::V1}/profiles/#{profile_id}")
266
275
  end
267
276
  end
268
277
  end
@@ -19,7 +19,7 @@ module Spaceship
19
19
  end
20
20
 
21
21
  def self.hostname
22
- 'https://appstoreconnect.apple.com/iris/v1/'
22
+ 'https://appstoreconnect.apple.com/iris/'
23
23
  end
24
24
  end
25
25
  end