fastlane 2.172.0 → 2.173.0

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: d25e374341a7acedcadc6a1861a3f047f4e6f71312d68e6b770e083cfa527e7a
4
- data.tar.gz: 01eac07e1ca532f1baf5bb23722927b87fc10d5aeb867db86d18d60eddc87f09
3
+ metadata.gz: 84a3a2b2d4fc8ec05b2b67244f2a41b643b7a3596b42eafcd76e409681d419a8
4
+ data.tar.gz: 4843a267b0adad749d4a5670decd3d875285b387bbbd0df01c286b8ee5d64f9a
5
5
  SHA512:
6
- metadata.gz: 2ccfbd1a683d17b27384030f99fb4e8db51feccdcca7bc959efb1b0455ded32efa4470b1082710388d6e6444e6c02e7c7ef1e7d8b8f0e6c88746ccb984246a70
7
- data.tar.gz: 59e9908175276ce658cf959c647a3426d55688bfa0f181f4d1c8554d1a6a7f64f36926d55b730255c3156411259f0f8a25f5e166e8d0d8652f2f6059fba1d78a
6
+ metadata.gz: b11081f274dfda7fb57b9de1940b7aeef425938b2f9811063b49306e82ddd274ac1f2c12f12ddfc6a750216438387d383da4c8a2ca504d768e9dff80c2b52bf1
7
+ data.tar.gz: 13c125644f4d2b7e2a8678c327b65aaeb9569b36acef098b6a229d79808ca472b1887ad30a917e40452725cc20386fb073417d8201d43c674420562bad7818dd
data/README.md CHANGED
@@ -34,43 +34,43 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
34
34
  <!-- This table is regenerated and resorted on each release -->
35
35
  <table id='team'>
36
36
  <tr>
37
- <td id='iulian-onofrei'>
38
- <a href='https://github.com/revolter'>
39
- <img src='https://github.com/revolter.png?size=140'>
37
+ <td id='daniel-jankowski'>
38
+ <a href='https://github.com/mollyIV'>
39
+ <img src='https://github.com/mollyIV.png?size=140'>
40
40
  </a>
41
- <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
41
+ <h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
42
42
  </td>
43
- <td id='stefan-natchev'>
44
- <a href='https://github.com/snatchev'>
45
- <img src='https://github.com/snatchev.png?size=140'>
43
+ <td id='helmut-januschka'>
44
+ <a href='https://github.com/hjanuschka'>
45
+ <img src='https://github.com/hjanuschka.png?size=140'>
46
46
  </a>
47
- <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
47
+ <h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
48
48
  </td>
49
- <td id='aaron-brager'>
50
- <a href='https://github.com/getaaron'>
51
- <img src='https://github.com/getaaron.png?size=140'>
49
+ <td id='jan-piotrowski'>
50
+ <a href='https://github.com/janpio'>
51
+ <img src='https://github.com/janpio.png?size=140'>
52
52
  </a>
53
- <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
53
+ <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
54
54
  </td>
55
- <td id='andrew-mcburney'>
56
- <a href='https://github.com/armcburney'>
57
- <img src='https://github.com/armcburney.png?size=140'>
55
+ <td id='luka-mirosevic'>
56
+ <a href='https://github.com/lmirosevic'>
57
+ <img src='https://github.com/lmirosevic.png?size=140'>
58
58
  </a>
59
- <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
59
+ <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
60
60
  </td>
61
- <td id='fumiya-nakamura'>
62
- <a href='https://github.com/nafu'>
63
- <img src='https://github.com/nafu.png?size=140'>
61
+ <td id='felix-krause'>
62
+ <a href='https://github.com/KrauseFx'>
63
+ <img src='https://github.com/KrauseFx.png?size=140'>
64
64
  </a>
65
- <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
65
+ <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
66
66
  </td>
67
67
  </tr>
68
68
  <tr>
69
- <td id='olivier-halligon'>
70
- <a href='https://github.com/AliSoftware'>
71
- <img src='https://github.com/AliSoftware.png?size=140'>
69
+ <td id='jimmy-dee'>
70
+ <a href='https://github.com/jdee'>
71
+ <img src='https://github.com/jdee.png?size=140'>
72
72
  </a>
73
- <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
73
+ <h4 align='center'>Jimmy Dee</h4>
74
74
  </td>
