fastlane 2.207.0 → 2.208.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +96 -96
  3. data/fastlane/lib/fastlane/actions/changelog_from_git_commits.rb +1 -1
  4. data/fastlane/lib/fastlane/actions/import_certificate.rb +1 -1
  5. data/fastlane/lib/fastlane/setup/setup_ios.rb +1 -1
  6. data/fastlane/lib/fastlane/version.rb +1 -1
  7. data/fastlane/swift/Deliverfile.swift +1 -1
  8. data/fastlane/swift/DeliverfileProtocol.swift +1 -1
  9. data/fastlane/swift/Fastlane.swift +5 -5
  10. data/fastlane/swift/Gymfile.swift +1 -1
  11. data/fastlane/swift/GymfileProtocol.swift +1 -1
  12. data/fastlane/swift/Matchfile.swift +1 -1
  13. data/fastlane/swift/MatchfileProtocol.swift +1 -1
  14. data/fastlane/swift/Precheckfile.swift +1 -1
  15. data/fastlane/swift/PrecheckfileProtocol.swift +1 -1
  16. data/fastlane/swift/Scanfile.swift +1 -1
  17. data/fastlane/swift/ScanfileProtocol.swift +1 -1
  18. data/fastlane/swift/Screengrabfile.swift +1 -1
  19. data/fastlane/swift/ScreengrabfileProtocol.swift +1 -1
  20. data/fastlane/swift/Snapshotfile.swift +1 -1
  21. data/fastlane/swift/SnapshotfileProtocol.swift +2 -2
  22. data/fastlane/swift/formatting/Brewfile.lock.json +15 -15
  23. data/fastlane_core/lib/fastlane_core/cert_checker.rb +7 -11
  24. data/fastlane_core/lib/fastlane_core/keychain_importer.rb +1 -0
  25. data/match/lib/match/runner.rb +6 -0
  26. data/match/lib/match/setup.rb +1 -1
  27. data/match/lib/match/storage/gitlab/client.rb +17 -1
  28. data/match/lib/match/storage/gitlab/secure_file.rb +1 -2
  29. data/match/lib/match/storage/gitlab_secure_files.rb +5 -2
  30. data/match/lib/match/table_printer.rb +2 -1
  31. data/match/lib/match/utils.rb +10 -2
  32. data/snapshot/lib/snapshot/options.rb +1 -1
  33. data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher_base.rb +4 -1
  34. data/spaceship/lib/spaceship/connect_api/response.rb +10 -6
  35. data/spaceship/lib/spaceship/tunes/.tunes_client.rb.swp +0 -0
  36. data/spaceship/lib/spaceship/tunes/tunes_client.rb +63 -2
  37. data/trainer/lib/trainer/junit_generator.rb +1 -1
  38. metadata +21 -24
  39. data/match/lib/match/.module.rb.swp +0 -0
  40. data/match/lib/match/.nuke.rb.swp +0 -0
  41. data/spaceship/lib/spaceship/connect_api/.response.rb.swp +0 -0
  42. data/spaceship/lib/spaceship/connect_api/models/.app.rb.swp +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 03436b89c4752dfccf0502507af81f0776e6f3222d247695dfbf4973efc30ae7
4
- data.tar.gz: 2da8f7113c916e3b5190928d2ed04a7f1a8bf7e5fac54066a54482cf61b407db
3
+ metadata.gz: cfd35c12569450bf934a4c43012dbb80248a7411fd1e523ecd437da887cbff61
4
+ data.tar.gz: 8fe0ef2bcae204fd8b8eb5f13e1ec1795385d76cf7bcd909550130522f7edbf2
5
5
  SHA512:
6
- metadata.gz: f57d60ee294702a1f61e187eeecb5ce48f81258b6fcdfb6b4c7a8d4999dc42049f1831733ef605c4151be5e3fb967ea4dca9487f86292dfcbac8196e50e39d6b
7
- data.tar.gz: 6a315c09bab9709040737edc9b7050f74516fae1825abe20694d821c311c848cd1c9c3da6bcaee46c7c636da107a0a66b5d799be611b349f7ef63846835940be
6
+ metadata.gz: f2d2b72ecc903c7c4faed72fe24df7d55a9b2ad56aabc68f0b8c80bf11af4ca1a40c7b0ab77eb0977d80dae9204846a769f118e7caa8e3ac8e0a93700c87cb91
7
+ data.tar.gz: 9b524e9a9d80a0c5b2d2bd87f9577574a77b7a1543c61cde0f562fa406e61b72b711718dc5054e749da9c97cded3620bf94aff90194d1959392222f773bb3826
data/README.md CHANGED
@@ -35,17 +35,49 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
35
35
  <!-- This table is regenerated and resorted on each release -->
36
36
  <table id='team'>
37
37
  <tr>
38
- <td id='aaron-brager'>
39
- <a href='https://github.com/getaaron'>
40
- <img src='https://github.com/getaaron.png' width='140px;'>
38
+ <td id='max-ott'>
39
+ <a href='https://github.com/max-ott'>
40
+ <img src='https://github.com/max-ott.png' width='140px;'>
41
41
  </a>
42
- <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
42
+ <h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
43
43
  </td>
44
- <td id='satoshi-namai'>
45
- <a href='https://github.com/ainame'>
46
- <img src='https://github.com/ainame.png' width='140px;'>
44
+ <td id='felix-krause'>
45
+ <a href='https://github.com/KrauseFx'>
46
+ <img src='https://github.com/KrauseFx.png' width='140px;'>
47
47
  </a>
48
- <h4 align='center'><a href='https://twitter.com/ainame'>Satoshi Namai</a></h4>
48
+ <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
49
+ </td>
50
+ <td id='jorge-revuelta-h'>
51
+ <a href='https://github.com/minuscorp'>
52
+ <img src='https://github.com/minuscorp.png' width='140px;'>
53
+ </a>
54
+ <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
55
+ </td>
56
+ <td id='andrew-mcburney'>
57
+ <a href='https://github.com/armcburney'>
58
+ <img src='https://github.com/armcburney.png' width='140px;'>
59
+ </a>
60
+ <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
61
+ </td>
62
+ <td id='olivier-halligon'>
63
+ <a href='https://github.com/AliSoftware'>
64
+ <img src='https://github.com/AliSoftware.png' width='140px;'>
65
+ </a>
66
+ <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
67
+ </td>
68
+ </tr>
69
+ <tr>
70
+ <td id='jérôme-lacoste'>
71
+ <a href='https://github.com/lacostej'>
72
+ <img src='https://github.com/lacostej.png' width='140px;'>
73
+ </a>
74
+ <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
75
+ </td>
76
+ <td id='iulian-onofrei'>
77
+ <a href='https://github.com/revolter'>
78
+ <img src='https://github.com/revolter.png' width='140px;'>
79
+ </a>
80
+ <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
49
81
  </td>
