fastlane 2.224.0 → 2.225.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '03087b990116a12305e2b3d126a79e15c3e363f3e8601024507f9104c04de546'
4
- data.tar.gz: 7a5d5d31f16469a2b34e902407db12cae37ff17a03e2f244d72ba2027f65ec37
3
+ metadata.gz: a1e77f8938ff5841875b3034ae791bdb74735771a039be4e5da709c92b49268b
4
+ data.tar.gz: 5aebfce31f8424bd6012576c361269061b0aece5040af945ef29849fcb233cd3
5
5
  SHA512:
6
- metadata.gz: 22a7c5805f0811df1d989d32e178264b668acee3d2047944e5fb2457a055b352c5684b7ad0c6335c33051bda2e516b06a62a2d50c6b8a26303c3f3043468b509
7
- data.tar.gz: 5daafa423e4afb1e8a52031b01756f5d2564bbee30140ce171747005a0de73b54f4042272022337ef3a2ee44d474fdf849cacd1548bf1b937783438b905d3480
6
+ metadata.gz: eff23b206daaf4616253f90a657b30ddc8dc135f6bb60f8a0880b21fcd5919da487d4b3aa799a024a60cc0324be9cbf556bc90f3f90e55b685f28fa3d5737a16
7
+ data.tar.gz: f31da0896a7cf725d9bf29e22129fd1b6f9d73b383bd5048475c01fbf206a32642f2ef93252f91e0872dbb49dd18ca9365cf4a1e4b604f4802194bcdb24663f1
data/README.md CHANGED
@@ -35,49 +35,81 @@ 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='manu-wallner'>
39
- <a href='https://github.com/milch'>
40
- <img src='https://github.com/milch.png' width='140px;'>
41
- </a>
42
- <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
43
- </td>
44
- <td id='helmut-januschka'>
45
- <a href='https://github.com/hjanuschka'>
46
- <img src='https://github.com/hjanuschka.png' width='140px;'>
47
- </a>
48
- <h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
49
- </td>
50
- <td id='max-ott'>
51
- <a href='https://github.com/max-ott'>
52
- <img src='https://github.com/max-ott.png' width='140px;'>
53
- </a>
54
- <h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
55
- </td>
56
38
  <td id='olivier-halligon'>
57
39
  <a href='https://github.com/AliSoftware'>
58
40
  <img src='https://github.com/AliSoftware.png' width='140px;'>
59
41
  </a>
60
42
  <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
61
43
  </td>
44
+ <td id='stefan-natchev'>
45
+ <a href='https://github.com/snatchev'>
46
+ <img src='https://github.com/snatchev.png' width='140px;'>
47
+ </a>
48
+ <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
49
+ </td>
62
50
  <td id='felix-krause'>
63
51
  <a href='https://github.com/KrauseFx'>
64
52
  <img src='https://github.com/KrauseFx.png' width='140px;'>
65
53
  </a>
66
54
  <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
67
55
  </td>
56
+ <td id='kohki-miki'>
57
+ <a href='https://github.com/giginet'>
58
+ <img src='https://github.com/giginet.png' width='140px;'>
59
+ </a>
60
+ <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
61
+ </td>
62
+ <td id='luka-mirosevic'>
63
+ <a href='https://github.com/lmirosevic'>
64
+ <img src='https://github.com/lmirosevic.png' width='140px;'>
65
+ </a>
66
+ <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
67
+ </td>
68
68
  </tr>
69
69
  <tr>
70
- <td id='danielle-tomlinson'>
71
- <a href='https://github.com/endocrimes'>
72
- <img src='https://github.com/endocrimes.png' width='140px;'>
70
+ <td id='matthew-ellis'>
71
+ <a href='https://github.com/matthewellis'>
72
+ <img src='https://github.com/matthewellis.png' width='140px;'>
73
73
  </a>
74
- <h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
74
+ <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
75
75
  </td>
76
- <td id='andrew-mcburney'>
77
- <a href='https://github.com/armcburney'>
78
- <img src='https://github.com/armcburney.png' width='140px;'>
76
+ <td id='iulian-onofrei'>
77
+ <a href='https://github.com/revolter'>
78
+ <img src='https://github.com/revolter.png' width='140px;'>
79
79
  </a>
