fastlane 2.212.0 → 2.212.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e057e50e5d579d53addcca0e59b39eb3eb48ddb90339e12943ab0512a040496c
4
- data.tar.gz: 7786048e835509e7db2e4ba5c4859ecd24fcfc9a4637a52da7ec84a568bf31a2
3
+ metadata.gz: 244364fbe5e40c851dc1afbb79fe8c79ba76fedee6e607d7cf950f043ba7b921
4
+ data.tar.gz: 5f4f4f4462eb64a87ed63df0ece646c100ae8d3a0c37a84eff9cbad76f51c2a8
5
5
  SHA512:
6
- metadata.gz: 45f7948df9f9a60123c09dedfc1159e84dc149b8b17be90494c02dbe55b531bedc3546d450861b63d32feedcc06de8774a1bab9db2050afcd0cc2038df268114
7
- data.tar.gz: 5acca0504847bb90327fc16ee1ea2842713ae0bfcbe3b92c8d813da352af5c6e5c37805f09ee25bfd1543e7ea17722751ac5b9e75fb1f1ca569e5e759ccdc407
6
+ metadata.gz: ae5c7a99e698db70b74516d415601ee4368fa864cd114a867d44098e0e52a2b68a361fc0178f902c0f0e6fefe3618639a259c92bde33906cb6a0501aa82d18e2
7
+ data.tar.gz: b736ceec481316c6d9cde333299bff4c8145e5b11f5e802acb60a9c59028c9a9444a7a771dcf8f21f952a3cd64e2959e7a87ae224fecad503e34a1d032481123
data/README.md CHANGED
@@ -35,23 +35,29 @@ 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='manish-rathi'>
39
- <a href='https://github.com/crazymanish'>
40
- <img src='https://github.com/crazymanish.png' width='140px;'>
38
+ <td id='roger-oba'>
39
+ <a href='https://github.com/rogerluan'>
40
+ <img src='https://github.com/rogerluan.png' width='140px;'>
41
41
  </a>
42
- <h4 align='center'><a href='https://twitter.com/iammanishrathi'>Manish Rathi</a></h4>
42
+ <h4 align='center'><a href='https://twitter.com/rogerluan_'>Roger Oba</a></h4>
43
43
  </td>
44
- <td id='maksym-grebenets'>
45
- <a href='https://github.com/mgrebenets'>
46
- <img src='https://github.com/mgrebenets.png' width='140px;'>
44
+ <td id='fumiya-nakamura'>
45
+ <a href='https://github.com/nafu'>
46
+ <img src='https://github.com/nafu.png' width='140px;'>
47
47
  </a>
48
- <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
48
+ <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
49
49
  </td>
50
- <td id='helmut-januschka'>
51
- <a href='https://github.com/hjanuschka'>
52
- <img src='https://github.com/hjanuschka.png' width='140px;'>
50
+ <td id='josh-holtz'>
51
+ <a href='https://github.com/joshdholtz'>
52
+ <img src='https://github.com/joshdholtz.png' width='140px;'>
53
53
  </a>
54
- <h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
54
+ <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
55
+ </td>
56
+ <td id='daniel-jankowski'>
57
+ <a href='https://github.com/mollyIV'>
58
+ <img src='https://github.com/mollyIV.png' width='140px;'>
59
+ </a>
60
+ <h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
55
61
  </td>
56
62
  <td id='jan-piotrowski'>
57
63
  <a href='https://github.com/janpio'>
@@ -59,6 +65,32 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
59
65
  </a>
60
66
  <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
61
67
  </td>
68
+ </tr>
69
+ <tr>
70
+ <td id='satoshi-namai'>
71
+ <a href='https://github.com/ainame'>
72
+ <img src='https://github.com/ainame.png' width='140px;'>
73
+ </a>
74
+ <h4 align='center'><a href='https://twitter.com/ainame'>Satoshi Namai</a></h4>
75
+ </td>
76
+ <td id='danielle-tomlinson'>
77
+ <a href='https://github.com/endocrimes'>
78
+ <img src='https://github.com/endocrimes.png' width='140px;'>
79
+ </a>
80
+ <h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
81
+ </td>
82
+ <td id='stefan-natchev'>
83
+ <a href='https://github.com/snatchev'>
84
+ <img src='https://github.com/snatchev.png' width='140px;'>
85
+ </a>
86
+ <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
87
+ </td>
88
+ <td id='matthew-ellis'>
89
+ <a href='https://github.com/matthewellis'>
90
+ <img src='https://github.com/matthewellis.png' width='140px;'>
91
+ </a>
92
+ <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
93
+ </td>
62
94
  <td id='iulian-onofrei'>