50
82
  <td id='łukasz-grabowski'>
51
83
  <a href='https://github.com/lucgrabowski'>
@@ -53,11 +85,11 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
53
85
  </a>
54
86
  <h4 align='center'>Łukasz Grabowski</h4>
55
87
  </td>
56
- <td id='luka-mirosevic'>
57
- <a href='https://github.com/lmirosevic'>
58
- <img src='https://github.com/lmirosevic.png' width='140px;'>
88
+ <td id='manish-rathi'>
89
+ <a href='https://github.com/crazymanish'>
90
+ <img src='https://github.com/crazymanish.png' width='140px;'>
59
91
  </a>
60
- <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
92
+ <h4 align='center'><a href='https://twitter.com/iammanishrathi'>Manish Rathi</a></h4>
61
93
  </td>
62
94
  <td id='daniel-jankowski'>
63
95
  <a href='https://github.com/mollyIV'>
@@ -67,23 +99,29 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
67
99
  </td>
68
100
  </tr>
69
101
  <tr>
70
- <td id='jorge-revuelta-h'>
71
- <a href='https://github.com/minuscorp'>
72
- <img src='https://github.com/minuscorp.png' width='140px;'>
102
+ <td id='jimmy-dee'>
103
+ <a href='https://github.com/jdee'>
104
+ <img src='https://github.com/jdee.png' width='140px;'>
73
105
  </a>
74
- <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
106
+ <h4 align='center'>Jimmy Dee</h4>
75
107
  </td>
76
- <td id='fumiya-nakamura'>
77
- <a href='https://github.com/nafu'>
78
- <img src='https://github.com/nafu.png' width='140px;'>
108
+ <td id='maksym-grebenets'>
109
+ <a href='https://github.com/mgrebenets'>
110
+ <img src='https://github.com/mgrebenets.png' width='140px;'>
79
111
  </a>
80
- <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
112
+ <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
81
113
  </td>
82
- <td id='manu-wallner'>
83
- <a href='https://github.com/milch'>
84
- <img src='https://github.com/milch.png' width='140px;'>
114
+ <td id='luka-mirosevic'>
115
+ <a href='https://github.com/lmirosevic'>
116
+ <img src='https://github.com/lmirosevic.png' width='140px;'>
85
117
  </a>
86
- <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
118
+ <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
119
+ </td>
120
+ <td id='matthew-ellis'>
121
+ <a href='https://github.com/matthewellis'>
122
+ <img src='https://github.com/matthewellis.png' width='140px;'>
123
+ </a>
124
+ <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
87
125
  </td>
88
126
  <td id='joshua-liebowitz'>
89
127
  <a href='https://github.com/taquitos'>
@@ -91,57 +129,51 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
91
129
  </a>
92
130
  <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
93
131
  </td>
132
+ </tr>
133
+ <tr>
94
134
  <td id='roger-oba'>
95
135
  <a href='https://github.com/rogerluan'>
96
136
  <img src='https://github.com/rogerluan.png' width='140px;'>
97
137
  </a>
98
138
  <h4 align='center'><a href='https://twitter.com/rogerluan_'>Roger Oba</a></h4>
99
139
  </td>
100
- </tr>
101
- <tr>
102
- <td id='stefan-natchev'>
103
- <a href='https://github.com/snatchev'>
104
- <img src='https://github.com/snatchev.png' width='140px;'>
105
- </a>
106
- <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
107
- </td>
108
- <td id='olivier-halligon'>
109
- <a href='https://github.com/AliSoftware'>
110
- <img src='https://github.com/AliSoftware.png' width='140px;'>
140
+ <td id='fumiya-nakamura'>
141
+ <a href='https://github.com/nafu'>
142
+ <img src='https://github.com/nafu.png' width='140px;'>
111
143
  </a>
112
- <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
144
+ <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
113
145
  </td>
114
- <td id='josh-holtz'>
115
- <a href='https://github.com/joshdholtz'>
116
- <img src='https://github.com/joshdholtz.png' width='140px;'>
146
+ <td id='manu-wallner'>
147
+ <a href='https://github.com/milch'>
148
+ <img src='https://github.com/milch.png' width='140px;'>
117
149
  </a>
118
- <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
150
+ <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
119
151
  </td>
120
- <td id='iulian-onofrei'>
121
- <a href='https://github.com/revolter'>
122
- <img src='https://github.com/revolter.png' width='140px;'>
152
+ <td id='aaron-brager'>
153
+ <a href='https://github.com/getaaron'>
154
+ <img src='https://github.com/getaaron.png' width='140px;'>
123
155
  </a>
124
- <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
156
+ <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
125
157
  </td>
126
- <td id='manish-rathi'>
127
- <a href='https://github.com/crazymanish'>
128
- <img src='https://github.com/crazymanish.png' width='140px;'>
158
+ <td id='jan-piotrowski'>
159
+ <a href='https://github.com/janpio'>
160
+ <img src='https://github.com/janpio.png' width='140px;'>
129
161
  </a>
130
- <h4 align='center'><a href='https://twitter.com/iammanishrathi'>Manish Rathi</a></h4>
162
+ <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
131
163
  </td>
132
164
  </tr>
133
165
  <tr>
134
- <td id='jérôme-lacoste'>
135
- <a href='https://github.com/lacostej'>
136
- <img src='https://github.com/lacostej.png' width='140px;'>
166
+ <td id='satoshi-namai'>
167
+ <a href='https://github.com/ainame'>
168
+ <img src='https://github.com/ainame.png' width='140px;'>
137
169
  </a>
138
- <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
170
+ <h4 align='center'><a href='https://twitter.com/ainame'>Satoshi Namai</a></h4>
139
171
  </td>