80
- <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
80
+ <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
81
+ </td>
82
+ <td id='jérôme-lacoste'>
83
+ <a href='https://github.com/lacostej'>
84
+ <img src='https://github.com/lacostej.png' width='140px;'>
85
+ </a>
86
+ <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
87
+ </td>
88
+ <td id='fumiya-nakamura'>
89
+ <a href='https://github.com/nafu'>
90
+ <img src='https://github.com/nafu.png' width='140px;'>
91
+ </a>
92
+ <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
93
+ </td>
94
+ <td id='maksym-grebenets'>
95
+ <a href='https://github.com/mgrebenets'>
96
+ <img src='https://github.com/mgrebenets.png' width='140px;'>
97
+ </a>
98
+ <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
99
+ </td>
100
+ </tr>
101
+ <tr>
102
+ <td id='jimmy-dee'>
103
+ <a href='https://github.com/jdee'>
104
+ <img src='https://github.com/jdee.png' width='140px;'>
105
+ </a>
106
+ <h4 align='center'>Jimmy Dee</h4>
107
+ </td>
108
+ <td id='manu-wallner'>
109
+ <a href='https://github.com/milch'>
110
+ <img src='https://github.com/milch.png' width='140px;'>
111
+ </a>
112
+ <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
81
113
  </td>
82
114
  <td id='josh-holtz'>
83
115
  <a href='https://github.com/joshdholtz'>
@@ -91,25 +123,19 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
91
123
  </a>
92
124
  <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
93
125
  </td>
94
- <td id='fumiya-nakamura'>
95
- <a href='https://github.com/nafu'>
96
- <img src='https://github.com/nafu.png' width='140px;'>
97
- </a>
98
- <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
99
- </td>
100
- </tr>
101
- <tr>
102
126
  <td id='jorge-revuelta-h'>
103
127
  <a href='https://github.com/minuscorp'>
104
128
  <img src='https://github.com/minuscorp.png' width='140px;'>
105
129
  </a>
106
130
  <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
107
131
  </td>
108
- <td id='roger-oba'>
109
- <a href='https://github.com/rogerluan'>
110
- <img src='https://github.com/rogerluan.png' width='140px;'>
132
+ </tr>
133
+ <tr>
134
+ <td id='jan-piotrowski'>
135
+ <a href='https://github.com/janpio'>
136
+ <img src='https://github.com/janpio.png' width='140px;'>
111
137
  </a>
112
- <h4 align='center'><a href='https://twitter.com/rogerluan_'>Roger Oba</a></h4>
138
+ <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
113
139
  </td>
114
140
  <td id='satoshi-namai'>
115
141
  <a href='https://github.com/ainame'>
@@ -117,31 +143,11 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
117
143
  </a>
118
144
  <h4 align='center'><a href='https://twitter.com/ainame'>Satoshi Namai</a></h4>
119
145
  </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>
125
- </td>
126
- <td id='kohki-miki'>
127
- <a href='https://github.com/giginet'>
128
- <img src='https://github.com/giginet.png' width='140px;'>
129
- </a>
130
- <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
131
- </td>
132
- </tr>
133
- <tr>
134
- <td id='jimmy-dee'>
135
- <a href='https://github.com/jdee'>
136
- <img src='https://github.com/jdee.png' width='140px;'>
137
- </a>
138
- <h4 align='center'>Jimmy Dee</h4>
139
- </td>
140
- <td id='stefan-natchev'>
141
- <a href='https://github.com/snatchev'>
142
- <img src='https://github.com/snatchev.png' width='140px;'>
146
+ <td id='helmut-januschka'>
147
+ <a href='https://github.com/hjanuschka'>
148
+ <img src='https://github.com/hjanuschka.png' width='140px;'>
143
149
  </a>
144
- <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
150
+ <h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
145
151
  </td>
146
152
  <td id='manish-rathi'>
147
153
  <a href='https://github.com/crazymanish'>
@@ -155,51 +161,45 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
155
161
  </a>
156
162
  <h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
157
163
  </td>
158
- <td id='luka-mirosevic'>
159
- <a href='https://github.com/lmirosevic'>
160
- <img src='https://github.com/lmirosevic.png' width='140px;'>
161
- </a>
162
- <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
163
- </td>
164
164
  </tr>
165
165
  <tr>
166
- <td id='jérôme-lacoste'>
167
- <a href='https://github.com/lacostej'>
168
- <img src='https://github.com/lacostej.png' width='140px;'>
169
- </a>
170
- <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
171
- </td>
172
- <td id='łukasz-grabowski'>
173
- <a href='https://github.com/lucgrabowski'>
174
- <img src='https://github.com/lucgrabowski.png' width='140px;'>
175
- </a>
176
- <h4 align='center'>Łukasz Grabowski</h4>
177
- </td>
178
166
  <td id='aaron-brager'>