63
95
  <a href='https://github.com/revolter'>
64
96
  <img src='https://github.com/revolter.png' width='140px;'>
@@ -67,29 +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='kohki-miki'>
71
- <a href='https://github.com/giginet'>
72
- <img src='https://github.com/giginet.png' width='140px;'>
102
+ <td id='jorge-revuelta-h'>
103
+ <a href='https://github.com/minuscorp'>
104
+ <img src='https://github.com/minuscorp.png' width='140px;'>
73
105
  </a>
74
- <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
106
+ <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
75
107
  </td>
76
- <td id='max-ott'>
77
- <a href='https://github.com/max-ott'>
78
- <img src='https://github.com/max-ott.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/ott_max'>Max Ott</a></h4>
112
+ <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
81
113
  </td>
82
- <td id='fumiya-nakamura'>
83
- <a href='https://github.com/nafu'>
84
- <img src='https://github.com/nafu.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/nafu003'>Fumiya Nakamura</a></h4>
118
+ <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
87
119
  </td>
88
- <td id='andrew-mcburney'>
89
- <a href='https://github.com/armcburney'>
90
- <img src='https://github.com/armcburney.png' width='140px;'>
120
+ <td id='manish-rathi'>
121
+ <a href='https://github.com/crazymanish'>
122
+ <img src='https://github.com/crazymanish.png' width='140px;'>
91
123
  </a>
92
- <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
124
+ <h4 align='center'><a href='https://twitter.com/iammanishrathi'>Manish Rathi</a></h4>
93
125
  </td>
94
126
  <td id='felix-krause'>
95
127
  <a href='https://github.com/KrauseFx'>
@@ -99,23 +131,17 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
99
131
  </td>
100
132
  </tr>
101
133
  <tr>
102
- <td id='daniel-jankowski'>
103
- <a href='https://github.com/mollyIV'>
104
- <img src='https://github.com/mollyIV.png' width='140px;'>
105
- </a>
106
- <h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
107
- </td>
108
- <td id='stefan-natchev'>
109
- <a href='https://github.com/snatchev'>
110
- <img src='https://github.com/snatchev.png' width='140px;'>
134
+ <td id='helmut-januschka'>
135
+ <a href='https://github.com/hjanuschka'>
136
+ <img src='https://github.com/hjanuschka.png' width='140px;'>
111
137
  </a>
112
- <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
138
+ <h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
113
139
  </td>
114
- <td id='roger-oba'>
115
- <a href='https://github.com/rogerluan'>
116
- <img src='https://github.com/rogerluan.png' width='140px;'>
140
+ <td id='olivier-halligon'>
141
+ <a href='https://github.com/AliSoftware'>
142
+ <img src='https://github.com/AliSoftware.png' width='140px;'>
117
143
  </a>
118
- <h4 align='center'><a href='https://twitter.com/rogerluan_'>Roger Oba</a></h4>
144
+ <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
119
145
  </td>
120
146
  <td id='łukasz-grabowski'>
121
147
  <a href='https://github.com/lucgrabowski'>
@@ -123,11 +149,17 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
123
149
  </a>
124
150
  <h4 align='center'>Łukasz Grabowski</h4>
125
151
  </td>
126
- <td id='josh-holtz'>
127
- <a href='https://github.com/joshdholtz'>
128
- <img src='https://github.com/joshdholtz.png' width='140px;'>
152
+ <td id='kohki-miki'>
153
+ <a href='https://github.com/giginet'>
154
+ <img src='https://github.com/giginet.png' width='140px;'>
129
155
  </a>
130
- <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
156
+ <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
157
+ </td>
158
+ <td id='joshua-liebowitz'>
159
+ <a href='https://github.com/taquitos'>
160
+ <img src='https://github.com/taquitos.png' width='140px;'>
161
+ </a>
162
+ <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
131
163
  </td>
132
164
  </tr>
133
165
  <tr>
@@ -137,69 +169,37 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
137
169
  </a>
138
170
  <h4 align='center'>Jimmy Dee</h4>
139
171
  </td>
