fastlane 2.173.0 → 2.174.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +84 -84
- data/fastlane/lib/fastlane/actions/app_store_connect_api_key.rb +1 -0
- data/fastlane/lib/fastlane/actions/appetize.rb +13 -1
- data/fastlane/lib/fastlane/actions/build_and_upload_to_appetize.rb +10 -2
- data/fastlane/lib/fastlane/actions/carthage.rb +22 -0
- data/fastlane/lib/fastlane/actions/cocoapods.rb +15 -1
- data/fastlane/lib/fastlane/actions/push_to_git_remote.rb +1 -1
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/fastlane/swift/Actions.swift +1 -1
- data/fastlane/swift/Appfile.swift +1 -1
- data/fastlane/swift/ArgumentProcessor.swift +1 -1
- data/fastlane/swift/ControlCommand.swift +1 -1
- data/fastlane/swift/Deliverfile.swift +1 -1
- data/fastlane/swift/DeliverfileProtocol.swift +1 -1
- data/fastlane/swift/Fastlane.swift +21 -6
- data/fastlane/swift/Gymfile.swift +1 -1
- data/fastlane/swift/GymfileProtocol.swift +1 -1
- data/fastlane/swift/LaneFileProtocol.swift +1 -1
- data/fastlane/swift/MainProcess.swift +1 -1
- data/fastlane/swift/Matchfile.swift +1 -1
- data/fastlane/swift/MatchfileProtocol.swift +1 -1
- data/fastlane/swift/Plugins.swift +1 -1
- data/fastlane/swift/Precheckfile.swift +1 -1
- data/fastlane/swift/PrecheckfileProtocol.swift +1 -1
- data/fastlane/swift/RubyCommand.swift +1 -1
- data/fastlane/swift/RubyCommandable.swift +1 -1
- data/fastlane/swift/Runner.swift +2 -2
- data/fastlane/swift/RunnerArgument.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/SocketClient.swift +1 -1
- data/fastlane/swift/SocketClientDelegateProtocol.swift +1 -1
- data/fastlane/swift/SocketResponse.swift +1 -1
- data/fastlane/swift/formatting/Brewfile.lock.json +18 -14
- data/fastlane/swift/main.swift +1 -1
- data/fastlane_core/lib/fastlane_core/configuration/configuration.rb +7 -1
- data/fastlane_core/lib/fastlane_core/project.rb +22 -8
- data/spaceship/lib/spaceship/connect_api/api_client.rb +16 -1
- data/spaceship/lib/spaceship/connect_api/models/bundle_id.rb +24 -0
- data/spaceship/lib/spaceship/connect_api/models/bundle_id_capability.rb +26 -4
- data/spaceship/lib/spaceship/connect_api/provisioning/provisioning.rb +53 -0
- data/spaceship/lib/spaceship/two_step_or_factor_client.rb +1 -1
- metadata +18 -18
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4661f027a61fae05c35c80827aedd5435cbf631579a1232061edd76bb9c8df61
|
4
|
+
data.tar.gz: 88f4f9a19d0136ba3acb5cc2dffe65308bb6437eefc56ae39692b78590a385f1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 84f565e3caea07cb1dbad2c4dbe47dec93414cc5fb104b989087ad79744fb3c41b8d31e369b39698dc89aa2688b74fc1ddf6617a115de6e4f5381b11ac7d410b
|
7
|
+
data.tar.gz: 693492a716a243e76e4a4a02452a4cfc83b0ee9d09092d7b8442151ab2b2370eabddbadddcd92d7e6b11a733f0bd7fe92f2bbfd7077c109abb1ff42602fe661d
|
data/README.md
CHANGED
@@ -34,55 +34,49 @@ 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='
|
38
|
-
<a href='https://github.com/
|
39
|
-
<img src='https://github.com/
|
37
|
+
<td id='aaron-brager'>
|
38
|
+
<a href='https://github.com/getaaron'>
|
39
|
+
<img src='https://github.com/getaaron.png?size=140'>
|
40
40
|
</a>
|
41
|
-
<h4 align='center'><a href='https://twitter.com/
|
41
|
+
<h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
|
42
42
|
</td>
|
43
|
-
<td id='
|
44
|
-
<a href='https://github.com/
|
45
|
-
<img src='https://github.com/
|
43
|
+
<td id='jérôme-lacoste'>
|
44
|
+
<a href='https://github.com/lacostej'>
|
45
|
+
<img src='https://github.com/lacostej.png?size=140'>
|
46
46
|
</a>
|
47
|
-
<h4 align='center'><a href='https://twitter.com/
|
47
|
+
<h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
|
48
48
|
</td>
|
49
|
-
<td id='
|
50
|
-
<a href='https://github.com/
|
51
|
-
<img src='https://github.com/
|
49
|
+
<td id='danielle-tomlinson'>
|
50
|
+
<a href='https://github.com/endocrimes'>
|
51
|
+
<img src='https://github.com/endocrimes.png?size=140'>
|
52
52
|
</a>
|
53
|
-
<h4 align='center'><a href='https://twitter.com/
|
53
|
+
<h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
|
54
54
|
</td>
|
55
|
-
<td id='
|
56
|
-
<a href='https://github.com/
|
57
|
-
<img src='https://github.com/
|
55
|
+
<td id='iulian-onofrei'>
|
56
|
+
<a href='https://github.com/revolter'>
|
57
|
+
<img src='https://github.com/revolter.png?size=140'>
|
58
58
|
</a>
|
59
|
-
<h4 align='center'><a href='https://twitter.com/
|
59
|
+
<h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
|
60
60
|
</td>
|
61
|
-
<td id='
|
62
|
-
<a href='https://github.com/
|
63
|
-
<img src='https://github.com/
|
61
|
+
<td id='olivier-halligon'>
|
62
|
+
<a href='https://github.com/AliSoftware'>
|
63
|
+
<img src='https://github.com/AliSoftware.png?size=140'>
|
64
64
|
</a>
|
65
|
-
<h4 align='center'><a href='https://twitter.com/
|
65
|
+
<h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
|
66
66
|
</td>
|
67
67
|
</tr>
|
68
68
|
<tr>
|
69
|
-
<td id='
|
70
|
-
<a href='https://github.com/
|
71
|
-
<img src='https://github.com/
|
72
|
-
</a>
|
73
|
-
<h4 align='center'>Jimmy Dee</h4>
|
74
|
-
</td>
|
75
|
-
<td id='kohki-miki'>
|
76
|
-
<a href='https://github.com/giginet'>
|
77
|
-
<img src='https://github.com/giginet.png?size=140'>
|
69
|
+
<td id='luka-mirosevic'>
|
70
|
+
<a href='https://github.com/lmirosevic'>
|
71
|
+
<img src='https://github.com/lmirosevic.png?size=140'>
|
78
72
|
</a>
|
79
|
-
<h4 align='center'><a href='https://twitter.com/
|
73
|
+
<h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
|
80
74
|
</td>
|
81
|
-
<td id='
|
82
|
-
<a href='https://github.com/
|
83
|
-
<img src='https://github.com/
|
75
|
+
<td id='max-ott'>
|
76
|
+
<a href='https://github.com/max-ott'>
|
77
|
+
<img src='https://github.com/max-ott.png?size=140'>
|
84
78
|
</a>
|
85
|
-
<h4 align='center'><a href='https://twitter.com/
|
79
|
+
<h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
|
86
80
|
</td>
|
87
81
|
<td id='fumiya-nakamura'>
|
88
82
|
<a href='https://github.com/nafu'>
|
@@ -90,51 +84,63 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
90
84
|
</a>
|
91
85
|
<h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
|
92
86
|
</td>
|
93
|
-
<td id='matthew-ellis'>
|
94
|
-
<a href='https://github.com/matthewellis'>
|
95
|
-
<img src='https://github.com/matthewellis.png?size=140'>
|
96
|
-
</a>
|
97
|
-
<h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
|
98
|
-
</td>
|
99
|
-
</tr>
|
100
|
-
<tr>
|
101
87
|
<td id='maksym-grebenets'>
|
102
88
|
<a href='https://github.com/mgrebenets'>
|
103
89
|
<img src='https://github.com/mgrebenets.png?size=140'>
|
104
90
|
</a>
|
105
91
|
<h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
|
106
92
|
</td>
|
107
|
-
<td id='
|
108
|
-
<a href='https://github.com/
|
109
|
-
<img src='https://github.com/
|
93
|
+
<td id='stefan-natchev'>
|
94
|
+
<a href='https://github.com/snatchev'>
|
95
|
+
<img src='https://github.com/snatchev.png?size=140'>
|
110
96
|
</a>
|
111
|
-
<h4 align='center'><a href='https://twitter.com/
|
97
|
+
<h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
|
112
98
|
</td>
|
113
|
-
|
114
|
-
<
|
115
|
-
<
|
99
|
+
</tr>
|
100
|
+
<tr>
|
101
|
+
<td id='felix-krause'>
|
102
|
+
<a href='https://github.com/KrauseFx'>
|
103
|
+
<img src='https://github.com/KrauseFx.png?size=140'>
|
116
104
|
</a>
|
117
|
-
<h4 align='center'><a href='https://twitter.com/
|
105
|
+
<h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
|
118
106
|
</td>
|
119
|
-
<td id='
|
120
|
-
<a href='https://github.com/
|
121
|
-
<img src='https://github.com/
|
107
|
+
<td id='jimmy-dee'>
|
108
|
+
<a href='https://github.com/jdee'>
|
109
|
+
<img src='https://github.com/jdee.png?size=140'>
|
122
110
|
</a>
|
123
|
-
<h4 align='center'
|
111
|
+
<h4 align='center'>Jimmy Dee</h4>
|
124
112
|
</td>
|
125
|
-
<td id='
|
126
|
-
<a href='https://github.com/
|
127
|
-
<img src='https://github.com/
|
113
|
+
<td id='daniel-jankowski'>
|
114
|
+
<a href='https://github.com/mollyIV'>
|
115
|
+
<img src='https://github.com/mollyIV.png?size=140'>
|
128
116
|
</a>
|
129
|
-
<h4 align='center'><a href='https://twitter.com/
|
117
|
+
<h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
|
118
|
+
</td>
|
119
|
+
<td id='josh-holtz'>
|
120
|
+
<a href='https://github.com/joshdholtz'>
|
121
|
+
<img src='https://github.com/joshdholtz.png?size=140'>
|
122
|
+
</a>
|
123
|
+
<h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
|
124
|
+
</td>
|
125
|
+
<td id='jan-piotrowski'>
|
126
|
+
<a href='https://github.com/janpio'>
|
127
|
+
<img src='https://github.com/janpio.png?size=140'>
|
128
|
+
</a>
|
129
|
+
<h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
|
130
130
|
</td>
|
131
131
|
</tr>
|
132
132
|
<tr>
|
133
|
-
<td id='
|
134
|
-
<a href='https://github.com/
|
135
|
-
<img src='https://github.com/
|
133
|
+
<td id='jorge-revuelta-h'>
|
134
|
+
<a href='https://github.com/minuscorp'>
|
135
|
+
<img src='https://github.com/minuscorp.png?size=140'>
|
136
136
|
</a>
|
137
|
-
<h4 align='center'><a href='https://twitter.com/
|
137
|
+
<h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
|
138
|
+
</td>
|
139
|
+
<td id='andrew-mcburney'>
|
140
|
+
<a href='https://github.com/armcburney'>
|
141
|
+
<img src='https://github.com/armcburney.png?size=140'>
|
142
|
+
</a>
|
143
|
+
<h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
|
138
144
|
</td>
|
139
145
|
<td id='manu-wallner'>
|
140
146
|
<a href='https://github.com/milch'>
|
@@ -142,37 +148,31 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
142
148
|
</a>
|
143
149
|
<h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
|
144
150
|
</td>
|
145
|
-
<td id='
|
146
|
-
<a href='https://github.com/
|
147
|
-
<img src='https://github.com/
|
148
|
-
</a>
|
149
|
-
<h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
|
150
|
-
</td>
|
151
|
-
<td id='danielle-tomlinson'>
|
152
|
-
<a href='https://github.com/endocrimes'>
|
153
|
-
<img src='https://github.com/endocrimes.png?size=140'>
|
151
|
+
<td id='kohki-miki'>
|
152
|
+
<a href='https://github.com/giginet'>
|
153
|
+
<img src='https://github.com/giginet.png?size=140'>
|
154
154
|
</a>
|
155
|
-
<h4 align='center'><a href='https://twitter.com/
|
155
|
+
<h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
|
156
156
|
</td>
|
157
|
-
<td id='
|
158
|
-
<a href='https://github.com/
|
159
|
-
<img src='https://github.com/
|
157
|
+
<td id='helmut-januschka'>
|
158
|
+
<a href='https://github.com/hjanuschka'>
|
159
|
+
<img src='https://github.com/hjanuschka.png?size=140'>
|
160
160
|
</a>
|
161
|
-
<h4 align='center'><a href='https://twitter.com/
|
161
|
+
<h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
|
162
162
|
</td>
|
163
163
|
</tr>
|
164
164
|
<tr>
|
165
|
-
<td id='
|
166
|
-
<a href='https://github.com/
|
167
|
-
<img src='https://github.com/
|
165
|
+
<td id='matthew-ellis'>
|
166
|
+
<a href='https://github.com/matthewellis'>
|
167
|
+
<img src='https://github.com/matthewellis.png?size=140'>
|
168
168
|
</a>
|
169
|
-
<h4 align='center'><a href='https://twitter.com/
|
169
|
+
<h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
|
170
170
|
</td>
|
171
|
-
<td id='
|
172
|
-
<a href='https://github.com/
|
173
|
-
<img src='https://github.com/
|
171
|
+
<td id='joshua-liebowitz'>
|
172
|
+
<a href='https://github.com/taquitos'>
|
173
|
+
<img src='https://github.com/taquitos.png?size=140'>
|
174
174
|
</a>
|
175
|
-
<h4 align='center'><a href='https://twitter.com/
|
175
|
+
<h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
|
176
176
|
</td>
|
177
177
|
</table>
|
178
178
|
|
@@ -75,6 +75,7 @@ module Fastlane
|
|
75
75
|
env_name: "APP_STORE_CONNECT_API_KEY_DURATION",
|
76
76
|
description: "The token session duration",
|
77
77
|
optional: true,
|
78
|
+
default_value: Spaceship::ConnectAPI::Token::MAX_TOKEN_DURATION,
|
78
79
|
type: Integer),
|
79
80
|
FastlaneCore::ConfigItem.new(key: :in_house,
|
80
81
|
env_name: "APP_STORE_CONNECT_API_KEY_IN_HOUSE",
|
@@ -31,6 +31,10 @@ module Fastlane
|
|
31
31
|
|
32
32
|
params[:note] = options[:note] if options[:note].to_s.length > 0
|
33
33
|
|
34
|
+
if options[:timeout]
|
35
|
+
params[:timeout] = options[:timeout]
|
36
|
+
end
|
37
|
+
|
34
38
|
uri = URI.parse(appetize_url(options))
|
35
39
|
req = create_request(uri, params)
|
36
40
|
req.basic_auth(options[:api_token], nil)
|
@@ -147,7 +151,15 @@ module Fastlane
|
|
147
151
|
env_name: "APPETIZE_NOTE",
|
148
152
|
description: "Notes you wish to add to the uploaded app",
|
149
153
|
is_string: true,
|
150
|
-
optional: true)
|
154
|
+
optional: true),
|
155
|
+
FastlaneCore::ConfigItem.new(key: :timeout,
|
156
|
+
env_name: "APPETIZE_TIMEOUT",
|
157
|
+
description: "The number of seconds to wait until automatically ending the session due to user inactivity. Must be 30, 60, 90, 120, 180, 300, 600, 1800, 3600 or 7200. Default is 120",
|
158
|
+
type: Integer,
|
159
|
+
optional: true,
|
160
|
+
verify_block: proc do |value|
|
161
|
+
UI.user_error!("The value provided doesn't match any of the supported options.") unless [30, 60, 90, 120, 180, 300, 600, 1800, 3600, 7200].include?(value)
|
162
|
+
end)
|
151
163
|
]
|
152
164
|
end
|
153
165
|
|
@@ -21,7 +21,8 @@ module Fastlane
|
|
21
21
|
other_action.appetize(path: zipped_bundle,
|
22
22
|
api_token: params[:api_token],
|
23
23
|
public_key: params[:public_key],
|
24
|
-
note: params[:note]
|
24
|
+
note: params[:note],
|
25
|
+
timeout: params[:timeout])
|
25
26
|
|
26
27
|
public_key = Actions.lane_context[SharedValues::APPETIZE_PUBLIC_KEY]
|
27
28
|
UI.success("Generated Public Key: #{Actions.lane_context[SharedValues::APPETIZE_PUBLIC_KEY]}")
|
@@ -76,7 +77,14 @@ module Fastlane
|
|
76
77
|
FastlaneCore::ConfigItem.new(key: :note,
|
77
78
|
description: "Notes you wish to add to the uploaded app",
|
78
79
|
is_string: true,
|
79
|
-
optional: true)
|
80
|
+
optional: true),
|
81
|
+
FastlaneCore::ConfigItem.new(key: :timeout,
|
82
|
+
description: "The number of seconds to wait until automatically ending the session due to user inactivity. Must be 30, 60, 90, 120, 180, 300, 600, 1800, 3600 or 7200. Default is 120",
|
83
|
+
type: Integer,
|
84
|
+
optional: true,
|
85
|
+
verify_block: proc do |value|
|
86
|
+
UI.user_error!("The value provided doesn't match any of the supported options.") unless [30, 60, 90, 120, 180, 300, 600, 1800, 3600, 7200].include?(value)
|
87
|
+
end)
|
80
88
|
]
|
81
89
|
end
|
82
90
|
|
@@ -33,6 +33,8 @@ module Fastlane
|
|
33
33
|
cmd << "--cache-builds" if params[:cache_builds]
|
34
34
|
cmd << "--new-resolver" if params[:new_resolver]
|
35
35
|
cmd << "--log-path #{params[:log_path]}" if params[:log_path]
|
36
|
+
cmd << "--use-xcframeworks" if params[:use_xcframeworks]
|
37
|
+
cmd << "--archive" if params[:archive]
|
36
38
|
|
37
39
|
Actions.sh(cmd.join(' '))
|
38
40
|
end
|
@@ -50,6 +52,14 @@ module Fastlane
|
|
50
52
|
if params[:log_path] && !%w(build bootstrap update).include?(command_name)
|
51
53
|
UI.user_error!("Log path option is available only for 'build', 'bootstrap', and 'update' command.")
|
52
54
|
end
|
55
|
+
|
56
|
+
if params[:use_xcframeworks] && !%w(build bootstrap update).include?(command_name)
|
57
|
+
UI.user_error!("Use XCFrameworks option is available only for 'build', 'bootstrap', and 'update' command.")
|
58
|
+
end
|
59
|
+
|
60
|
+
if command_name != "build" && params[:archive]
|
61
|
+
UI.user_error!("Archive option is available only for 'build' command.")
|
62
|
+
end
|
53
63
|
end
|
54
64
|
|
55
65
|
def self.description
|
@@ -183,6 +193,18 @@ module Fastlane
|
|
183
193
|
env_name: "FL_CARTHAGE_LOG_PATH",
|
184
194
|
description: "Path to the xcode build output",
|
185
195
|
optional: true),
|
196
|
+
FastlaneCore::ConfigItem.new(key: :use_xcframeworks,
|
197
|
+
env_name: "FL_CARTHAGE_USE_XCFRAMEWORKS",
|
198
|
+
description: "Create xcframework bundles instead of one framework per platform (requires Xcode 12+)",
|
199
|
+
type: Boolean,
|
200
|
+
is_string: false,
|
201
|
+
default_value: false),
|
202
|
+
FastlaneCore::ConfigItem.new(key: :archive,
|
203
|
+
env_name: "FL_CARTHAGE_ARCHIVE",
|
204
|
+
description: "Archive built frameworks from the current project",
|
205
|
+
is_string: false,
|
206
|
+
type: Boolean,
|
207
|
+
default_value: false),
|
186
208
|
FastlaneCore::ConfigItem.new(key: :executable,
|
187
209
|
env_name: "FL_CARTHAGE_EXECUTABLE",
|
188
210
|
description: "Path to the `carthage` executable on your machine",
|
@@ -1,6 +1,7 @@
|
|
1
1
|
module Fastlane
|
2
2
|
module Actions
|
3
3
|
class CocoapodsAction < Action
|
4
|
+
# rubocop:disable Metrics/PerceivedComplexity
|
4
5
|
def self.run(params)
|
5
6
|
Actions.verify_gem!('cocoapods')
|
6
7
|
cmd = []
|
@@ -19,7 +20,8 @@ module Fastlane
|
|
19
20
|
|
20
21
|
cmd << '--no-clean' unless params[:clean]
|
21
22
|
cmd << '--no-integrate' unless params[:integrate]
|
22
|
-
cmd << '--clean-install' if params[:clean_install] &&
|
23
|
+
cmd << '--clean-install' if params[:clean_install] && pod_version_at_least("1.7", params)
|
24
|
+
cmd << '--allow-root' if params[:allow_root] && pod_version_at_least("1.10", params)
|
23
25
|
cmd << '--repo-update' if params[:repo_update]
|
24
26
|
cmd << '--silent' if params[:silent]
|
25
27
|
cmd << '--verbose' if params[:verbose]
|
@@ -46,6 +48,11 @@ module Fastlane
|
|
46
48
|
use_bundle_exec?(params) ? `bundle exec pod --version` : `pod --version`
|
47
49
|
end
|
48
50
|
|
51
|
+
def self.pod_version_at_least(at_least_version, params)
|
52
|
+
version = pod_version(params)
|
53
|
+
return Gem::Version.new(version) >= Gem::Version.new(at_least_version)
|
54
|
+
end
|
55
|
+
|
49
56
|
def self.call_error_callback(params, result)
|
50
57
|
if params[:error_callback]
|
51
58
|
Dir.chdir(FastlaneCore::FastlaneFolder.path) do
|
@@ -120,6 +127,13 @@ module Fastlane
|
|
120
127
|
is_string: false,
|
121
128
|
default_value: false,
|
122
129
|
type: Boolean),
|
130
|
+
FastlaneCore::ConfigItem.new(key: :allow_root,
|
131
|
+
env_name: "FL_COCOAPODS_ALLOW_ROOT",
|
132
|
+
description: 'Allows CocoaPods to run as root',
|
133
|
+
optional: true,
|
134
|
+
is_string: false,
|
135
|
+
default_value: false,
|
136
|
+
type: Boolean),
|
123
137
|
|
124
138
|
# Deprecated
|
125
139
|
FastlaneCore::ConfigItem.new(key: :clean,
|
@@ -33,7 +33,7 @@ module Fastlane
|
|
33
33
|
command << '--set-upstream' if params[:set_upstream]
|
34
34
|
|
35
35
|
# optionally add the --push_options components
|
36
|
-
params[:push_options].each { |push_option| command << "--push-option=#{push_option}" }
|
36
|
+
params[:push_options].each { |push_option| command << "--push-option=#{push_option}" } if params[:push_options]
|
37
37
|
|
38
38
|
# execute our command
|
39
39
|
Actions.sh('pwd')
|
@@ -158,7 +158,7 @@ public func appStoreConnectApiKey(keyId: String,
|
|
158
158
|
keyFilepath: String? = nil,
|
159
159
|
keyContent: String? = nil,
|
160
160
|
isKeyContentBase64: Bool = false,
|
161
|
-
duration: Int
|
161
|
+
duration: Int = 1200,
|
162
162
|
inHouse: Bool? = nil)
|
163
163
|
{
|
164
164
|
let command = RubyCommand(commandID: "", methodName: "app_store_connect_api_key", className: nil, args: [RubyCommand.Argument(name: "key_id", value: keyId),
|
@@ -219,6 +219,7 @@ public func appaloosa(binary: String,
|
|
219
219
|
- path: Path to zipped build on the local filesystem. Either this or `url` must be specified
|
220
220
|
- publicKey: If not provided, a new app will be created. If provided, the existing build will be overwritten
|
221
221
|
- note: Notes you wish to add to the uploaded app
|
222
|
+
- timeout: The number of seconds to wait until automatically ending the session due to user inactivity. Must be 30, 60, 90, 120, 180, 300, 600, 1800, 3600 or 7200. Default is 120
|
222
223
|
|
223
224
|
If you provide a `public_key`, this will overwrite an existing application. If you want to have this build as a new app version, you shouldn't provide this value.
|
224
225
|
|
@@ -230,7 +231,8 @@ public func appetize(apiHost: String = "api.appetize.io",
|
|
230
231
|
platform: String = "ios",
|
231
232
|
path: String? = nil,
|
232
233
|
publicKey: String? = nil,
|
233
|
-
note: String? = nil
|
234
|
+
note: String? = nil,
|
235
|
+
timeout: Int? = nil)
|
234
236
|
{
|
235
237
|
let command = RubyCommand(commandID: "", methodName: "appetize", className: nil, args: [RubyCommand.Argument(name: "api_host", value: apiHost),
|
236
238
|
RubyCommand.Argument(name: "api_token", value: apiToken),
|
@@ -238,7 +240,8 @@ public func appetize(apiHost: String = "api.appetize.io",
|
|
238
240
|
RubyCommand.Argument(name: "platform", value: platform),
|
239
241
|
RubyCommand.Argument(name: "path", value: path),
|
240
242
|
RubyCommand.Argument(name: "public_key", value: publicKey),
|
241
|
-
RubyCommand.Argument(name: "note", value: note)
|
243
|
+
RubyCommand.Argument(name: "note", value: note),
|
244
|
+
RubyCommand.Argument(name: "timeout", value: timeout)])
|
242
245
|
_ = runner.executeCommand(command)
|
243
246
|
}
|
244
247
|
|
@@ -874,6 +877,7 @@ public func badge(dark: Any? = nil,
|
|
874
877
|
- apiToken: Appetize.io API Token
|
875
878
|
- publicKey: If not provided, a new app will be created. If provided, the existing build will be overwritten
|
876
879
|
- note: Notes you wish to add to the uploaded app
|
880
|
+
- timeout: The number of seconds to wait until automatically ending the session due to user inactivity. Must be 30, 60, 90, 120, 180, 300, 600, 1800, 3600 or 7200. Default is 120
|
877
881
|
|
878
882
|
This should be called from danger.
|
879
883
|
More information in the [device_grid guide](https://github.com/fastlane/fastlane/blob/master/fastlane/lib/fastlane/actions/device_grid/README.md).
|
@@ -882,13 +886,15 @@ public func buildAndUploadToAppetize(xcodebuild: [String: Any] = [:],
|
|
882
886
|
scheme: String? = nil,
|
883
887
|
apiToken: String,
|
884
888
|
publicKey: String? = nil,
|
885
|
-
note: String? = nil
|
889
|
+
note: String? = nil,
|
890
|
+
timeout: Int? = nil)
|
886
891
|
{
|
887
892
|
let command = RubyCommand(commandID: "", methodName: "build_and_upload_to_appetize", className: nil, args: [RubyCommand.Argument(name: "xcodebuild", value: xcodebuild),
|
888
893
|
RubyCommand.Argument(name: "scheme", value: scheme),
|
889
894
|
RubyCommand.Argument(name: "api_token", value: apiToken),
|
890
895
|
RubyCommand.Argument(name: "public_key", value: publicKey),
|
891
|
-
RubyCommand.Argument(name: "note", value: note)
|
896
|
+
RubyCommand.Argument(name: "note", value: note),
|
897
|
+
RubyCommand.Argument(name: "timeout", value: timeout)])
|
892
898
|
_ = runner.executeCommand(command)
|
893
899
|
}
|
894
900
|
|
@@ -1850,6 +1856,8 @@ public func captureScreenshots(workspace: String? = nil,
|
|
1850
1856
|
- projectDirectory: Define the directory containing the Carthage project
|
1851
1857
|
- newResolver: Use new resolver when resolving dependency graph
|
1852
1858
|
- logPath: Path to the xcode build output
|
1859
|
+
- useXcframeworks: Create xcframework bundles instead of one framework per platform (requires Xcode 12+)
|
1860
|
+
- archive: Archive built frameworks from the current project
|
1853
1861
|
- executable: Path to the `carthage` executable on your machine
|
1854
1862
|
*/
|
1855
1863
|
public func carthage(command: String = "bootstrap",
|
@@ -1872,6 +1880,8 @@ public func carthage(command: String = "bootstrap",
|
|
1872
1880
|
projectDirectory: String? = nil,
|
1873
1881
|
newResolver: Bool? = nil,
|
1874
1882
|
logPath: String? = nil,
|
1883
|
+
useXcframeworks: Bool = false,
|
1884
|
+
archive: Bool = false,
|
1875
1885
|
executable: String = "carthage")
|
1876
1886
|
{
|
1877
1887
|
let command = RubyCommand(commandID: "", methodName: "carthage", className: nil, args: [RubyCommand.Argument(name: "command", value: command),
|
@@ -1894,6 +1904,8 @@ public func carthage(command: String = "bootstrap",
|
|
1894
1904
|
RubyCommand.Argument(name: "project_directory", value: projectDirectory),
|
1895
1905
|
RubyCommand.Argument(name: "new_resolver", value: newResolver),
|
1896
1906
|
RubyCommand.Argument(name: "log_path", value: logPath),
|
1907
|
+
RubyCommand.Argument(name: "use_xcframeworks", value: useXcframeworks),
|
1908
|
+
RubyCommand.Argument(name: "archive", value: archive),
|
1897
1909
|
RubyCommand.Argument(name: "executable", value: executable)])
|
1898
1910
|
_ = runner.executeCommand(command)
|
1899
1911
|
}
|
@@ -2192,6 +2204,7 @@ public func clubmate() {
|
|
2192
2204
|
- errorCallback: A callback invoked with the command output if there is a non-zero exit status
|
2193
2205
|
- tryRepoUpdateOnError: Retry with --repo-update if action was finished with error
|
2194
2206
|
- deployment: Disallow any changes to the Podfile or the Podfile.lock during installation
|
2207
|
+
- allowRoot: Allows CocoaPods to run as root
|
2195
2208
|
- clean: **DEPRECATED!** (Option renamed as clean_install) Remove SCM directories
|
2196
2209
|
- integrate: **DEPRECATED!** (Option removed from cocoapods) Integrate the Pods libraries into the Xcode project(s)
|
2197
2210
|
|
@@ -2207,6 +2220,7 @@ public func cocoapods(repoUpdate: Bool = false,
|
|
2207
2220
|
errorCallback: ((String) -> Void)? = nil,
|
2208
2221
|
tryRepoUpdateOnError: Bool = false,
|
2209
2222
|
deployment: Bool = false,
|
2223
|
+
allowRoot: Bool = false,
|
2210
2224
|
clean: Bool = true,
|
2211
2225
|
integrate: Bool = true)
|
2212
2226
|
{
|
@@ -2220,6 +2234,7 @@ public func cocoapods(repoUpdate: Bool = false,
|
|
2220
2234
|
RubyCommand.Argument(name: "error_callback", value: errorCallback, type: .stringClosure),
|
2221
2235
|
RubyCommand.Argument(name: "try_repo_update_on_error", value: tryRepoUpdateOnError),
|
2222
2236
|
RubyCommand.Argument(name: "deployment", value: deployment),
|
2237
|
+
RubyCommand.Argument(name: "allow_root", value: allowRoot),
|
2223
2238
|
RubyCommand.Argument(name: "clean", value: clean),
|
2224
2239
|
RubyCommand.Argument(name: "integrate", value: integrate)])
|
2225
2240
|
_ = runner.executeCommand(command)
|
@@ -9630,4 +9645,4 @@ public let snapshotfile = Snapshotfile()
|
|
9630
9645
|
|
9631
9646
|
// Please don't remove the lines below
|
9632
9647
|
// They are used to detect outdated files
|
9633
|
-
// FastlaneRunnerAPIVersion [0.9.
|
9648
|
+
// FastlaneRunnerAPIVersion [0.9.110]
|
data/fastlane/swift/Runner.swift
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
// Runner.swift
|
2
|
-
// Copyright (c)
|
2
|
+
// Copyright (c) 2021 FastlaneTools
|
3
3
|
|
4
4
|
//
|
5
5
|
// ** NOTE **
|
@@ -140,7 +140,7 @@ extension Runner {
|
|
140
140
|
dispatchGroup.leave()
|
141
141
|
}
|
142
142
|
|
143
|
-
|
143
|
+
private func testDispatchTimeoutResult(_ timeoutResult: DispatchTimeoutResult, failureMessage: String, timeToWait _: DispatchTimeInterval) -> Bool {
|
144
144
|
switch timeoutResult {
|
145
145
|
case .success:
|
146
146
|
return true
|
@@ -2,22 +2,26 @@
|
|
2
2
|
"entries": {
|
3
3
|
"brew": {
|
4
4
|
"swiftformat": {
|
5
|
-
"version": "0.
|
5
|
+
"version": "0.47.11",
|
6
6
|
"bottle": {
|
7
7
|
"cellar": ":any_skip_relocation",
|
8
8
|
"prefix": "/usr/local",
|
9
9
|
"files": {
|
10
|
+
"arm64_big_sur": {
|
11
|
+
"url": "https://homebrew.bintray.com/bottles/swiftformat-0.47.11.arm64_big_sur.bottle.tar.gz",
|
12
|
+
"sha256": "65a20f75d4a9e2837dfc60318e312893b99f2a957a7f3a9a137b326c87dc29ff"
|
13
|
+
},
|
14
|
+
"big_sur": {
|
15
|
+
"url": "https://homebrew.bintray.com/bottles/swiftformat-0.47.11.big_sur.bottle.tar.gz",
|
16
|
+
"sha256": "0b4c55f9316fbf40c9eab826536df17eb0249484772c372a962a189e0d1a7fd2"
|
17
|
+
},
|
10
18
|
"catalina": {
|
11
|
-
"url": "https://homebrew.bintray.com/bottles/swiftformat-0.
|
12
|
-
"sha256": "
|
19
|
+
"url": "https://homebrew.bintray.com/bottles/swiftformat-0.47.11.catalina.bottle.tar.gz",
|
20
|
+
"sha256": "3b7bc3e4e6f150ecdd298be109d13ef9e84a56a45c580113c7a6b151fe1615da"
|
13
21
|
},
|
14
22
|
"mojave": {
|
15
|
-
"url": "https://homebrew.bintray.com/bottles/swiftformat-0.
|
16
|
-
"sha256": "
|
17
|
-
},
|
18
|
-
"high_sierra": {
|
19
|
-
"url": "https://homebrew.bintray.com/bottles/swiftformat-0.45.6.high_sierra.bottle.tar.gz",
|
20
|
-
"sha256": "34d900217ca12736a112c31e54a5f4f7e64c1fe224f6e4ea76ad1d25b149f647"
|
23
|
+
"url": "https://homebrew.bintray.com/bottles/swiftformat-0.47.11.mojave.bottle.tar.gz",
|
24
|
+
"sha256": "24bdfac40c16c1e40bbe970eedb9450cd3099890188b8d6bdd0fe2447d54ce48"
|
21
25
|
}
|
22
26
|
}
|
23
27
|
}
|
@@ -27,12 +31,12 @@
|
|
27
31
|
"system": {
|
28
32
|
"macos": {
|
29
33
|
"catalina": {
|
30
|
-
"HOMEBREW_VERSION": "
|
34
|
+
"HOMEBREW_VERSION": "3.0.0-57-g59dd425",
|
31
35
|
"HOMEBREW_PREFIX": "/usr/local",
|
32
|
-
"Homebrew/homebrew-core": "
|
33
|
-
"CLT": "11.0.
|
34
|
-
"Xcode": "
|
35
|
-
"macOS": "10.15.
|
36
|
+
"Homebrew/homebrew-core": "637196b33ecd885dc057c16fc5cb652a4561f632",
|
37
|
+
"CLT": "11.0.33.12",
|
38
|
+
"Xcode": "12.2",
|
39
|
+
"macOS": "10.15.7"
|
36
40
|
},
|
37
41
|
"big_sur": {
|
38
42
|
"HOMEBREW_VERSION": "2.4.13-249-g6454504",
|
data/fastlane/swift/main.swift
CHANGED
@@ -243,11 +243,17 @@ module FastlaneCore
|
|
243
243
|
while value.nil?
|
244
244
|
UI.important("To not be asked about this value, you can specify it using '#{option.key}'") if ENV["FASTLANE_ONBOARDING_IN_PROCESS"].to_s.length == 0
|
245
245
|
value = option.sensitive ? UI.password("#{option.description}: ") : UI.input("#{option.description}: ")
|
246
|
+
|
247
|
+
# ConfigItem allows to specify a type for the item but UI.password and
|
248
|
+
# UI.input return String values. Try to convert the String input to
|
249
|
+
# the option's type before passing it along.
|
250
|
+
value = option.auto_convert_value(value)
|
251
|
+
|
246
252
|
# Also store this value to use it from now on
|
247
253
|
begin
|
248
254
|
set(key, value)
|
249
255
|
rescue => ex
|
250
|
-
|
256
|
+
UI.error(ex)
|
251
257
|
value = nil
|
252
258
|
end
|
253
259
|
end
|
@@ -1,5 +1,6 @@
|
|
1
1
|
require_relative 'helper'
|
2
2
|
require 'xcodeproj'
|
3
|
+
require_relative './configuration/configuration'
|
3
4
|
require 'fastlane_core/command_executor'
|
4
5
|
|
5
6
|
module FastlaneCore
|
@@ -67,9 +68,6 @@ module FastlaneCore
|
|
67
68
|
# Is this project a workspace?
|
68
69
|
attr_accessor :is_workspace
|
69
70
|
|
70
|
-
# The config object containing the scheme, configuration, etc.
|
71
|
-
attr_accessor :options
|
72
|
-
|
73
71
|
# Should the output of xcodebuild commands be silenced?
|
74
72
|
attr_accessor :xcodebuild_list_silent
|
75
73
|
|
@@ -77,18 +75,34 @@ module FastlaneCore
|
|
77
75
|
# Gets rid of annoying plugin info warnings.
|
78
76
|
attr_accessor :xcodebuild_suppress_stderr
|
79
77
|
|
78
|
+
# @param options [FastlaneCore::Configuration|Hash] a set of configuration to run xcodebuild to work out build settings
|
79
|
+
# @param xcodebuild_list_silent [Boolean] a flag to silent xcodebuild command's output
|
80
|
+
# @param xcodebuild_suppress_stderr [Boolean] a flag to supress output to stderr from xcodebuild
|
80
81
|
def initialize(options, xcodebuild_list_silent: false, xcodebuild_suppress_stderr: false)
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
82
|
+
@options = options
|
83
|
+
@path = File.expand_path(self.options[:workspace] || self.options[:project])
|
84
|
+
@is_workspace = (self.options[:workspace].to_s.length > 0)
|
85
|
+
@xcodebuild_list_silent = xcodebuild_list_silent
|
86
|
+
@xcodebuild_suppress_stderr = xcodebuild_suppress_stderr
|
86
87
|
|
87
88
|
if !path || !File.directory?(path)
|
88
89
|
UI.user_error!("Could not find project at path '#{path}'")
|
89
90
|
end
|
90
91
|
end
|
91
92
|
|
93
|
+
# @return [Hash] a hash object containing project, workspace, scheme, any configuration related to xcodebuild, or etc...
|
94
|
+
def options
|
95
|
+
# To keep compatibility with actions using this class from outside of `fastlane` gem; i.e. `xcov`,
|
96
|
+
# converts `options` to a plain Hash. Otherwise, it might crash when a new option's key is added
|
97
|
+
# due to `FastlaneCore::Configuration` to validate valid keys defined.
|
98
|
+
@options.kind_of?(FastlaneCore::Configuration) ? @options.values : @options
|
99
|
+
end
|
100
|
+
|
101
|
+
def options=(new_value)
|
102
|
+
UI.deprecated('Update `options` is not worth doing since it can change behavior of this object entirely. Consider re-creating FastlaneCore::Project.')
|
103
|
+
@options = new_value
|
104
|
+
end
|
105
|
+
|
92
106
|
def workspace?
|
93
107
|
self.is_workspace
|
94
108
|
end
|
@@ -247,8 +247,23 @@ module Spaceship
|
|
247
247
|
# ]
|
248
248
|
# }
|
249
249
|
|
250
|
+
# Detail is missing in this response making debugging super hard
|
251
|
+
# {"errors" =>
|
252
|
+
# [
|
253
|
+
# {
|
254
|
+
# "id"=>"80ea6cff-0043-4543-9cd1-3e26b0fce383",
|
255
|
+
# "status"=>"409",
|
256
|
+
# "code"=>"ENTITY_ERROR.RELATIONSHIP.INVALID",
|
257
|
+
# "title"=>"The provided entity includes a relationship with an invalid value",
|
258
|
+
# "source"=>{
|
259
|
+
# "pointer"=>"/data/relationships/primarySubcategoryOne"
|
260
|
+
# }
|
261
|
+
# }
|
262
|
+
# ]
|
263
|
+
# }
|
264
|
+
|
250
265
|
return response.body['errors'].map do |error|
|
251
|
-
messages = [[error['title'], error['detail']].compact.join(" - ")]
|
266
|
+
messages = [[error['title'], error['detail'], error.dig("source", "pointer")].compact.join(" - ")]
|
252
267
|
|
253
268
|
meta = error["meta"] || {}
|
254
269
|
associated_errors = meta["associatedErrors"] || {}
|
@@ -56,6 +56,30 @@ module Spaceship
|
|
56
56
|
client ||= Spaceship::ConnectAPI
|
57
57
|
return client.get_bundle_id(bundle_id_id: bundle_id_id, includes: includes).first
|
58
58
|
end
|
59
|
+
|
60
|
+
def self.create(client: nil, name: nil, platform: nil, identifier: nil, seed_id: nil)
|
61
|
+
client ||= Spaceship::ConnectAPI
|
62
|
+
resp = client.post_bundle_id(name: name, platform: platform, identifier: identifier, seed_id: seed_id)
|
63
|
+
return resp.to_models.first
|
64
|
+
end
|
65
|
+
|
66
|
+
#
|
67
|
+
# BundleIdsCapabilities
|
68
|
+
#
|
69
|
+
|
70
|
+
def get_capabilities(client: nil, includes: nil)
|
71
|
+
client ||= Spaceship::ConnectAPI
|
72
|
+
resp = client.get_bundle_id_capabilities(bundle_id_id: id, includes: includes)
|
73
|
+
return resp.to_models
|
74
|
+
end
|
75
|
+
|
76
|
+
def create_capability(capability_type, settings: [], client: nil)
|
77
|
+
raise "capability_type is required " if capability_type.nil?
|
78
|
+
|
79
|
+
client ||= Spaceship::ConnectAPI
|
80
|
+
resp = client.post_bundle_id_capability(bundle_id_id: id, capability_type: capability_type, settings: settings)
|
81
|
+
return resp.to_models.first
|
82
|
+
end
|
59
83
|
end
|
60
84
|
end
|
61
85
|
end
|
@@ -41,6 +41,21 @@ module Spaceship
|
|
41
41
|
MARZIPAN = "MARZIPAN" # Catalyst
|
42
42
|
end
|
43
43
|
|
44
|
+
module Settings
|
45
|
+
ICLOUD_VERSION = "ICLOUD_VERSION"
|
46
|
+
DATA_PROTECTION_PERMISSION_LEVEL = "DATA_PROTECTION_PERMISSION_LEVEL"
|
47
|
+
APPLE_ID_AUTH_APP_CONSENT = "APPLE_ID_AUTH_APP_CONSENT"
|
48
|
+
end
|
49
|
+
|
50
|
+
module Options
|
51
|
+
XCODE_5 = "XCODE_5"
|
52
|
+
XCODE_6 = "XCODE_6"
|
53
|
+
COMPLETE_PROTECTION = "COMPLETE_PROTECTION"
|
54
|
+
PROTECTED_UNLESS_OPEN = "PROTECTED_UNLESS_OPEN"
|
55
|
+
PROTECTED_UNTIL_FIRST_USER_AUTH = "PROTECTED_UNTIL_FIRST_USER_AUTH"
|
56
|
+
PRIMARY_APP_CONSENT = "PRIMARY_APP_CONSENT"
|
57
|
+
end
|
58
|
+
|
44
59
|
def self.type
|
45
60
|
return "bundleIdCapabilities"
|
46
61
|
end
|
@@ -59,14 +74,21 @@ module Spaceship
|
|
59
74
|
# API
|
60
75
|
#
|
61
76
|
|
62
|
-
def self.all(client: nil,
|
77
|
+
def self.all(client: nil, bundle_id_id:, limit: nil)
|
78
|
+
client ||= Spaceship::ConnectAPI
|
79
|
+
resp = client.get_bundle_id_capabilities(bundle_id_id: bundle_id_id, limit: limit).all_pages
|
80
|
+
return resp.flat_map(&:to_models)
|
81
|
+
end
|
82
|
+
|
83
|
+
def self.create(client: nil, bundle_id_id:, capability_type:, settings: [])
|
63
84
|
client ||= Spaceship::ConnectAPI
|
64
|
-
|
85
|
+
resp = client.post_bundle_id_capability(bundle_id_id: bundle_id_id, capability_type: capability_type, settings: settings)
|
86
|
+
return resp.to_models.first
|
65
87
|
end
|
66
88
|
|
67
|
-
def
|
89
|
+
def delete!(client: nil, filter: {}, includes: nil, limit: nil, sort: nil)
|
68
90
|
client ||= Spaceship::ConnectAPI
|
69
|
-
|
91
|
+
client.delete_bundle_id_capability(bundle_id_capability_id: id)
|
70
92
|
end
|
71
93
|
end
|
72
94
|
end
|
@@ -27,6 +27,59 @@ module Spaceship
|
|
27
27
|
provisioning_request_client.get("bundleIds/#{bundle_id_id}", params)
|
28
28
|
end
|
29
29
|
|
30
|
+
def post_bundle_id(name:, platform:, identifier:, seed_id:)
|
31
|
+
attributes = {
|
32
|
+
name: name,
|
33
|
+
platform: platform,
|
34
|
+
identifier: identifier,
|
35
|
+
seedId: seed_id
|
36
|
+
}
|
37
|
+
|
38
|
+
body = {
|
39
|
+
data: {
|
40
|
+
attributes: attributes,
|
41
|
+
type: "bundleIds"
|
42
|
+
}
|
43
|
+
}
|
44
|
+
|
45
|
+
provisioning_request_client.post("bundleIds", body)
|
46
|
+
end
|
47
|
+
|
48
|
+
#
|
49
|
+
# bundleIdCapability
|
50
|
+
#
|
51
|
+
|
52
|
+
def get_bundle_id_capabilities(bundle_id_id:, includes: nil, limit: nil, sort: nil)
|
53
|
+
params = provisioning_request_client.build_params(filter: nil, includes: includes, limit: limit, sort: sort)
|
54
|
+
provisioning_request_client.get("bundleIds/#{bundle_id_id}/bundleIdCapabilities", params)
|
55
|
+
end
|
56
|
+
|
57
|
+
def post_bundle_id_capability(bundle_id_id:, capability_type:, settings: [])
|
58
|
+
body = {
|
59
|
+
data: {
|
60
|
+
attributes: {
|
61
|
+
capabilityType: capability_type,
|
62
|
+
settings: settings
|
63
|
+
},
|
64
|
+
type: "bundleIdCapabilities",
|
65
|
+
relationships: {
|
66
|
+
bundleId: {
|
67
|
+
data: {
|
68
|
+
type: "bundleIds",
|
69
|
+
id: bundle_id_id
|
70
|
+
}
|
71
|
+
}
|
72
|
+
}
|
73
|
+
}
|
74
|
+
}
|
75
|
+
|
76
|
+
provisioning_request_client.post("bundleIdCapabilities", body)
|
77
|
+
end
|
78
|
+
|
79
|
+
def delete_bundle_id_capability(bundle_id_capability_id:)
|
80
|
+
provisioning_request_client.delete("bundleIdCapabilities/#{bundle_id_capability_id}")
|
81
|
+
end
|
82
|
+
|
30
83
|
#
|
31
84
|
# certificates
|
32
85
|
#
|
@@ -4,7 +4,7 @@ require_relative 'tunes/tunes_client'
|
|
4
4
|
module Spaceship
|
5
5
|
class Client
|
6
6
|
def handle_two_step_or_factor(response)
|
7
|
-
raise "2FA can only be performed in interactive mode" if ENV["FASTLANE_IS_INTERACTIVE"] == "false"
|
7
|
+
raise "2FA can only be performed in interactive mode" if ENV["SPACESHIP_ONLY_ALLOW_INTERACTIVE_2FA"] == "true" && ENV["FASTLANE_IS_INTERACTIVE"] == "false"
|
8
8
|
# extract `x-apple-id-session-id` and `scnt` from response, to be used by `update_request_headers`
|
9
9
|
@x_apple_id_session_id = response["x-apple-id-session-id"]
|
10
10
|
@scnt = response["scnt"]
|
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.
|
4
|
+
version: 2.174.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
-
|
8
|
-
-
|
9
|
-
- Jan Piotrowski
|
10
|
-
- Maksym Grebenets
|
11
|
-
- Fumiya Nakamura
|
7
|
+
- Felix Krause
|
8
|
+
- Stefan Natchev
|
12
9
|
- Jorge Revuelta H
|
10
|
+
- Matthew Ellis
|
11
|
+
- Jimmy Dee
|
12
|
+
- Andrew McBurney
|
13
13
|
- Jérôme Lacoste
|
14
|
-
-
|
15
|
-
- Manu Wallner
|
16
|
-
- Luka Mirosevic
|
17
|
-
- Daniel Jankowski
|
14
|
+
- Kohki Miki
|
18
15
|
- Helmut Januschka
|
16
|
+
- Jan Piotrowski
|
17
|
+
- Daniel Jankowski
|
18
|
+
- Danielle Tomlinson
|
19
|
+
- Max Ott
|
19
20
|
- Josh Holtz
|
20
|
-
- Joshua Liebowitz
|
21
|
-
- Stefan Natchev
|
22
|
-
- Jimmy Dee
|
23
21
|
- Iulian Onofrei
|
24
|
-
-
|
22
|
+
- Joshua Liebowitz
|
25
23
|
- Olivier Halligon
|
26
|
-
-
|
27
|
-
-
|
28
|
-
-
|
24
|
+
- Fumiya Nakamura
|
25
|
+
- Maksym Grebenets
|
26
|
+
- Luka Mirosevic
|
27
|
+
- Manu Wallner
|
28
|
+
- Aaron Brager
|
29
29
|
autorequire:
|
30
30
|
bindir: bin
|
31
31
|
cert_chain: []
|
32
|
-
date: 2021-02-
|
32
|
+
date: 2021-02-10 00:00:00.000000000 Z
|
33
33
|
dependencies:
|
34
34
|
- !ruby/object:Gem::Dependency
|
35
35
|
name: slack-notifier
|