75
75
  <td id='kohki-miki'>
76
76
  <a href='https://github.com/giginet'>
@@ -78,101 +78,101 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
78
78
  </a>
79
79
  <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
80
80
  </td>
81
- <td id='jimmy-dee'>
82
- <a href='https://github.com/jdee'>
83
- <img src='https://github.com/jdee.png?size=140'>
81
+ <td id='joshua-liebowitz'>
82
+ <a href='https://github.com/taquitos'>
83
+ <img src='https://github.com/taquitos.png?size=140'>
84
84
  </a>
85
- <h4 align='center'>Jimmy Dee</h4>
85
+ <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
86
86
  </td>
87
- <td id='felix-krause'>
88
- <a href='https://github.com/KrauseFx'>
89
- <img src='https://github.com/KrauseFx.png?size=140'>
87
+ <td id='fumiya-nakamura'>
88
+ <a href='https://github.com/nafu'>
89
+ <img src='https://github.com/nafu.png?size=140'>
90
90
  </a>
91
- <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
91
+ <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
92
92
  </td>
93
- <td id='manu-wallner'>
94
- <a href='https://github.com/milch'>
95
- <img src='https://github.com/milch.png?size=140'>
93
+ <td id='matthew-ellis'>
94
+ <a href='https://github.com/matthewellis'>
95
+ <img src='https://github.com/matthewellis.png?size=140'>
96
96
  </a>
97
- <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
97
+ <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
98
98
  </td>
99
99
  </tr>
100
100
  <tr>
101
- <td id='jan-piotrowski'>
102
- <a href='https://github.com/janpio'>
103
- <img src='https://github.com/janpio.png?size=140'>
104
- </a>
105
- <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
106
- </td>
107
- <td id='jérôme-lacoste'>
108
- <a href='https://github.com/lacostej'>
109
- <img src='https://github.com/lacostej.png?size=140'>
110
- </a>
111
- <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
112
- </td>
113
101
  <td id='maksym-grebenets'>
114
102
  <a href='https://github.com/mgrebenets'>
115
103
  <img src='https://github.com/mgrebenets.png?size=140'>
116
104
  </a>
117
105
  <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
118
106
  </td>
107
+ <td id='andrew-mcburney'>
108
+ <a href='https://github.com/armcburney'>
109
+ <img src='https://github.com/armcburney.png?size=140'>
110
+ </a>
111
+ <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
112
+ </td>
119
113
  <td id='max-ott'>
120
114
  <a href='https://github.com/max-ott'>
121
115
  <img src='https://github.com/max-ott.png?size=140'>
122
116
  </a>
123
117
  <h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
124
118
  </td>
125
- <td id='josh-holtz'>
126
- <a href='https://github.com/joshdholtz'>
127
- <img src='https://github.com/joshdholtz.png?size=140'>
119
+ <td id='olivier-halligon'>
120
+ <a href='https://github.com/AliSoftware'>
121
+ <img src='https://github.com/AliSoftware.png?size=140'>
128
122
  </a>
129
- <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
123
+ <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
124
+ </td>
125
+ <td id='iulian-onofrei'>
126
+ <a href='https://github.com/revolter'>
127
+ <img src='https://github.com/revolter.png?size=140'>
128
+ </a>
129
+ <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
130
130
  </td>
131
131
  </tr>
132
132
  <tr>
133
- <td id='luka-mirosevic'>
134
- <a href='https://github.com/lmirosevic'>
135
- <img src='https://github.com/lmirosevic.png?size=140'>
133
+ <td id='aaron-brager'>
134
+ <a href='https://github.com/getaaron'>
135
+ <img src='https://github.com/getaaron.png?size=140'>
136
136
  </a>
137
- <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
137
+ <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
138
138
  </td>
139
- <td id='danielle-tomlinson'>
140
- <a href='https://github.com/endocrimes'>
141
- <img src='https://github.com/endocrimes.png?size=140'>
139
+ <td id='manu-wallner'>
140
+ <a href='https://github.com/milch'>
141
+ <img src='https://github.com/milch.png?size=140'>
142
142
  </a>
143
- <h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
143
+ <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
144
144
  </td>