140
- <td id='felix-krause'>
141
- <a href='https://github.com/KrauseFx'>
142
- <img src='https://github.com/KrauseFx.png' width='140px;'>
172
+ <td id='danielle-tomlinson'>
173
+ <a href='https://github.com/endocrimes'>
174
+ <img src='https://github.com/endocrimes.png' width='140px;'>
143
175
  </a>
144
- <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
176
+ <h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
145
177
  </td>
146
178
  <td id='kohki-miki'>
147
179
  <a href='https://github.com/giginet'>
@@ -149,11 +181,11 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
149
181
  </a>
150
182
  <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
151
183
  </td>
152
- <td id='jan-piotrowski'>
153
- <a href='https://github.com/janpio'>
154
- <img src='https://github.com/janpio.png' width='140px;'>
184
+ <td id='stefan-natchev'>
185
+ <a href='https://github.com/snatchev'>
186
+ <img src='https://github.com/snatchev.png' width='140px;'>
155
187
  </a>
156
- <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
188
+ <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
157
189
  </td>
158
190
  <td id='helmut-januschka'>
159
191
  <a href='https://github.com/hjanuschka'>
@@ -163,43 +195,11 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
163
195
  </td>
164
196
  </tr>
165
197
  <tr>
166
- <td id='maksym-grebenets'>
167
- <a href='https://github.com/mgrebenets'>
168
- <img src='https://github.com/mgrebenets.png' width='140px;'>
169
- </a>
170
- <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
171
- </td>
172
- <td id='andrew-mcburney'>
173
- <a href='https://github.com/armcburney'>
174
- <img src='https://github.com/armcburney.png' width='140px;'>
175
- </a>
176
- <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
177
- </td>
178
- <td id='jimmy-dee'>
179
- <a href='https://github.com/jdee'>
180
- <img src='https://github.com/jdee.png' width='140px;'>
181
- </a>
182
- <h4 align='center'>Jimmy Dee</h4>
183
- </td>
184
- <td id='max-ott'>
185
- <a href='https://github.com/max-ott'>
186
- <img src='https://github.com/max-ott.png' width='140px;'>
187
- </a>
188
- <h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
189
- </td>
190
- <td id='matthew-ellis'>
191
- <a href='https://github.com/matthewellis'>
192
- <img src='https://github.com/matthewellis.png' width='140px;'>
193
- </a>
194
- <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
195
- </td>
196
- </tr>
197
- <tr>
198
- <td id='danielle-tomlinson'>
199
- <a href='https://github.com/endocrimes'>
200
- <img src='https://github.com/endocrimes.png' width='140px;'>
198
+ <td id='josh-holtz'>
199
+ <a href='https://github.com/joshdholtz'>
200
+ <img src='https://github.com/joshdholtz.png' width='140px;'>
201
201
  </a>
202
- <h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
202
+ <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
203
203
  </td>
204
204
  </table>
205
205
 
@@ -141,7 +141,7 @@ module Fastlane
141
141
  end),
