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 +4 -4
- data/README.md +92 -92
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/fastlane/swift/Deliverfile.swift +1 -1
- data/fastlane/swift/DeliverfileProtocol.swift +1 -1
- data/fastlane/swift/Fastlane.swift +1 -1
- data/fastlane/swift/Gymfile.swift +1 -1
- data/fastlane/swift/GymfileProtocol.swift +1 -1
- data/fastlane/swift/Matchfile.swift +1 -1
- data/fastlane/swift/MatchfileProtocol.swift +1 -1
- data/fastlane/swift/Precheckfile.swift +1 -1
- data/fastlane/swift/PrecheckfileProtocol.swift +1 -1
- data/fastlane/swift/Scanfile.swift +1 -1
- data/fastlane/swift/ScanfileProtocol.swift +1 -1
- data/fastlane/swift/Screengrabfile.swift +1 -1
- data/fastlane/swift/ScreengrabfileProtocol.swift +1 -1
- data/fastlane/swift/Snapshotfile.swift +1 -1
- data/fastlane/swift/SnapshotfileProtocol.swift +1 -1
- data/fastlane/swift/formatting/Brewfile.lock.json +15 -25
- data/spaceship/lib/spaceship/client.rb +123 -22
- data/spaceship/lib/spaceship/errors.rb +15 -0
- metadata +34 -20
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: a1e77f8938ff5841875b3034ae791bdb74735771a039be4e5da709c92b49268b
|
|
4
|
+
data.tar.gz: 5aebfce31f8424bd6012576c361269061b0aece5040af945ef29849fcb233cd3
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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='
|
|
71
|
-
<a href='https://github.com/
|
|
72
|
-
<img src='https://github.com/
|
|
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/
|
|
74
|
+
<h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
|
|
75
75
|
</td>
|
|
76
|
-
<td id='
|
|
77
|
-
<a href='https://github.com/
|
|
78
|
-
<img src='https://github.com/
|
|
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/
|
|
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
|
-
|
|
109
|
-
<
|
|
110
|
-
<
|
|
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/
|
|
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='
|
|
121
|
-
<a href='https://github.com/
|
|
122
|
-
<img src='https://github.com/
|
|
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/
|
|
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='
|
|
185
|
-
<a href='https://github.com/
|
|
186
|
-
<img src='https://github.com/
|
|
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/
|
|
176
|
+
<h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
|
|
189
177
|
</td>
|
|
190
|
-
<td id='
|
|
191
|
-
<a href='https://github.com/
|
|
192
|
-
<img src='https://github.com/
|
|
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/
|
|
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='
|
|
199
|
-
<a href='https://github.com/
|
|
200
|
-
<img src='https://github.com/
|
|
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/
|
|
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.
|
|
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
|
|
@@ -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.
|
|
13864
|
+
// FastlaneRunnerAPIVersion [0.9.184]
|
|
@@ -2,50 +2,40 @@
|
|
|
2
2
|
"entries": {
|
|
3
3
|
"brew": {
|
|
4
4
|
"swiftformat": {
|
|
5
|
-
"version": "0.54.
|
|
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:
|
|
13
|
-
"sha256": "
|
|
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:
|
|
18
|
-
"sha256": "
|
|
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:
|
|
23
|
-
"sha256": "
|
|
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:
|
|
33
|
-
"sha256": "
|
|
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:
|
|
38
|
-
"sha256": "
|
|
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:
|
|
48
|
-
"sha256": "
|
|
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.
|
|
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.
|
|
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
|
-
|
|
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.
|
|
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
|
-
-
|
|
12
|
-
-
|
|
13
|
-
-
|
|
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
|
-
-
|
|
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
|
-
-
|
|
32
|
-
- Roger Oba
|
|
32
|
+
- Daniel Jankowski
|
|
33
33
|
autorequire:
|
|
34
34
|
bindir: bin
|
|
35
35
|
cert_chain: []
|
|
36
|
-
date: 2024-10-
|
|
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
|