145
- <td id='jorge-revuelta-h'>
146
- <a href='https://github.com/minuscorp'>
147
- <img src='https://github.com/minuscorp.png?size=140'>
145
+ <td id='josh-holtz'>
146
+ <a href='https://github.com/joshdholtz'>
147
+ <img src='https://github.com/joshdholtz.png?size=140'>
148
148
  </a>
149
- <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
149
+ <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
150
150
  </td>
151
- <td id='matthew-ellis'>
152
- <a href='https://github.com/matthewellis'>
153
- <img src='https://github.com/matthewellis.png?size=140'>
151
+ <td id='danielle-tomlinson'>
152
+ <a href='https://github.com/endocrimes'>
153
+ <img src='https://github.com/endocrimes.png?size=140'>
154
154
  </a>
155
- <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
155
+ <h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
156
156
  </td>
157
- <td id='joshua-liebowitz'>
158
- <a href='https://github.com/taquitos'>
159
- <img src='https://github.com/taquitos.png?size=140'>
157
+ <td id='jérôme-lacoste'>
158
+ <a href='https://github.com/lacostej'>
159
+ <img src='https://github.com/lacostej.png?size=140'>
160
160
  </a>
161
- <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
161
+ <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
162
162
  </td>
163
163
  </tr>
164
164
  <tr>
165
- <td id='daniel-jankowski'>
166
- <a href='https://github.com/mollyIV'>
167
- <img src='https://github.com/mollyIV.png?size=140'>
165
+ <td id='stefan-natchev'>
166
+ <a href='https://github.com/snatchev'>
167
+ <img src='https://github.com/snatchev.png?size=140'>
168
168
  </a>
169
- <h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
169
+ <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
170
170
  </td>
171
- <td id='helmut-januschka'>
172
- <a href='https://github.com/hjanuschka'>
173
- <img src='https://github.com/hjanuschka.png?size=140'>
171
+ <td id='jorge-revuelta-h'>
172
+ <a href='https://github.com/minuscorp'>
173
+ <img src='https://github.com/minuscorp.png?size=140'>
174
174
  </a>
175
- <h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
175
+ <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
176
176
  </td>
177
177
  </table>
178
178
 
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
- VERSION = '2.172.0'.freeze
2
+ VERSION = '2.173.0'.freeze
3
3
  DESCRIPTION = "The easiest way to automate beta deployments and releases for your iOS and Android apps".freeze
4
4
  MINIMUM_XCODE_RELEASE = "7.0".freeze
5
5
  RUBOCOP_REQUIREMENT = '0.49.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.172.0