140
- <td id='jorge-revuelta-h'>
141
- <a href='https://github.com/minuscorp'>
142
- <img src='https://github.com/minuscorp.png' width='140px;'>
143
- </a>
144
- <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
145
- </td>
146
- <td id='matthew-ellis'>
147
- <a href='https://github.com/matthewellis'>
148
- <img src='https://github.com/matthewellis.png' width='140px;'>
149
- </a>
150
- <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
151
- </td>
152
- <td id='jérôme-lacoste'>
153
- <a href='https://github.com/lacostej'>
154
- <img src='https://github.com/lacostej.png' width='140px;'>
155
- </a>
156
- <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
157
- </td>
158
- <td id='satoshi-namai'>
159
- <a href='https://github.com/ainame'>
160
- <img src='https://github.com/ainame.png' width='140px;'>
172
+ <td id='manu-wallner'>
173
+ <a href='https://github.com/milch'>
174
+ <img src='https://github.com/milch.png' width='140px;'>
161
175
  </a>
162
- <h4 align='center'><a href='https://twitter.com/ainame'>Satoshi Namai</a></h4>
176
+ <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
163
177
  </td>
164
- </tr>
165
- <tr>
166
178
  <td id='aaron-brager'>
167
179
  <a href='https://github.com/getaaron'>
168
180
  <img src='https://github.com/getaaron.png' width='140px;'>
169
181
  </a>
170
182
  <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
171
183
  </td>
172
- <td id='danielle-tomlinson'>
173
- <a href='https://github.com/endocrimes'>
174
- <img src='https://github.com/endocrimes.png' width='140px;'>
175
- </a>
176
- <h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
177
- </td>
178
- <td id='olivier-halligon'>
179
- <a href='https://github.com/AliSoftware'>
180
- <img src='https://github.com/AliSoftware.png' width='140px;'>
181
- </a>
182
- <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
183
- </td>
184
- <td id='joshua-liebowitz'>
185
- <a href='https://github.com/taquitos'>
186
- <img src='https://github.com/taquitos.png' width='140px;'>
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
187
  </a>
188
- <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
188
+ <h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
189
189
  </td>
190
- <td id='luka-mirosevic'>
191
- <a href='https://github.com/lmirosevic'>
192
- <img src='https://github.com/lmirosevic.png' width='140px;'>
190
+ <td id='andrew-mcburney'>
191
+ <a href='https://github.com/armcburney'>
192
+ <img src='https://github.com/armcburney.png' width='140px;'>
193
193
  </a>
194
- <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
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='manu-wallner'>
199
- <a href='https://github.com/milch'>
200
- <img src='https://github.com/milch.png' width='140px;'>
198
+ <td id='jérôme-lacoste'>
199
+ <a href='https://github.com/lacostej'>
200
+ <img src='https://github.com/lacostej.png' width='140px;'>
201
201
  </a>
202
- <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
202
+ <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
203
203
  </td>
204
204
  </table>
205
205
 
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
- VERSION = '2.212.0'.freeze
2
+ VERSION = '2.212.1'.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.212.0
20
+ // Generated with fastlane 2.212.1
@@ -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.113]
267
+ // FastlaneRunnerAPIVersion [0.9.114]
@@ -13370,7 +13370,7 @@ public func xcov(workspace: OptionalConfigValue<String?> = .fastlaneDefault(nil)
13370
13370
  coverallsServiceJobId: OptionalConfigValue<String?> = .fastlaneDefault(nil),
13371
13371
  coverallsRepoToken: OptionalConfigValue<String?> = .fastlaneDefault(nil),
13372
13372
  xcconfig: OptionalConfigValue<String?> = .fastlaneDefault(nil),
13373
- ideFoundationPath: String = "/Applications/Xcode-13.4.1.app/Contents/Developer/../Frameworks/IDEFoundation.framework/Versions/A/IDEFoundation",
13373
+ ideFoundationPath: String = "/Applications/Xcode-14.1.0.app/Contents/Developer/../Frameworks/IDEFoundation.framework/Versions/A/IDEFoundation",
13374
13374
  legacySupport: OptionalConfigValue<Bool> = .fastlaneDefault(false))
