fastlane 2.207.0 → 2.208.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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