142
142
  FastlaneCore::ConfigItem.new(key: :merge_commit_filtering,
143
143
  env_name: 'FL_CHANGELOG_FROM_GIT_COMMITS_MERGE_COMMIT_FILTERING',
144
- description: "Controls inclusion of merge commits when collecting the changelog. Valid values: #{GIT_MERGE_COMMIT_FILTERING_OPTIONS.map { |o| "`:#{o}`" }.join(', ')}",
144
+ description: "Controls inclusion of merge commits when collecting the changelog. Valid values: #{GIT_MERGE_COMMIT_FILTERING_OPTIONS.map { |o| "'#{o}'" }.join(', ')}",
145
145
  optional: true,
146
146
  default_value: 'include_merges',
147
147
  verify_block: proc do |value|
@@ -58,7 +58,7 @@ module Fastlane
58
58
 
59
59
  def self.example_code
60
60
  [
61
- 'import_certificate(certificate_path: "certs/AppleWWDRCA.cer")',
61
+ 'import_certificate(certificate_path: "certs/AppleWWDRCA6.cer")',
62
62
  'import_certificate(
63
63
  certificate_path: "certs/dist.p12",
64
64
  certificate_password: ENV["CERTIFICATE_PASSWORD"] || "default"
@@ -387,7 +387,7 @@ module Fastlane
387
387
  def verify_app_exists_itc!
388
388
  UI.user_error!("No app identifier provided") if self.app_identifier.to_s.length == 0
389
389
  UI.message("Checking if the app '#{self.app_identifier}' exists on App Store Connect...")
390
- app = Spaceship::Tunes::Application.find(self.app_identifier)
390
+ app = Spaceship::ConnectAPI::App.find(self.app_identifier)
391
391
  if app.nil?
392
392
  UI.error("Looks like the app '#{self.app_identifier}' isn't available on #{'App Store Connect'.bold.underline}")
393
393
  UI.error("for the team ID '#{self.itc_team_id}' on Apple ID '#{self.user}'")
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
- VERSION = '2.207.0'.freeze
2
+ VERSION = '2.208.0'.freeze
3
3
  DESCRIPTION = "The easiest way to automate beta deployments and releases for your iOS and Android apps".freeze
4
4
  MINIMUM_XCODE_RELEASE = "7.0".freeze
5
5
  RUBOCOP_REQUIREMENT = '1.12.1'.freeze
@@ -17,4 +17,4 @@ public class Deliverfile: DeliverfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.207.0
20
+ // Generated with fastlane 2.208.0
@@ -264,4 +264,4 @@ public extension DeliverfileProtocol {
264
264
 
265
265
  // Please don't remove the lines below
266
266
  // They are used to detect outdated files
267
- // FastlaneRunnerAPIVersion [0.9.106]
267
+ // FastlaneRunnerAPIVersion [0.9.107]
@@ -2113,7 +2113,7 @@ public func captureAndroidScreenshots(androidHome: OptionalConfigValue<String?>
2113
2113
  - eraseSimulator: Enabling this option will automatically erase the simulator before running the application
2114
2114
  - headless: Enabling this option will prevent displaying the simulator window
2115
2115
  - overrideStatusBar: Enabling this option will automatically override the status bar to show 9:41 AM, full battery, and full reception (Adjust 'SNAPSHOT_SIMULATOR_WAIT_FOR_BOOT_TIMEOUT' environment variable if override status bar is not working. Might be because simulator is not fully booted. Defaults to 10 seconds)
2116
- - overrideStatusBarArguments: Fully customize the status bar by setting each option here. See `xcrun simctl status_bar --help`
2116
+ - overrideStatusBarArguments: Fully customize the status bar by setting each option here. Requires `override_status_bar` to be set to `true`. See `xcrun simctl status_bar --help`
2117
2117
  - localizeSimulator: Enabling this option will configure the Simulator's system language
2118
2118
  - darkMode: Enabling this option will configure the Simulator to be in dark mode (false for light, true for dark)
2119
2119
  - appIdentifier: The bundle identifier of the app to uninstall (only needed when enabling reinstall_app)
@@ -2322,7 +2322,7 @@ public func captureIosScreenshots(workspace: OptionalConfigValue<String?> = .fas
2322
2322
  - eraseSimulator: Enabling this option will automatically erase the simulator before running the application
2323
2323
  - headless: Enabling this option will prevent displaying the simulator window
2324
2324
  - overrideStatusBar: Enabling this option will automatically override the status bar to show 9:41 AM, full battery, and full reception (Adjust 'SNAPSHOT_SIMULATOR_WAIT_FOR_BOOT_TIMEOUT' environment variable if override status bar is not working. Might be because simulator is not fully booted. Defaults to 10 seconds)
2325
- - overrideStatusBarArguments: Fully customize the status bar by setting each option here. See `xcrun simctl status_bar --help`
2325
+ - overrideStatusBarArguments: Fully customize the status bar by setting each option here. Requires `override_status_bar` to be set to `true`. See `xcrun simctl status_bar --help`
2326
2326
  - localizeSimulator: Enabling this option will configure the Simulator's system language
2327
2327
  - darkMode: Enabling this option will configure the Simulator to be in dark mode (false for light, true for dark)
2328
2328
  - appIdentifier: The bundle identifier of the app to uninstall (only needed when enabling reinstall_app)
@@ -2705,7 +2705,7 @@ public func cert(development: OptionalConfigValue<Bool> = .fastlaneDefault(false
2705
2705
  - matchLightweightTag: Whether or not to match a lightweight tag when searching for the last one
2706
2706
  - quiet: Whether or not to disable changelog output
2707
2707
  - includeMerges: **DEPRECATED!** Use `:merge_commit_filtering` instead - Whether or not to include any commits that are merges
2708
- - mergeCommitFiltering: Controls inclusion of merge commits when collecting the changelog. Valid values: `:include_merges`, `:exclude_merges`, `:only_include_merges`
2708
+ - mergeCommitFiltering: Controls inclusion of merge commits when collecting the changelog. Valid values: 'include_merges', 'exclude_merges', 'only_include_merges'
2709
2709
 
2710
2710
  - returns: Returns a String containing your formatted git commits
2711
2711
 
@@ -10264,7 +10264,7 @@ public func slather(buildDirectory: OptionalConfigValue<String?> = .fastlaneDefa
10264
10264
  - eraseSimulator: Enabling this option will automatically erase the simulator before running the application
10265
10265
  - headless: Enabling this option will prevent displaying the simulator window
10266
10266
  - overrideStatusBar: Enabling this option will automatically override the status bar to show 9:41 AM, full battery, and full reception (Adjust 'SNAPSHOT_SIMULATOR_WAIT_FOR_BOOT_TIMEOUT' environment variable if override status bar is not working. Might be because simulator is not fully booted. Defaults to 10 seconds)
10267
- - overrideStatusBarArguments: Fully customize the status bar by setting each option here. See `xcrun simctl status_bar --help`
10267
+ - overrideStatusBarArguments: Fully customize the status bar by setting each option here. Requires `override_status_bar` to be set to `true`. See `xcrun simctl status_bar --help`
10268
10268
  - localizeSimulator: Enabling this option will configure the Simulator's system language
10269
10269
  - darkMode: Enabling this option will configure the Simulator to be in dark mode (false for light, true for dark)
10270
10270
  - appIdentifier: The bundle identifier of the app to uninstall (only needed when enabling reinstall_app)
@@ -13478,4 +13478,4 @@ public let snapshotfile: Snapshotfile = .init()
13478
13478
 
13479
13479
  // Please don't remove the lines below
13480
13480
  // They are used to detect outdated files
13481
- // FastlaneRunnerAPIVersion [0.9.159]
13481
+ // FastlaneRunnerAPIVersion [0.9.160]
@@ -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.207.0
20
+ // Generated with fastlane 2.208.0
@@ -204,4 +204,4 @@ public extension GymfileProtocol {
204
204
 
205
205
  // Please don't remove the lines below
206
206
  // They are used to detect outdated files
207
- // FastlaneRunnerAPIVersion [0.9.109]
207
+ // FastlaneRunnerAPIVersion [0.9.110]
@@ -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.207.0
20
+ // Generated with fastlane 2.208.0
@@ -204,4 +204,4 @@ public extension MatchfileProtocol {
204
204
 
205
205
  // Please don't remove the lines below
206
206
  // They are used to detect outdated files
207
- // FastlaneRunnerAPIVersion [0.9.103]
207
+ // FastlaneRunnerAPIVersion [0.9.104]
@@ -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.207.0
20
+ // Generated with fastlane 2.208.0
@@ -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.102]
55
+ // FastlaneRunnerAPIVersion [0.9.103]
@@ -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.207.0
20
+ // Generated with fastlane 2.208.0
@@ -312,4 +312,4 @@ public extension ScanfileProtocol {
312
312
 
313
313
  // Please don't remove the lines below
314
314
  // They are used to detect outdated files
315
- // FastlaneRunnerAPIVersion [0.9.114]
315
+ // FastlaneRunnerAPIVersion [0.9.115]
@@ -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.207.0
20
+ // Generated with fastlane 2.208.0
@@ -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.104]
99
+ // FastlaneRunnerAPIVersion [0.9.105]
@@ -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.207.0
20
+ // Generated with fastlane 2.208.0
@@ -53,7 +53,7 @@ public protocol SnapshotfileProtocol: AnyObject {
53
53
  /// Enabling this option will automatically override the status bar to show 9:41 AM, full battery, and full reception (Adjust 'SNAPSHOT_SIMULATOR_WAIT_FOR_BOOT_TIMEOUT' environment variable if override status bar is not working. Might be because simulator is not fully booted. Defaults to 10 seconds)
54
54
  var overrideStatusBar: Bool { get }
55
55
 
56
- /// Fully customize the status bar by setting each option here. See `xcrun simctl status_bar --help`
56
+ /// Fully customize the status bar by setting each option here. Requires `override_status_bar` to be set to `true`. See `xcrun simctl status_bar --help`
57
57
  var overrideStatusBarArguments: String? { get }
58
58
 
59
59
  /// Enabling this option will configure the Simulator's system language
@@ -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.98]
207
+ // FastlaneRunnerAPIVersion [0.9.99]
@@ -2,40 +2,40 @@
2
2
  "entries": {
3
3
  "brew": {
4
4
  "swiftformat": {
5
- "version": "0.49.11",
5
+ "version": "0.49.13",
6
6
  "bottle": {
7
7
  "rebuild": 0,
8
8
  "root_url": "https://ghcr.io/v2/homebrew/core",
9
9
  "files": {
10
10
  "arm64_monterey": {
11
11
  "cellar": ":any_skip_relocation",
12
- "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:1c355872557efa651e7baa0a73414b4d944c8045caf5595b49be5aa487c790b5",
13
- "sha256": "1c355872557efa651e7baa0a73414b4d944c8045caf5595b49be5aa487c790b5"
12
+ "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:9ca3ab9db1f528cd75201a3cbe8a165c92181fe4353a0aae3002e762992606e2",
13
+ "sha256": "9ca3ab9db1f528cd75201a3cbe8a165c92181fe4353a0aae3002e762992606e2"
14
14
  },
15
15
  "arm64_big_sur": {
16
16
  "cellar": ":any_skip_relocation",
17
- "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:a6c6bcd203119f7a0f687ae57502bf93bbd9d4b05e838b8a8e3dbc76679b54c0",
18
- "sha256": "a6c6bcd203119f7a0f687ae57502bf93bbd9d4b05e838b8a8e3dbc76679b54c0"
17
+ "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:7c9ca8d9f5d303a9e4e4e4359022075abb82d835cecab2f374960d80be6f366e",
18
+ "sha256": "7c9ca8d9f5d303a9e4e4e4359022075abb82d835cecab2f374960d80be6f366e"
19
19
  },
20
20
  "monterey": {
21
21
  "cellar": ":any_skip_relocation",
22
- "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:d8d59a615cf956c6ccbdade566bcb18e1f4aeeaae8399f52e55a4bca7b014ed9",
23
- "sha256": "d8d59a615cf956c6ccbdade566bcb18e1f4aeeaae8399f52e55a4bca7b014ed9"
22
+ "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:6686aa8139c4c0f70c1b6b491ace161e0d767ae3a0d9fb27aa9379968423c93e",
23
+ "sha256": "6686aa8139c4c0f70c1b6b491ace161e0d767ae3a0d9fb27aa9379968423c93e"
24
24
  },
25
25
  "big_sur": {
26
26
  "cellar": ":any_skip_relocation",
27
- "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:0dddb88b994904ae813b35a9a3d08f33bbd8b7f1bc15addce9e3d366b48257f5",
28
- "sha256": "0dddb88b994904ae813b35a9a3d08f33bbd8b7f1bc15addce9e3d366b48257f5"
27
+ "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:1d46d7bdd32e2743e54db27aa757c75f454626ddce633fed24c2981c2227617c",
28
+ "sha256": "1d46d7bdd32e2743e54db27aa757c75f454626ddce633fed24c2981c2227617c"
29
29
  },
30
30
  "catalina": {
31
31
  "cellar": ":any_skip_relocation",
32
- "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:a0e7393b2667a4fb21723f0f50de3b97c256237aa572927b103dd7467fe44624",
33
- "sha256": "a0e7393b2667a4fb21723f0f50de3b97c256237aa572927b103dd7467fe44624"
32
+ "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:309a419a4345fd1ef7ad75dddbe0995b5dced750b2621ca3aaa1ba49adaddaed",
33
+ "sha256": "309a419a4345fd1ef7ad75dddbe0995b5dced750b2621ca3aaa1ba49adaddaed"
34
34
  },
35
35
  "x86_64_linux": {
36
36
  "cellar": "/home/linuxbrew/.linuxbrew/Cellar",
37
- "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:1d855fe86b853bf153171aa4b9b22c638ba63d42e052795a5e7713afe71f39d6",
38
- "sha256": "1d855fe86b853bf153171aa4b9b22c638ba63d42e052795a5e7713afe71f39d6"
37
+ "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:af6b21401a7697c6f58d9eb84d14f896e017168193f585e3e571a6eddb77fe7b",
38
+ "sha256": "af6b21401a7697c6f58d9eb84d14f896e017168193f585e3e571a6eddb77fe7b"
39
39
  }
40
40
  }
41
41
  }
@@ -61,9 +61,9 @@
61
61
  "macOS": "11.0.1"
62
62
  },
63
63
  "monterey": {
64
- "HOMEBREW_VERSION": "3.5.3-17-g74e933c",
64
+ "HOMEBREW_VERSION": "3.5.5-12-g6615cd9",
65
65
  "HOMEBREW_PREFIX": "/opt/homebrew",
66
- "Homebrew/homebrew-core": "94237d1700b55d421ce5580080a9d6dff2deba2a",
66
+ "Homebrew/homebrew-core": "58e6afce82f3e889b86e852bf7490c5a35802ac9",
67
67
  "CLT": "13.4.0.0.1.1651278267",
68
68
  "Xcode": "13.4.1",
69
69
  "macOS": "12.4"
@@ -22,7 +22,7 @@ module FastlaneCore
22
22
  end
23
23
 
24
24
  def self.installed_identies(in_keychain: nil)
25
- install_wwdr_certificates unless wwdr_certificates_installed?
25
+ install_wwdr_certificate unless wwdr_certificate_installed?
26
26
 
27
27
  available = list_available_identities(in_keychain: in_keychain)
28
28
  # Match for this text against word boundaries to avoid edge cases around multiples of 10 identities!
@@ -81,20 +81,16 @@ module FastlaneCore
81
81
  `#{commands.join(' ')}`
82
82
  end
83
83
 
84
- def self.wwdr_certificates_installed?
84
+ def self.wwdr_certificate_installed?
85
85
  certificate_name = "Apple Worldwide Developer Relations Certification Authority"
86
86
  keychain = wwdr_keychain
87
87
  response = Helper.backticks("security find-certificate -a -c '#{certificate_name}' #{keychain.shellescape}", print: FastlaneCore::Globals.verbose?)
88
88
  certs = response.split("keychain: \"#{keychain}\"").drop(1)
89
- certs.count == 2
89
+ certs.count >= 1
90
90
  end
91
91
 
92
- def self.install_wwdr_certificates
93
- install_wwdr_certificate('https://developer.apple.com/certificationauthority/AppleWWDRCA.cer')
94
- install_wwdr_certificate('https://www.apple.com/certificateauthority/AppleWWDRCAG3.cer')
95
- end
96
-
97
- def self.install_wwdr_certificate(url)
92
+ def self.install_wwdr_certificate
93
+ url = 'https://www.apple.com/certificateauthority/AppleWWDRCAG6.cer'
98
94
  file = Tempfile.new(File.basename(url))
99
95
  filename = file.path
100
96
  keychain = wwdr_keychain
@@ -124,8 +120,8 @@ module FastlaneCore
124
120
 
125
121
  def self.wwdr_keychain
126
122
  priority = [
127
- "security list-keychains -d user",
128
- "security default-keychain -d user"
123
+ "security default-keychain -d user",
124
+ "security list-keychains -d user"
129
125
  ]
130
126
  priority.each do |command|
131
127
  keychains = Helper.backticks(command, print: FastlaneCore::Globals.verbose?).split("\n")
@@ -14,6 +14,7 @@ module FastlaneCore
14
14
  command << " -T /usr/bin/codesign" # to not be asked for permission when running a tool like `gym` (before Sierra)
15
15
  command << " -T /usr/bin/security"
16
16
  command << " -T /usr/bin/productbuild" # to not be asked for permission when using an installer cert for macOS
17
+ command << " -T /usr/bin/productsign" # to not be asked for permission when using an installer cert for macOS
17
18
  command << " 1> /dev/null" unless output
18
19
 
19
20
  sensitive_command = command.gsub(password_part, " -P ********")
@@ -309,6 +309,12 @@ module Match
309
309
  platform: params[:platform]),
310
310
  parsed["TeamIdentifier"].first)
311
311
 
312
+ cert_info = Utils.get_cert_info(parsed["DeveloperCertificates"].first.string).to_h
313
+ Utils.fill_environment(Utils.environment_variable_name_certificate_name(app_identifier: app_identifier,
314
+ type: prov_type,
315
+ platform: params[:platform]),
316
+ cert_info["Common Name"])
317
+
312
318
  Utils.fill_environment(Utils.environment_variable_name_profile_name(app_identifier: app_identifier,
313
319
  type: prov_type,
314
320
  platform: params[:platform]),
@@ -34,7 +34,7 @@ module Match
34
34
  end
35
35
 
36
36
  def storage_options
37
- return ["git", "google_cloud", "s3"]
37
+ return ["git", "google_cloud", "s3", "gitlab_secure_files"]
38
38
  end
39
39
  end
40
40
  end
@@ -69,7 +69,23 @@ module Match
69
69
  "name" => target_file
70
70
  )
71
71
 
72
- execute_request(url, request)
72
+ response = execute_request(url, request)
73
+
74
+ log_upload_error(response, target_file) if response.code != "201"
75
+ end
76
+ end
77
+
78
+ def log_upload_error(response, target_file)
79
+ begin
80
+ response_body = JSON.parse(response.body)
81
+ rescue JSON::ParserError
82
+ response_body = response.body
83
+ end
84
+
85
+ if response_body["message"] && (response_body["message"]["name"] == ["has already been taken"])
86
+ UI.error("#{target_file} already exists in GitLab project #{@project_id}, file not uploaded")
87
+ else
88
+ UI.error("Upload error for #{target_file}: #{response_body}")
73
89
  end
74
90
  end
75
91
 
@@ -43,8 +43,7 @@ module Match
43
43
  saved_file.write(data.read)
44
44
  end
45
45
 
46
- # Set file mode to read-only
47
- FileUtils.chmod('u=r,go-r', destination_file)
46
+ FileUtils.chmod('u=rw,go-r', destination_file)
48
47
  end
49
48
 
50
49
  UI.crash!("Checksum validation failed for #{@file.name}") unless valid_checksum?(destination_file)
@@ -15,6 +15,7 @@ module Match
15
15
  # Store the code signing identities in GitLab Secure Files
16
16
  class GitLabSecureFiles < Interface
17
17
  attr_reader :gitlab_client
18
+ attr_reader :project_id
18
19
  attr_reader :readonly
19
20
  attr_reader :username
20
21
  attr_reader :team_id
@@ -161,7 +162,7 @@ module Match
161
162
  end
162
163
 
163
164
  def skip_docs
164
- false
165
+ true
165
166
  end
166
167
 
167
168
  def list_files(file_name: "", file_ext: "")
@@ -172,7 +173,9 @@ module Match
172
173
  # This method must return the content of the Matchfile
173
174
  # that should be generated
174
175
  def generate_matchfile_content(template: nil)
175
- return "gitlab_project(\"#{self.project_id}\")"
176
+ project = UI.input("What is your GitLab Project (i.e. gitlab-org/gitlab): ")
177
+
178
+ return "gitlab_project(\"#{project}\")"
176
179
  end
177
180
  end
178
181
  end
@@ -33,7 +33,8 @@ module Match
33
33
  Utils.environment_variable_name(app_identifier: app_identifier, type: type, platform: platform) => "Profile UUID",
34
34
  Utils.environment_variable_name_profile_name(app_identifier: app_identifier, type: type, platform: platform) => "Profile Name",
35
35
  Utils.environment_variable_name_profile_path(app_identifier: app_identifier, type: type, platform: platform) => "Profile Path",
36
- Utils.environment_variable_name_team_id(app_identifier: app_identifier, type: type, platform: platform) => "Development Team ID"
36
+ Utils.environment_variable_name_team_id(app_identifier: app_identifier, type: type, platform: platform) => "Development Team ID",
37
+ Utils.environment_variable_name_certificate_name(app_identifier: app_identifier, type: type, platform: platform) => "Certificate Name"
37
38
  }.each do |env_key, name|
38
39
  rows << [name, env_key, ENV[env_key]]
39
40
  end
@@ -31,8 +31,16 @@ module Match
31
31
  (base_environment_variable_name(app_identifier: app_identifier, type: type, platform: platform) + ["profile-path"]).join("_")
32
32
  end
33
33
 
34
- def self.get_cert_info(cer_certificate_path)
35
- cert = OpenSSL::X509::Certificate.new(File.binread(cer_certificate_path))
34
+ def self.environment_variable_name_certificate_name(app_identifier: nil, type: nil, platform: :ios)
35
+ (base_environment_variable_name(app_identifier: app_identifier, type: type, platform: platform) + ["certificate-name"]).join("_")
36
+ end
37
+
38
+ def self.get_cert_info(cer_certificate)
39
+ # can receive a certificate path or the file data
40
+ if File.exist?(cer_certificate)
41
+ cer_certificate = File.binread(cer_certificate)
42
+ end
43
+ cert = OpenSSL::X509::Certificate.new(cer_certificate)
36
44
 
37
45
  # openssl output:
38
46
  # subject= /UID={User ID}/CN={Certificate Name}/OU={Certificate User}/O={Organisation}/C={Country}
@@ -133,7 +133,7 @@ module Snapshot
133
133
  is_string: false),
134
134
  FastlaneCore::ConfigItem.new(key: :override_status_bar_arguments,
135
135
  env_name: 'SNAPSHOT_OVERRIDE_STATUS_BAR_ARGUMENTS',
136
- description: "Fully customize the status bar by setting each option here. See `xcrun simctl status_bar --help`",
136
+ description: "Fully customize the status bar by setting each option here. Requires `override_status_bar` to be set to `true`. See `xcrun simctl status_bar --help`",
137
137
  optional: true,
138
138
  type: String),
139
139
  FastlaneCore::ConfigItem.new(key: :localize_simulator,
@@ -135,7 +135,10 @@ module Snapshot
135
135
  if arguments.nil? || arguments.empty?
136
136
  # The time needs to be passed as ISO8601 so the simulator formats it correctly
137
137
  time = Time.new(2007, 1, 9, 9, 41, 0)
138
- arguments = "--time #{time.iso8601} --dataNetwork wifi --wifiMode active --wifiBars 3 --cellularMode active --cellularBars 4 --batteryState charged --batteryLevel 100"
138
+
139
+ # If you don't override the operator name, you'll get "Carrier" in the status bar on no-notch devices such as iPhone 8. Pass an empty string to blank it out.
140
+
141
+ arguments = "--time #{time.iso8601} --dataNetwork wifi --wifiMode active --wifiBars 3 --cellularMode active --operatorName '' --cellularBars 4 --batteryState charged --batteryLevel 100"
139
142
  end
140
143
 
141
144
  Helper.backticks("xcrun simctl status_bar #{device_udid} override #{arguments} &> /dev/null")
@@ -22,13 +22,17 @@ module Spaceship
22
22
  return links["next"]
23
23
  end
24
24
 
25
- def next_page
25
+ def next_page(&block)
26
26
  url = next_url
27
27
  return nil if url.nil?
28
- return client.get(url)
28
+ if block_given?
29
+ return yield(url)
30
+ else
31
+ return client.get(url)
32
+ end
29
33
  end
30
34
 
31
- def next_pages(count: 1)
35
+ def next_pages(count: 1, &block)
32
36
  if !count.nil? && count < 0
33
37
  count = 0
34
38
  end
@@ -38,7 +42,7 @@ module Spaceship
38
42
 
39
43
  resp = self
40
44
  loop do
41
- resp = resp.next_page
45
+ resp = resp.next_page(&block)
42
46
  break if resp.nil?
43
47
  responses << resp
44
48
  counter += 1
@@ -49,8 +53,8 @@ module Spaceship
49
53
  return responses
50
54
  end
51
55
 
52
- def all_pages
53
- return next_pages(count: nil)
56
+ def all_pages(&block)
57
+ return next_pages(count: nil, &block)
54
58
  end
55
59
 
56
60
  def to_models
@@ -9,6 +9,7 @@ require_relative 'errors'
9
9
  require_relative 'iap_subscription_pricing_tier'
10
10
  require_relative 'pricing_tier'
11
11
  require_relative 'territory'
12
+ require_relative '../connect_api/response'
12
13
  module Spaceship
13
14
  # rubocop:disable Metrics/ClassLength
14
15
  class TunesClient < Spaceship::Client
@@ -254,8 +255,68 @@ module Spaceship
254
255
  #####################################################
255
256
 
256
257
  def applications
257
- r = request(:get, 'ra/apps/manageyourapps/summary/v2')
258
- parse_response(r, 'data')['summaries']
258
+ # Doing this real bad puts for now until a more formal deprecation logic can get made
259
+ puts("Spaceship::Tunes::Application.all is deprecated")
260
+ puts(" It's using a temporary patch to keep it from raising an error but things may not work correctly")
261
+ puts(" Please consider switching to Spaceship::ConnectAPI if you can")
262
+ puts(" For more details - https://github.com/fastlane/fastlane/pull/20480")
263
+
264
+ # This legacy endpoint went offline around July 7th, 2022. This is a rough attempt
265
+ # at retrofitting using the newer App Store Connect API endpoints
266
+ #
267
+ # This could all be done easily with Spaceship::ConnectAPI::App.find but there were a lot of
268
+ # circular dependency issues that were very difficult to solve because. Spaceship::Tunes would be
269
+ # using Spaceship::ConnectAPI which uses Spaceship::Tunes
270
+ #
271
+ # However, using Spaceship::ConnectAPI::Response works. This will fetch multiple pages of app
272
+ # if it needs to
273
+ #
274
+ # https://github.com/fastlane/fastlane/pull/20480
275
+ r = request(:get, "https://appstoreconnect.apple.com/iris/v1/apps?include=appStoreVersions,prices")
276
+ response = Spaceship::ConnectAPI::Response.new(
277
+ body: r.body,
278
+ status: r.status,
279
+ headers: r.headers,
280
+ client: nil
281
+ )
282
+
283
+ apps = response.all_pages do |url|
284
+ r = request(:get, url)
285
+ Spaceship::ConnectAPI::Response.new(
286
+ body: r.body,
287
+ status: r.status,
288
+ headers: r.headers,
289
+ client: nil
290
+ )
291
+ end.flat_map(&:to_models)
292
+
293
+ apps.map do |asc_app|
294
+ platforms = (asc_app.app_store_versions || []).map(&:platform).uniq.map do |asc_platform|
295
+ case asc_platform
296
+ when "TV_OS"
297
+ "appletvos"
298
+ when "MAC_OS"
299
+ "osx"
300
+ when "IOS"
301
+ "ios"
302
+ else
303
+ raise "Cannot find a matching platform for '#{asc_platform}'}"
304
+ end
305
+ end
306
+
307
+ {
308
+ 'adamId' => asc_app.id,
309
+ 'name' => asc_app.name,
310
+ 'vendorId' => "",
311
+ 'bundleId' => asc_app.bundle_id,
312
+ 'lastModifiedDate' => nil,
313
+ 'issuesCount' => nil,
314
+ 'iconUrl' => nil,
315
+ 'versionSets' => platforms.map do |platform|
316
+ { 'type' => 'app', 'platformString' => platform }
317
+ end
318
+ }
319
+ end
259
320
  end
260
321
 
261
322
  def app_details(app_id)
@@ -15,7 +15,7 @@ module Trainer
15
15
 
16
16
  lib_path = Trainer::ROOT
17
17
  xml_path = File.join(lib_path, "lib/assets/junit.xml.erb")
18
- xml = ERB.new(File.read(xml_path), nil, '<>').result(binding) # http://www.rrn.dk/rubys-erb-templating-system
18
+ xml = ERB.new(File.read(xml_path), trim_mode: '<>').result(binding) # http://www.rrn.dk/rubys-erb-templating-system
19
19
 
20
20
  xml = xml.gsub('system_', 'system-').delete("\e") # Jenkins can not parse 'ESC' symbol
21
21
 
metadata CHANGED
@@ -1,39 +1,39 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastlane
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.207.0
4
+ version: 2.208.0
5
5
  platform: ruby
6
6
  authors:
7
- - Max Ott
8
- - Daniel Jankowski
7
+ - Manu Wallner
8
+ - Matthew Ellis
9
+ - Maksym Grebenets
10
+ - Jorge Revuelta H
11
+ - Fumiya Nakamura
9
12
  - Manish Rathi
10
- - Stefan Natchev
11
13
  - Felix Krause
12
- - Iulian Onofrei
13
- - Danielle Tomlinson
14
- - Fumiya Nakamura
15
- - Josh Holtz
16
14
  - Kohki Miki
17
- - Jorge Revuelta H
18
- - Manu Wallner
19
- - Roger Oba
20
- - Satoshi Namai
15
+ - Jimmy Dee
16
+ - Jan Piotrowski
17
+ - Daniel Jankowski
18
+ - Max Ott
19
+ - Luka Mirosevic
20
+ - Helmut Januschka
21
+ - Josh Holtz
22
+ - Łukasz Grabowski
21
23
  - Joshua Liebowitz
22
- - Maksym Grebenets
24
+ - Iulian Onofrei
23
25
  - Aaron Brager
24
26
  - Jérôme Lacoste
25
- - Łukasz Grabowski
26
- - Matthew Ellis
27
- - Luka Mirosevic
27
+ - Satoshi Namai
28
28
  - Olivier Halligon
29
- - Helmut Januschka
30
- - Jan Piotrowski
31
- - Jimmy Dee
29
+ - Stefan Natchev
32
30
  - Andrew McBurney
31
+ - Roger Oba
32
+ - Danielle Tomlinson
33
33
  autorequire:
34
34
  bindir: bin
35
35
  cert_chain: []
36
- date: 2022-06-30 00:00:00.000000000 Z
36
+ date: 2022-07-19 00:00:00.000000000 Z
37
37
  dependencies:
38
38
  - !ruby/object:Gem::Dependency
39
39
  name: xcodeproj
@@ -1501,8 +1501,6 @@ files:
1501
1501
  - match/lib/assets/MatchfileTemplate.swift
1502
1502
  - match/lib/assets/READMETemplate.md
1503
1503
  - match/lib/match.rb
1504
- - match/lib/match/.module.rb.swp
1505
- - match/lib/match/.nuke.rb.swp
1506
1504
  - match/lib/match/change_password.rb
1507
1505
  - match/lib/match/commands_generator.rb
1508
1506
  - match/lib/match/encryption.rb
@@ -1664,12 +1662,10 @@ files:
1664
1662
  - spaceship/lib/spaceship/client.rb
1665
1663
  - spaceship/lib/spaceship/commands_generator.rb
1666
1664
  - spaceship/lib/spaceship/connect_api.rb
1667
- - spaceship/lib/spaceship/connect_api/.response.rb.swp
1668
1665
  - spaceship/lib/spaceship/connect_api/api_client.rb
1669
1666
  - spaceship/lib/spaceship/connect_api/client.rb
1670
1667
  - spaceship/lib/spaceship/connect_api/file_uploader.rb
1671
1668
  - spaceship/lib/spaceship/connect_api/model.rb
1672
- - spaceship/lib/spaceship/connect_api/models/.app.rb.swp
1673
1669
  - spaceship/lib/spaceship/connect_api/models/.review_submission.rb.swp
1674
1670
  - spaceship/lib/spaceship/connect_api/models/age_rating_declaration.rb
1675
1671
  - spaceship/lib/spaceship/connect_api/models/app.rb
@@ -1786,6 +1782,7 @@ files:
1786
1782
  - spaceship/lib/spaceship/test_flight/group.rb
1787
1783
  - spaceship/lib/spaceship/test_flight/test_info.rb
1788
1784
  - spaceship/lib/spaceship/test_flight/tester.rb
1785
+ - spaceship/lib/spaceship/tunes/.tunes_client.rb.swp
1789
1786
  - spaceship/lib/spaceship/tunes/app_analytics.rb
1790
1787
  - spaceship/lib/spaceship/tunes/app_details.rb
1791
1788
  - spaceship/lib/spaceship/tunes/app_image.rb
Binary file
Binary file