13375
13375
  {
13376
13376
  let workspaceArg = workspace.asRubyArgument(name: "workspace", type: nil)
@@ -13573,4 +13573,4 @@ public let snapshotfile: Snapshotfile = .init()
13573
13573
 
13574
13574
  // Please don't remove the lines below
13575
13575
  // They are used to detect outdated files
13576
- // FastlaneRunnerAPIVersion [0.9.166]
13576
+ // FastlaneRunnerAPIVersion [0.9.167]
@@ -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.212.0
20
+ // Generated with fastlane 2.212.1
@@ -208,4 +208,4 @@ public extension GymfileProtocol {
208
208
 
209
209
  // Please don't remove the lines below
210
210
  // They are used to detect outdated files
211
- // FastlaneRunnerAPIVersion [0.9.116]
211
+ // FastlaneRunnerAPIVersion [0.9.117]
@@ -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.212.0
20
+ // Generated with fastlane 2.212.1
@@ -208,4 +208,4 @@ public extension MatchfileProtocol {
208
208
 
209
209
  // Please don't remove the lines below
210
210
  // They are used to detect outdated files
211
- // FastlaneRunnerAPIVersion [0.9.110]
211
+ // FastlaneRunnerAPIVersion [0.9.111]
@@ -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.212.0
20
+ // Generated with fastlane 2.212.1
@@ -52,4 +52,4 @@ public extension PrecheckfileProtocol {
52
52
 
53
53
  // Please don't remove the lines below
54
54
  // They are used to detect outdated files
55
- // FastlaneRunnerAPIVersion [0.9.109]
55
+ // FastlaneRunnerAPIVersion [0.9.110]
@@ -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.212.0
20
+ // Generated with fastlane 2.212.1
@@ -316,4 +316,4 @@ public extension ScanfileProtocol {
316
316
 
317
317
  // Please don't remove the lines below
318
318
  // They are used to detect outdated files
319
- // FastlaneRunnerAPIVersion [0.9.121]
319
+ // FastlaneRunnerAPIVersion [0.9.122]
@@ -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.212.0
20
+ // Generated with fastlane 2.212.1
@@ -96,4 +96,4 @@ public extension ScreengrabfileProtocol {
96
96
 
97
97
  // Please don't remove the lines below
98
98
  // They are used to detect outdated files
99
- // FastlaneRunnerAPIVersion [0.9.111]
99
+ // FastlaneRunnerAPIVersion [0.9.112]
@@ -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.212.0
20
+ // Generated with fastlane 2.212.1
@@ -204,4 +204,4 @@ public extension SnapshotfileProtocol {
204
204
 
205
205
  // Please don't remove the lines below
206
206
  // They are used to detect outdated files
207
- // FastlaneRunnerAPIVersion [0.9.105]
207
+ // FastlaneRunnerAPIVersion [0.9.106]
@@ -74,11 +74,11 @@
74
74
  "macOS": "12.5"
75
75
  },
76
76
  "ventura": {
77
- "HOMEBREW_VERSION": "4.0.1-62-ga222a5b",
77
+ "HOMEBREW_VERSION": "4.0.3-103-gd7029e9",
78
78
  "HOMEBREW_PREFIX": "/opt/homebrew",
79
79
  "Homebrew/homebrew-core": "api",
80
80
  "CLT": "",
81
- "Xcode": "13.4.1",
81
+ "Xcode": "14.1",
82
82
  "macOS": "13.1"
83
83
  }
84
84
  }
@@ -18,6 +18,7 @@ require_relative 'tunes/errors'
18
18
  require_relative 'globals'
19
19
  require_relative 'provider'
20
20
  require_relative 'stats_middleware'
21
+ require_relative 'hashcash'
21
22
 
22
23
  Faraday::Utils.default_params_encoder = Faraday::FlatParamsEncoder
23
24
 
@@ -490,6 +491,12 @@ module Spaceship
490
491
  modified_cookie.gsub!(unescaped_important_cookie, escaped_important_cookie)
491
492
  end
492
493
 
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
+
493
500
  response = request(:post) do |req|
494
501
  req.url("https://idmsa.apple.com/appleauth/auth/signin")
495
502
  req.body = data.to_json
@@ -498,6 +505,7 @@ module Spaceship
498
505
  req.headers['X-Apple-Widget-Key'] = self.itc_service_key
499
506
  req.headers['Accept'] = 'application/json, text/javascript'
500
507
  req.headers["Cookie"] = modified_cookie if modified_cookie
508
+ req.headers["X-Apple-HC"] = hashcash if hashcash
501
509
  end
502
510
  rescue UnauthorizedAccessError
503
511
  raise InvalidUserCredentialsError.new, "Invalid username and password combination. Used '#{user}' as the username."
@@ -545,6 +553,21 @@ module Spaceship
545
553
  end
546
554
  # rubocop:enable Metrics/PerceivedComplexity
547
555
 
556
+ def fetch_hashcash
557
+ response = request(:get, "https://idmsa.apple.com/appleauth/auth/signin?widgetKey=#{self.itc_service_key}")
558
+ headers = response.headers
559
+
560
+ bits = headers["X-Apple-HC-Bits"]
561
+ challenge = headers["X-Apple-HC-Challenge"]
562
+
563
+ if bits.nil? || challenge.nil?
564
+ puts("Unable to find 'X-Apple-HC-Bits' and 'X-Apple-HC-Challenge' to make hashcash")
565
+ return nil
566
+ end
567
+
568
+ return Spaceship::Hashcash.make(bits: bits, challenge: challenge)
569
+ end
570
+
548
571
  # Get the `itctx` from the new (22nd May 2017) API endpoint "olympus"
549
572
  # Update (29th March 2019) olympus migrates to new appstoreconnect API
550
573
  def fetch_olympus_session
@@ -0,0 +1,52 @@
1
+ require 'digest'
2
+
3
+ module Spaceship
4
+ module Hashcash
5
+ # This App Store Connect hashcash spec was generously donated by...
6
+ #
7
+ # __ _
8
+ # __ _ _ __ _ __ / _|(_) __ _ _ _ _ __ ___ ___
9
+ # / _` || '_ \ | '_ \ | |_ | | / _` || | | || '__|/ _ \/ __|
10
+ # | (_| || |_) || |_) || _|| || (_| || |_| || | | __/\__ \
11
+ # \__,_|| .__/ | .__/ |_| |_| \__, | \__,_||_| \___||___/
12
+ # |_| |_| |___/
13
+ #
14
+ #
15
+ # <summary>
16
+ # 1:11:20230223170600:4d74fb15eb23f465f1f6fcbf534e5877::6373
17
+ # X-APPLE-HC: 1:11:20230223170600:4d74fb15eb23f465f1f6fcbf534e5877::6373
18
+ # ^ ^ ^ ^ ^
19
+ # | | | | +-- Counter
20
+ # | | | +-- Resource
21
+ # | | +-- Date YYMMDD[hhmm[ss]]
22
+ # | +-- Bits (number of leading zeros)
23
+ # +-- Version
24
+ #
25
+ # We can't use an off-the-shelf Hashcash because Apple's implementation is not quite the same as the spec/convention.
26
+ # 1. The spec calls for a nonce called "Rand" to be inserted between the Ext and Counter. They don't do that at all.
27
+ # 2. The Counter conventionally encoded as base-64 but Apple just uses the decimal number's string representation.
28
+ #
29
+ # Iterate from Counter=0 to Counter=N finding an N that makes the SHA1(X-APPLE-HC) lead with Bits leading zero bits
30
+ #
31
+ #
32
+ # We get the "Resource" from the X-Apple-HC-Challenge header and Bits from X-Apple-HC-Bits
33
+ #
34
+ # </summary>
35
+ def self.make(bits:, challenge:)
36
+ version = 1
37
+ date = Time.now.strftime("%Y%m%d%H%M%S")
38
+
39
+ counter = 0
40
+ loop do
41
+ hc = [
42
+ version, bits, date, challenge, ":#{counter}"
43
+ ].join(":")
44
+
45
+ if Digest::SHA1.digest(hc).unpack1('B*')[0, bits.to_i].to_i == 0
46
+ return hc
47
+ end
48
+ counter += 1
49
+ end
50
+ end
51
+ end
52
+ end
@@ -61,9 +61,17 @@ module Spaceship
61
61
 
62
62
  # Send token to server to get a valid session
63
63
  r = request(:post) do |req|
64
- req.url("https://idmsa.apple.com/appleauth/auth/verify/device/#{device_id}/securitycode")
64
+ req.url("https://idmsa.apple.com/appleauth/auth/verify/phone/securitycode")
65
65
  req.headers['Content-Type'] = 'application/json'
66
- req.body = { "code" => code.to_s }.to_json
66
+ req.body = {
67
+ "phoneNumber": {
68
+ "id": device_id
69
+ },
70
+ "securityCode": {
71
+ "code" => code.to_s
72
+ },
73
+ "mode": "sms"
74
+ }.to_json
67
75
  update_request_headers(req)
68
76
  end
69
77
 
@@ -3,6 +3,7 @@ require_relative 'spaceship/base'
3
3
  require_relative 'spaceship/client'
4
4
  require_relative 'spaceship/provider'
5
5
  require_relative 'spaceship/launcher'
6
+ require_relative 'spaceship/hashcash'
6
7
 
7
8
  # Middleware
8
9
  require_relative 'spaceship/stats_middleware'
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.212.0
4
+ version: 2.212.1
5
5
  platform: ruby
6
6
  authors:
7
- - Joshua Liebowitz
8
- - Łukasz Grabowski
9
- - Max Ott
10
- - Olivier Halligon
11
- - Maksym Grebenets
12
- - Danielle Tomlinson
13
- - Fumiya Nakamura
14
- - Felix Krause
15
- - Jérôme Lacoste
16
- - Helmut Januschka
17
- - Iulian Onofrei
18
- - Jimmy Dee
19
- - Jorge Revuelta H
20
- - Luka Mirosevic
21
- - Kohki Miki
22
7
  - Roger Oba
23
8
  - Manish Rathi
24
- - Josh Holtz
25
- - Satoshi Namai
9
+ - Helmut Januschka
26
10
  - Stefan Natchev
27
- - Daniel Jankowski
28
- - Jan Piotrowski
11
+ - Joshua Liebowitz
12
+ - Kohki Miki
13
+ - Jimmy Dee
14
+ - Jorge Revuelta H
29
15
  - Andrew McBurney
16
+ - Satoshi Namai
17
+ - Josh Holtz
18
+ - Fumiya Nakamura
19
+ - Danielle Tomlinson
20
+ - Łukasz Grabowski
21
+ - Luka Mirosevic
22
+ - Felix Krause
23
+ - Jérôme Lacoste
24
+ - Max Ott
30
25
  - Manu Wallner
31
26
  - Aaron Brager
27
+ - Maksym Grebenets
28
+ - Daniel Jankowski
29
+ - Olivier Halligon
30
+ - Iulian Onofrei
32
31
  - Matthew Ellis
32
+ - Jan Piotrowski
33
33
  autorequire:
34
34
  bindir: bin
35
35
  cert_chain: []
36
- date: 2023-02-19 00:00:00.000000000 Z
36
+ date: 2023-02-24 00:00:00.000000000 Z
37
37
  dependencies:
38
38
  - !ruby/object:Gem::Dependency
39
39
  name: xcodeproj
@@ -1395,7 +1395,6 @@ files:
1395
1395
  - fastlane_core/README.md
1396
1396
  - fastlane_core/lib/assets/XMLTemplate.xml.erb
1397
1397
  - fastlane_core/lib/fastlane_core.rb
1398
- - fastlane_core/lib/fastlane_core/.project.rb.swp
1399
1398
  - fastlane_core/lib/fastlane_core/analytics/action_completion_context.rb
1400
1399
  - fastlane_core/lib/fastlane_core/analytics/action_launch_context.rb
1401
1400
  - fastlane_core/lib/fastlane_core/analytics/analytics_event_builder.rb
@@ -1479,7 +1478,6 @@ files:
1479
1478
  - gym/lib/assets/GymfileTemplate.swift
1480
1479
  - gym/lib/assets/wrap_xcodebuild/xcbuild-safe.sh
1481
1480
  - gym/lib/gym.rb
1482
- - gym/lib/gym/.code_signing_mapping.rb.swp
1483
1481
  - gym/lib/gym/code_signing_mapping.rb
1484
1482
  - gym/lib/gym/commands_generator.rb
1485
1483
  - gym/lib/gym/detect_values.rb
@@ -1743,6 +1741,7 @@ files:
1743
1741
  - spaceship/lib/spaceship/du/utilities.rb
1744
1742
  - spaceship/lib/spaceship/errors.rb
1745
1743
  - spaceship/lib/spaceship/globals.rb
1744
+ - spaceship/lib/spaceship/hashcash.rb
1746
1745
  - spaceship/lib/spaceship/helper/net_http_generic_request.rb
1747
1746
  - spaceship/lib/spaceship/helper/plist_middleware.rb
1748
1747
  - spaceship/lib/spaceship/helper/rels_middleware.rb