fastlane 2.212.0 → 2.212.1

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: 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