179
167
  <a href='https://github.com/getaaron'>
180
168
  <img src='https://github.com/getaaron.png' width='140px;'>
181
169
  </a>
182
170
  <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
183
171
  </td>
184
- <td id='jan-piotrowski'>
185
- <a href='https://github.com/janpio'>
186
- <img src='https://github.com/janpio.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;'>
187
175
  </a>
188
- <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
176
+ <h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
189
177
  </td>
190
- <td id='iulian-onofrei'>
191
- <a href='https://github.com/revolter'>
192
- <img src='https://github.com/revolter.png' width='140px;'>
178
+ <td id='roger-oba'>
179
+ <a href='https://github.com/rogerluan'>
180
+ <img src='https://github.com/rogerluan.png' width='140px;'>
193
181
  </a>
194
- <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
182
+ <h4 align='center'><a href='https://twitter.com/rogerluan_'>Roger Oba</a></h4>
183
+ </td>
184
+ <td id='łukasz-grabowski'>
185
+ <a href='https://github.com/lucgrabowski'>
186
+ <img src='https://github.com/lucgrabowski.png' width='140px;'>
187
+ </a>
188
+ <h4 align='center'>Łukasz Grabowski</h4>
189
+ </td>
190
+ <td id='andrew-mcburney'>
191
+ <a href='https://github.com/armcburney'>
192
+ <img src='https://github.com/armcburney.png' width='140px;'>
193
+ </a>
194
+ <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
195
195
  </td>
196
196
  </tr>
197
197
  <tr>
198
- <td id='maksym-grebenets'>
199
- <a href='https://github.com/mgrebenets'>
200
- <img src='https://github.com/mgrebenets.png' width='140px;'>
198
+ <td id='max-ott'>
199
+ <a href='https://github.com/max-ott'>
200
+ <img src='https://github.com/max-ott.png' width='140px;'>
201
201
  </a>
202
- <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
202
+ <h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
203
203
  </td>
204
204
  </table>
205
205
 
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
- VERSION = '2.224.0'.freeze
2
+ VERSION = '2.225.0'.freeze
3
3
  SUMMARY = "The easiest way to build and release mobile apps.".freeze
4
4
  DESCRIPTION = "The easiest way to automate beta deployments and releases for your iOS and Android apps".freeze
5
5
  MINIMUM_XCODE_RELEASE = "7.0".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.224.0