20
+ // Generated with fastlane 2.173.0
@@ -256,4 +256,4 @@ public extension DeliverfileProtocol {
256
256
 
257
257
  // Please don't remove the lines below
258
258
  // They are used to detect outdated files
259
- // FastlaneRunnerAPIVersion [0.9.55]
259
+ // FastlaneRunnerAPIVersion [0.9.56]
@@ -9630,4 +9630,4 @@ public let snapshotfile = Snapshotfile()
9630
9630
 
9631
9631
  // Please don't remove the lines below
9632
9632
  // They are used to detect outdated files
9633
- // FastlaneRunnerAPIVersion [0.9.108]
9633
+ // FastlaneRunnerAPIVersion [0.9.109]
@@ -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.172.0
20
+ // Generated with fastlane 2.173.0
@@ -196,4 +196,4 @@ public extension GymfileProtocol {
196
196
 
197
197
  // Please don't remove the lines below
198
198
  // They are used to detect outdated files
199
- // FastlaneRunnerAPIVersion [0.9.58]
199
+ // FastlaneRunnerAPIVersion [0.9.59]
@@ -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.172.0
20
+ // Generated with fastlane 2.173.0
@@ -184,4 +184,4 @@ public extension MatchfileProtocol {
184
184
 
185
185
  // Please don't remove the lines below
186
186
  // They are used to detect outdated files
187
- // FastlaneRunnerAPIVersion [0.9.52]
187
+ // FastlaneRunnerAPIVersion [0.9.53]
@@ -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.172.0
20
+ // Generated with fastlane 2.173.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.51]
55
+ // FastlaneRunnerAPIVersion [0.9.52]
@@ -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.172.0
20
+ // Generated with fastlane 2.173.0
@@ -280,4 +280,4 @@ public extension ScanfileProtocol {
280
280
 
281
281
  // Please don't remove the lines below
282
282
  // They are used to detect outdated files
283
- // FastlaneRunnerAPIVersion [0.9.63]
283
+ // FastlaneRunnerAPIVersion [0.9.64]
@@ -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.172.0
20
+ // Generated with fastlane 2.173.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.53]
99
+ // FastlaneRunnerAPIVersion [0.9.54]
@@ -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.172.0
20
+ // Generated with fastlane 2.173.0
@@ -196,4 +196,4 @@ public extension SnapshotfileProtocol {
196
196
 
197
197
  // Please don't remove the lines below
198
198
  // They are used to detect outdated files
199
- // FastlaneRunnerAPIVersion [0.9.47]
199
+ // FastlaneRunnerAPIVersion [0.9.48]
@@ -275,7 +275,7 @@ module FastlaneCore
275
275
  end
276
276
 
277
277
  def supports_mac_catalyst?
278
- build_settings(key: "SUPPORTS_MACCATALYST") == "YES"
278
+ build_settings(key: "SUPPORTS_MACCATALYST") == "YES" || build_settings(key: "SUPPORTS_UIKITFORMAC") == "YES"
279
279
  end
280
280
 
281
281
  def command_line_tool?
@@ -127,6 +127,14 @@ module Gym
127
127
  UI.build_failure!("Archive invalid")
128
128
  end
129
129
 
130
+ def handle_empty_ipa
131
+ UI.build_failure!("IPA invalid")
132
+ end
133
+
134
+ def handle_empty_pkg
135
+ UI.build_failure!("PKG invalid")
136
+ end
137
+
130
138
  private
131
139
 
132
140
  # Just to make things easier
@@ -75,7 +75,7 @@ module Gym
75
75
  Gym.cache[:ipa_path] = File.join(temporary_output_path, "#{Gym.config[:output_name]}.ipa")
76
76
  FileUtils.cp(path, Gym.cache[:ipa_path]) unless File.expand_path(path).casecmp?(File.expand_path(Gym.cache[:ipa_path]).downcase)
77
77
  else
78
- ErrorHandler.handle_empty_archive unless path
78
+ ErrorHandler.handle_empty_ipa unless path
79
79
  end
80
80
 
81
81
  Gym.cache[:ipa_path]
@@ -99,7 +99,7 @@ module Gym
99
99
  Gym.cache[:pkg_path] = File.join(temporary_output_path, "#{Gym.config[:output_name]}.pkg")
100
100
  FileUtils.cp(path, Gym.cache[:pkg_path]) unless File.expand_path(path).casecmp(File.expand_path(Gym.cache[:pkg_path]).downcase).zero?
101
101
  else
102
- ErrorHandler.handle_empty_archive unless path
102
+ ErrorHandler.handle_empty_pkg unless path
103
103
  end
104
104
 
105
105
  Gym.cache[:pkg_path]
@@ -403,6 +403,7 @@ module Spaceship
403
403
  # This will also handle 2 step verification and 2 factor authentication
404
404
  #
405
405
  # It is called in `send_login_request` of sub classes (which the method `login`, above, transferred over to via `do_login`)
406
+ # rubocop:disable Metrics/PerceivedComplexity
406
407
  def send_shared_login_request(user, password)
407
408
  # Check if we have a cached/valid session
408
409
  #
@@ -506,9 +507,19 @@ module Spaceship
506
507
  # User Credentials are wrong
507
508
  raise InvalidUserCredentialsError.new, "Invalid username and password combination. Used '#{user}' as the username."
508
509
  elsif response.status == 412 && AUTH_TYPES.include?(response.body["authType"])
510
+
511
+ if try_upgrade_2fa_later(response)
512
+ store_cookie
513
+ fetch_olympus_session
514
+ return true
515
+ end
516
+
509
517
  # Need to acknowledge Apple ID and Privacy statement - https://github.com/fastlane/fastlane/issues/12577
510
518
  # Looking for status of 412 might be enough but might be safer to keep looking only at what is being reported
511
- raise AppleIDAndPrivacyAcknowledgementNeeded.new, "Need to acknowledge to Apple's Apple ID and Privacy statement. Please manually log into https://appleid.apple.com (or https://appstoreconnect.apple.com) to acknowledge the statement."
519
+ raise AppleIDAndPrivacyAcknowledgementNeeded.new, "Need to acknowledge to Apple's Apple ID and Privacy statement. " \
520
+ "Please manually log into https://appleid.apple.com (or https://appstoreconnect.apple.com) to acknowledge the statement. " \
521
+ "Your account might also be asked to upgrade to 2FA. " \
522
+ "Set SPACESHIP_SKIP_2FA_UPGRADE=1 for fastlane to automaticaly bypass 2FA upgrade if possible."
512
523
  elsif (response['Set-Cookie'] || "").include?("itctx")
513
524
  raise "Looks like your Apple ID is not enabled for App Store Connect, make sure to be able to login online"
514
525
  else
@@ -517,6 +528,7 @@ module Spaceship
517
528
  end
518
529
  end
519
530
  end
531
+ # rubocop:enable Metrics/PerceivedComplexity
520
532
 
521
533
  # Get the `itctx` from the new (22nd May 2017) API endpoint "olympus"
522
534
  # Update (29th March 2019) olympus migrates to new appstoreconnect API
@@ -925,3 +937,4 @@ module Spaceship
925
937
  end
926
938
 
927
939
  require 'spaceship/two_step_or_factor_client'
940
+ require 'spaceship/upgrade_2fa_later_client'
@@ -0,0 +1,91 @@
1
+ require_relative 'globals'
2
+ require_relative 'tunes/tunes_client'
3
+
4
+ module Spaceship
5
+ class Client
6
+ def try_upgrade_2fa_later(response)
7
+ if ENV['SPACESHIP_SKIP_2FA_UPGRADE'].nil?
8
+ return false
9
+ end
10
+
11
+ puts("This account is being prompted to upgrade to 2FA")
12
+ puts("Attempting to automatically bypass the upgrade until a later date")
13
+ puts("To disable this, remove SPACESHIP_SKIP_2FA_UPGRADE=1 environment variable")
14
+
15
+ # Get URL that requests a repair and gets the widget key
16
+ widget_key_location = response.headers['location']
17
+ uri = URI.parse(widget_key_location)
18
+ params = CGI.parse(uri.query)
19
+
20
+ widget_key = params.dig('widgetKey', 0)
21
+ if widget_key.nil?
22
+ STDERR.puts("Couldn't find widgetKey to continue with requests")
23
+ return false
24
+ end
25
+
26
+ # Step 1 - Request repair
27
+ response_repair = request(:get) do |req|
28
+ req.url(widget_key_location)
29
+ end
30
+
31
+ # Step 2 - Request repair options
32
+ response_repair_options = request(:get) do |req|
33
+ req.url("https://appleid.apple.com/account/manage/repair/options")
34
+
35
+ req.headers['scnt'] = response_repair.headers['scnt']
36
+ req.headers['X-Apple-Id-Session-Id'] = response.headers['X-Apple-Id-Session-Id']
37
+ req.headers['X-Apple-Session-Token'] = response.headers['X-Apple-Repair-Session-Token']
38
+
39
+ req.headers['X-Apple-Skip-Repair-Attributes'] = '[]'
40
+ req.headers['X-Apple-Widget-Key'] = widget_key
41
+
42
+ req.headers['Content-Type'] = 'application/json'
43
+ req.headers['X-Requested-With'] = 'XMLHttpRequest'
44
+ req.headers['Accept'] = 'application/json, text/javascript'
45
+ end
46
+
47
+ # Step 3 - Request setup later
48
+ request(:get) do |req|
49
+ req.url("https://appleid.apple.com/account/security/upgrade/setuplater")
50
+
51
+ req.headers['scnt'] = response_repair_options.headers['scnt']
52
+ req.headers['X-Apple-Id-Session-Id'] = response.headers['X-Apple-Id-Session-Id']
53
+ req.headers['X-Apple-Session-Token'] = response_repair_options.headers['x-apple-session-token']
54
+ req.headers['X-Apple-Skip-Repair-Attributes'] = '[]'
55
+ req.headers['X-Apple-Widget-Key'] = widget_key
56
+
57
+ req.headers['Content-Type'] = 'application/json'
58
+ req.headers['X-Requested-With'] = 'XMLHttpRequest'
59
+ req.headers['Accept'] = 'application/json, text/javascript'
60
+ end
61
+
62
+ # Step 4 - Post complete
63
+ response_repair_complete = request(:post) do |req|
64
+ req.url("https://idmsa.apple.com/appleauth/auth/repair/complete")
65
+
66
+ req.body = ''
67
+ req.headers['scnt'] = response.headers['scnt']
68
+ req.headers['X-Apple-Id-Session-Id'] = response.headers['X-Apple-Id-Session-Id']
69
+ req.headers['X-Apple-Repair-Session-Token'] = response_repair_options.headers['X-Apple-Session-Token']
70
+
71
+ req.headers['X-Apple-Widget-Key'] = widget_key
72
+
73
+ req.headers['Content-Type'] = 'application/json'
74
+ req.headers['X-Requested-With'] = 'XMLHttpRequest'
75
+ req.headers['Accept'] = 'application/json;charset=utf-8'
76
+ end
77
+
78
+ if response_repair_complete.status == 204
79
+ return true
80
+ else
81
+ STDERR.puts("Failed with status code of #{response_repair_complete.status}")
82
+ return false
83
+ end
84
+ rescue => error
85
+ STDERR.puts(error.backtrace)
86
+ STDERR.puts("Failed to bypass 2FA upgrade")
87
+ STDERR.puts("To disable this from trying again, set SPACESHIP_SKIP_UPGRADE_2FA_LATER=1")
88
+ return false
89
+ end
90
+ end
91
+ end
metadata CHANGED
@@ -1,35 +1,35 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastlane
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.172.0
4
+ version: 2.173.0
5
5
  platform: ruby
6
6
  authors:
7
- - Andrew McBurney
8
- - Olivier Halligon
9
- - Felix Krause
10
- - Daniel Jankowski
11
- - Danielle Tomlinson
12
- - Jimmy Dee
13
- - Max Ott
14
- - Stefan Natchev
15
- - Maksym Grebenets
16
- - Jérôme Lacoste
7
+ - Aaron Brager
8
+ - Matthew Ellis
17
9
  - Jan Piotrowski
10
+ - Maksym Grebenets
11
+ - Fumiya Nakamura
18
12
  - Jorge Revuelta H
19
- - Kohki Miki
20
- - Aaron Brager
13
+ - Jérôme Lacoste
14
+ - Max Ott
15
+ - Manu Wallner
21
16
  - Luka Mirosevic
22
- - Josh Holtz
23
- - Iulian Onofrei
17
+ - Daniel Jankowski
24
18
  - Helmut Januschka
19
+ - Josh Holtz
25
20
  - Joshua Liebowitz
26
- - Fumiya Nakamura
27
- - Matthew Ellis
28
- - Manu Wallner
21
+ - Stefan Natchev
22
+ - Jimmy Dee
23
+ - Iulian Onofrei
24
+ - Andrew McBurney
25
+ - Olivier Halligon
26
+ - Kohki Miki
27
+ - Felix Krause
28
+ - Danielle Tomlinson
29
29
  autorequire:
30
30
  bindir: bin
31
31
  cert_chain: []
32
- date: 2021-01-21 00:00:00.000000000 Z
32
+ date: 2021-02-04 00:00:00.000000000 Z
33
33
  dependencies:
34
34
  - !ruby/object:Gem::Dependency
35
35
  name: slack-notifier
@@ -999,7 +999,6 @@ files:
999
999
  - fastlane/lib/fastlane/action.rb
1000
1000
  - fastlane/lib/fastlane/action_collector.rb
1001
1001
  - fastlane/lib/fastlane/actions/.git_commit.rb.swp
1002
- - fastlane/lib/fastlane/actions/.update_fastlane.rb.swp
1003
1002
  - fastlane/lib/fastlane/actions/README.md
1004
1003
  - fastlane/lib/fastlane/actions/actions_helper.rb
1005
1004
  - fastlane/lib/fastlane/actions/adb.rb
@@ -1804,6 +1803,7 @@ files:
1804
1803
  - spaceship/lib/spaceship/tunes/version_set.rb
1805
1804
  - spaceship/lib/spaceship/two_step_or_factor_client.rb
1806
1805
  - spaceship/lib/spaceship/ui.rb
1806
+ - spaceship/lib/spaceship/upgrade_2fa_later_client.rb
1807
1807
  - supply/README.md
1808
1808
  - supply/lib/supply.rb
1809
1809
  - supply/lib/supply/apk_listing.rb