20
+ // Generated with fastlane 2.225.0
@@ -272,4 +272,4 @@ public extension DeliverfileProtocol {
272
272
 
273
273
  // Please don't remove the lines below
274
274
  // They are used to detect outdated files
275
- // FastlaneRunnerAPIVersion [0.9.130]
275
+ // FastlaneRunnerAPIVersion [0.9.131]
@@ -13861,4 +13861,4 @@ public let snapshotfile: Snapshotfile = .init()
13861
13861
 
13862
13862
  // Please don't remove the lines below
13863
13863
  // They are used to detect outdated files
13864
- // FastlaneRunnerAPIVersion [0.9.183]
13864
+ // FastlaneRunnerAPIVersion [0.9.184]
@@ -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.224.0
20
+ // Generated with fastlane 2.225.0
@@ -212,4 +212,4 @@ public extension GymfileProtocol {
212
212
 
213
213
  // Please don't remove the lines below
214
214
  // They are used to detect outdated files
215
- // FastlaneRunnerAPIVersion [0.9.133]
215
+ // FastlaneRunnerAPIVersion [0.9.134]
@@ -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.224.0
20
+ // Generated with fastlane 2.225.0
@@ -232,4 +232,4 @@ public extension MatchfileProtocol {
232
232
 
233
233
  // Please don't remove the lines below
234
234
  // They are used to detect outdated files
235
- // FastlaneRunnerAPIVersion [0.9.127]
235
+ // FastlaneRunnerAPIVersion [0.9.128]
@@ -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.224.0
20
+ // Generated with fastlane 2.225.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.126]
55
+ // FastlaneRunnerAPIVersion [0.9.127]
@@ -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.224.0
20
+ // Generated with fastlane 2.225.0
@@ -324,4 +324,4 @@ public extension ScanfileProtocol {
324
324
 
325
325
  // Please don't remove the lines below
326
326
  // They are used to detect outdated files
327
- // FastlaneRunnerAPIVersion [0.9.138]
327
+ // FastlaneRunnerAPIVersion [0.9.139]
@@ -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.224.0
20
+ // Generated with fastlane 2.225.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.128]
99
+ // FastlaneRunnerAPIVersion [0.9.129]
@@ -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.224.0
20
+ // Generated with fastlane 2.225.0
@@ -208,4 +208,4 @@ public extension SnapshotfileProtocol {
208
208
 
209
209
  // Please don't remove the lines below
210
210
  // They are used to detect outdated files
211
- // FastlaneRunnerAPIVersion [0.9.122]
211
+ // FastlaneRunnerAPIVersion [0.9.123]
@@ -2,50 +2,40 @@
2
2
  "entries": {
3
3
  "brew": {
4
4
  "swiftformat": {
5
- "version": "0.54.5",
5
+ "version": "0.54.6",
6
6
  "bottle": {
7
7
  "rebuild": 0,
8
8
  "root_url": "https://ghcr.io/v2/homebrew/core",
9
9
  "files": {
10
10
  "arm64_sequoia": {
11
11
  "cellar": ":any_skip_relocation",
12
- "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:3fc57cb9abcbfd64106a3b16f51c8851c9877327553ec5fd9b21683d42b3c18d",
13
- "sha256": "3fc57cb9abcbfd64106a3b16f51c8851c9877327553ec5fd9b21683d42b3c18d"
12
+ "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:fda0a46091e8c4a1a913e08e29a92159ed747d83403508e0b5408e88e68cdf0c",
13
+ "sha256": "fda0a46091e8c4a1a913e08e29a92159ed747d83403508e0b5408e88e68cdf0c"
14
14
  },
15
15
  "arm64_sonoma": {
16
16
  "cellar": ":any_skip_relocation",
17
- "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:4d1f7565498827bbc53230f01c2fca4a7d082f4ae16d32ae568ba633c090c6ee",
18
- "sha256": "4d1f7565498827bbc53230f01c2fca4a7d082f4ae16d32ae568ba633c090c6ee"
17
+ "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:2c937e3425e9b44a73eb5ae4a83604b4476f901866014c01c1ebd3f3a8d9c198",
18
+ "sha256": "2c937e3425e9b44a73eb5ae4a83604b4476f901866014c01c1ebd3f3a8d9c198"
19
19
  },
20
20
  "arm64_ventura": {
21
21
  "cellar": ":any_skip_relocation",
22
- "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:416b54dc7938754980f9b2d732254ce7a36c401c2df3b68eba47f54db9bb956c",
23
- "sha256": "416b54dc7938754980f9b2d732254ce7a36c401c2df3b68eba47f54db9bb956c"
24
- },
25
- "arm64_monterey": {
26
- "cellar": ":any_skip_relocation",
27
- "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:3b14b0bacb0938c650e2d0d30d1f546ea7bac4feac510be16f09a89abd9f95d4",
28
- "sha256": "3b14b0bacb0938c650e2d0d30d1f546ea7bac4feac510be16f09a89abd9f95d4"
22
+ "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:d68be9490bce8cb196933f1f421f791b0b9758a759956edfaf166f88dfca78e1",
23
+ "sha256": "d68be9490bce8cb196933f1f421f791b0b9758a759956edfaf166f88dfca78e1"
29
24
  },
30
25
  "sonoma": {
31
26
  "cellar": ":any_skip_relocation",
32
- "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:445a0e38bda1f1dbda7c34dbb75a1b4432c5f0de7f9fa8bd4e03a9220b9bda19",
33
- "sha256": "445a0e38bda1f1dbda7c34dbb75a1b4432c5f0de7f9fa8bd4e03a9220b9bda19"
27
+ "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:784d61fca33bdbbdf96f8f23db2a0ea849ef62cb251eedfe83863869db84359b",
28
+ "sha256": "784d61fca33bdbbdf96f8f23db2a0ea849ef62cb251eedfe83863869db84359b"
34
29
  },
35
30
  "ventura": {
36
31
  "cellar": ":any_skip_relocation",
37
- "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:508b2e8000078773c7884e17b8d1ca711f4313ba14ff0000f7a28af68b02e71a",
38
- "sha256": "508b2e8000078773c7884e17b8d1ca711f4313ba14ff0000f7a28af68b02e71a"
39
- },
40
- "monterey": {
41
- "cellar": ":any_skip_relocation",
42
- "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:8c367a76ca05ba07ffc38a6bb2f5ee0231d363655ed982284afcb4d685fa524e",
43
- "sha256": "8c367a76ca05ba07ffc38a6bb2f5ee0231d363655ed982284afcb4d685fa524e"
32
+ "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:7845bd9bf8f0f94980f38d0ac322a5ee41bde07d18ec0c93a343c4aa7d2606fe",
33
+ "sha256": "7845bd9bf8f0f94980f38d0ac322a5ee41bde07d18ec0c93a343c4aa7d2606fe"
44
34
  },
45
35
  "x86_64_linux": {
46
36
  "cellar": "/home/linuxbrew/.linuxbrew/Cellar",
47
- "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:8e8abc969e1b10e7411a92717703c8cd944c7a3f3fd04e2d232918971ae14662",
48
- "sha256": "8e8abc969e1b10e7411a92717703c8cd944c7a3f3fd04e2d232918971ae14662"
37
+ "url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:14756d1f83aedf183be980541393c3e4d9cfa47dee3dbfdb665a3461f5045e13",
38
+ "sha256": "14756d1f83aedf183be980541393c3e4d9cfa47dee3dbfdb665a3461f5045e13"
49
39
  }
50
40
  }
51
41
  }
@@ -87,12 +77,12 @@
87
77
  "macOS": "13.6"
88
78
  },
89
79
  "sonoma": {
90
- "HOMEBREW_VERSION": "4.4.0",
80
+ "HOMEBREW_VERSION": "4.4.1",
91
81
  "HOMEBREW_PREFIX": "/opt/homebrew",
92
82
  "Homebrew/homebrew-core": "api",
93
83
  "CLT": "16.0.0.0.1.1724870825",
94
84
  "Xcode": "15.4",
95
- "macOS": "14.6.1"
85
+ "macOS": "14.7"
96
86
  }
97
87
  }
98
88
  }
@@ -450,6 +450,94 @@ module Spaceship
450
450
  return false
451
451
  end
452
452
 
453
+ def do_sirp(user, password, modified_cookie)
454
+ require 'fastlane-sirp'
455
+ require 'base64'
456
+
457
+ client = SIRP::Client.new(2048)
458
+ a = client.start_authentication
459
+
460
+ data = {
461
+ a: Base64.strict_encode64(to_byte(a)),
462
+ accountName: user,
463
+ protocols: ['s2k', 's2k_fo']
464
+ }
465
+
466
+ response = request(:post) do |req|
467
+ req.url("https://idmsa.apple.com/appleauth/auth/signin/init")
468
+ req.body = data.to_json
469
+ req.headers['Content-Type'] = 'application/json'
470
+ req.headers['X-Requested-With'] = 'XMLHttpRequest'
471
+ req.headers['X-Apple-Widget-Key'] = self.itc_service_key
472
+ req.headers['Accept'] = 'application/json, text/javascript'
473
+ req.headers["Cookie"] = modified_cookie if modified_cookie
474
+ end
475
+
476
+ puts("Received SIRP signin init response: #{response.body}") if Spaceship::Globals.verbose?
477
+
478
+ body = response.body
479
+ iterations = body["iteration"]
480
+ salt = Base64.strict_decode64(body["salt"])
481
+ b = Base64.strict_decode64(body["b"])
482
+ c = body["c"]
483
+
484
+ key_length = 32
485
+ encrypted_password = pbkdf2(password, salt, iterations, key_length)
486
+
487
+ m1 = client.process_challenge(
488
+ user,
489
+ to_hex(encrypted_password),
490
+ to_hex(salt),
491
+ to_hex(b),
492
+ is_password_encrypted: true
493
+ )
494
+ m2 = client.H_AMK
495
+
496
+ if m1 == false
497
+ puts("Error processing SIRP challenge") if Spaceship::Globals.verbose?
498
+ raise SIRPAuthenticationError
499
+ end
500
+
501
+ data = {
502
+ accountName: user,
503
+ c: c,
504
+ m1: Base64.encode64(to_byte(m1)).strip,
505
+ m2: Base64.encode64(to_byte(m2)).strip,
506
+ rememberMe: false
507
+ }
508
+
509
+ hashcash = self.fetch_hashcash
510
+
511
+ response = request(:post) do |req|
512
+ req.url("https://idmsa.apple.com/appleauth/auth/signin/complete?isRememberMeEnabled=false")
513
+ req.body = data.to_json
514
+ req.headers['Content-Type'] = 'application/json'
515
+ req.headers['X-Requested-With'] = 'XMLHttpRequest'
516
+ req.headers['X-Apple-Widget-Key'] = self.itc_service_key
517
+ req.headers['Accept'] = 'application/json, text/javascript'
518
+ req.headers["Cookie"] = modified_cookie if modified_cookie
519
+ req.headers["X-Apple-HC"] = hashcash if hashcash
520
+ end
521
+
522
+ puts("Completed SIRP authentication with status of #{response.status}") if Spaceship::Globals.verbose?
523
+
524
+ return response
525
+ end
526
+
527
+ def pbkdf2(password, salt, iterations, key_length, digest = OpenSSL::Digest::SHA256.new)
528
+ require 'openssl'
529
+ password = OpenSSL::Digest::SHA256.digest(password)
530
+ OpenSSL::PKCS5.pbkdf2_hmac(password, salt, iterations, key_length, digest)
531
+ end
532
+
533
+ def to_hex(str)
534
+ str.unpack1('H*')
535
+ end
536
+
537
+ def to_byte(str)
538
+ [str].pack('H*')
539
+ end
540
+
453
541
  # This method is used for both the Apple Dev Portal and App Store Connect
454
542
  # This will also handle 2 step verification and 2 factor authentication
455
543
  #
@@ -465,12 +553,6 @@ module Spaceship
465
553
  # If the session is valid no need to attempt to generate a new one.
466
554
  return true if has_valid_session
467
555
 
468
- data = {
469
- accountName: user,
470
- password: password,
471
- rememberMe: true
472
- }
473
-
474
556
  begin
475
557
  # The below workaround is only needed for 2 step verified machines
476
558
  # Due to escaping of cookie values we have a little workaround here
@@ -491,22 +573,7 @@ module Spaceship
491
573
  modified_cookie.gsub!(unescaped_important_cookie, escaped_important_cookie)
492
574
  end
493
575
 
494
- # Fixes issue https://github.com/fastlane/fastlane/issues/21071
495
- # On 2023-02-23, Apple added a custom implementation
496
- # of hashcash to their auth flow
497
- # hashcash = nil
498
- hashcash = self.fetch_hashcash
499
-
500
- response = request(:post) do |req|
501
- req.url("https://idmsa.apple.com/appleauth/auth/signin")
502
- req.body = data.to_json
503
- req.headers['Content-Type'] = 'application/json'
504
- req.headers['X-Requested-With'] = 'XMLHttpRequest'
505
- req.headers['X-Apple-Widget-Key'] = self.itc_service_key
506
- req.headers['Accept'] = 'application/json, text/javascript'
507
- req.headers["Cookie"] = modified_cookie if modified_cookie
508
- req.headers["X-Apple-HC"] = hashcash if hashcash
509
- end
576
+ response = perform_login_method(user, password, modified_cookie)
510
577
  rescue UnauthorizedAccessError
511
578
  raise InvalidUserCredentialsError.new, "Invalid username and password combination. Used '#{user}' as the username."
512
579
  end
@@ -552,6 +619,40 @@ module Spaceship
552
619
  end
553
620
  # rubocop:enable Metrics/PerceivedComplexity
554
621
 
622
+ def perform_login_method(user, password, modified_cookie)
623
+ do_legacy_signin = ENV['FASTLANE_USE_LEGACY_PRE_SIRP_AUTH']
624
+ if do_legacy_signin
625
+ puts("Starting legacy Apple ID login") if Spaceship::Globals.verbose?
626
+
627
+ # Fixes issue https://github.com/fastlane/fastlane/issues/21071
628
+ # On 2023-02-23, Apple added a custom implementation
629
+ # of hashcash to their auth flow
630
+ # hashcash = nil
631
+ hashcash = self.fetch_hashcash
632
+
633
+ data = {
634
+ accountName: user,
635
+ password: password,
636
+ rememberMe: true
637
+ }
638
+
639
+ return request(:post) do |req|
640
+ req.url("https://idmsa.apple.com/appleauth/auth/signin")
641
+ req.body = data.to_json
642
+ req.headers['Content-Type'] = 'application/json'
643
+ req.headers['X-Requested-With'] = 'XMLHttpRequest'
644
+ req.headers['X-Apple-Widget-Key'] = self.itc_service_key
645
+ req.headers['Accept'] = 'application/json, text/javascript'
646
+ req.headers["Cookie"] = modified_cookie if modified_cookie
647
+ req.headers["X-Apple-HC"] = hashcash if hashcash
648
+ end
649
+ else
650
+ # Fixes issue https://github.com/fastlane/fastlane/issues/26368#issuecomment-2424190032
651
+ puts("Starting SIRP Apple ID login") if Spaceship::Globals.verbose?
652
+ return do_sirp(user, password, modified_cookie)
653
+ end
654
+ end
655
+
555
656
  def fetch_hashcash
556
657
  response = request(:get, "https://idmsa.apple.com/appleauth/auth/signin?widgetKey=#{self.itc_service_key}")
557
658
  headers = response.headers
@@ -43,6 +43,21 @@ module Spaceship
43
43
  end
44
44
  end
45
45
 
46
+ # User doesn't have enough permission for given action
47
+ class SIRPAuthenticationError < BasicPreferredInfoError
48
+ TITLE = 'Authentication issue validating secrets:'.freeze
49
+
50
+ def preferred_error_info
51
+ message ? [TITLE, message] : nil
52
+ end
53
+
54
+ # We don't want to show similar GitHub issues, as the error message
55
+ # should be pretty clear
56
+ def show_github_issues
57
+ false
58
+ end
59
+ end
60
+
46
61
  # Raised when 429 is received from App Store Connect
47
62
  class TooManyRequestsError < BasicPreferredInfoError
48
63
  attr_reader :retry_after
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.224.0
4
+ version: 2.225.0
5
5
  platform: ruby
6
6
  authors:
7
- - Maksym Grebenets
8
- - Aaron Brager
9
- - Iulian Onofrei
10
7
  - Andrew McBurney
11
- - Daniel Jankowski
12
- - Manu Wallner
13
- - Felix Krause
8
+ - Łukasz Grabowski
9
+ - Jimmy Dee
10
+ - Manish Rathi
11
+ - Aaron Brager
12
+ - Satoshi Namai
13
+ - Danielle Tomlinson
14
14
  - Jérôme Lacoste
15
+ - Jorge Revuelta H
15
16
  - Helmut Januschka
17
+ - Joshua Liebowitz
18
+ - Felix Krause
19
+ - Stefan Natchev
20
+ - Iulian Onofrei
21
+ - Roger Oba
22
+ - Manu Wallner
16
23
  - Max Ott
17
- - Satoshi Namai
18
- - Josh Holtz
19
- - Kohki Miki
20
- - Manish Rathi
21
- - Jorge Revuelta H
22
- - Fumiya Nakamura
23
- - Łukasz Grabowski
24
- - Jimmy Dee
25
24
  - Olivier Halligon
26
- - Stefan Natchev
25
+ - Maksym Grebenets
26
+ - Fumiya Nakamura
27
27
  - Jan Piotrowski
28
- - Joshua Liebowitz
29
28
  - Luka Mirosevic
29
+ - Josh Holtz
30
+ - Kohki Miki
30
31
  - Matthew Ellis
31
- - Danielle Tomlinson
32
- - Roger Oba
32
+ - Daniel Jankowski
33
33
  autorequire:
34
34
  bindir: bin
35
35
  cert_chain: []
36
- date: 2024-10-03 00:00:00.000000000 Z
36
+ date: 2024-10-21 00:00:00.000000000 Z
37
37
  dependencies:
38
38
  - !ruby/object:Gem::Dependency
39
39
  name: addressable
@@ -293,6 +293,20 @@ dependencies:
293
293
  - - "<"
294
294
  - !ruby/object:Gem::Version
295
295
  version: 3.0.0
296
+ - !ruby/object:Gem::Dependency
297
+ name: fastlane-sirp
298
+ requirement: !ruby/object:Gem::Requirement
299
+ requirements:
300
+ - - ">="
301
+ - !ruby/object:Gem::Version
302
+ version: 1.0.0
303
+ type: :runtime
304
+ prerelease: false
305
+ version_requirements: !ruby/object:Gem::Requirement
306
+ requirements:
307
+ - - ">="
308
+ - !ruby/object:Gem::Version
309
+ version: 1.0.0
296
310
  - !ruby/object:Gem::Dependency
297
311
  name: gh_inspector
298
312
  requirement: !ruby/object:Gem::Requirement