fastlane 2.205.0 → 2.206.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +96 -96
- data/cert/lib/cert/runner.rb +15 -7
- data/deliver/lib/deliver/options.rb +5 -0
- data/deliver/lib/deliver/runner.rb +47 -2
- data/fastlane/lib/fastlane/actions/.supply.rb.swp +0 -0
- data/fastlane/lib/fastlane/actions/danger.rb +14 -0
- data/fastlane/lib/fastlane/actions/run_tests.rb +1 -7
- data/fastlane/lib/fastlane/actions/setup_ci.rb +13 -4
- data/fastlane/lib/fastlane/actions/update_project_provisioning.rb +9 -0
- data/fastlane/lib/fastlane/cli_tools_distributor.rb +20 -0
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/fastlane/swift/Deliverfile.swift +1 -1
- data/fastlane/swift/DeliverfileProtocol.swift +5 -1
- data/fastlane/swift/Fastlane.swift +39 -3
- data/fastlane/swift/Gymfile.swift +1 -1
- data/fastlane/swift/GymfileProtocol.swift +1 -1
- data/fastlane/swift/Matchfile.swift +1 -1
- data/fastlane/swift/MatchfileProtocol.swift +5 -1
- data/fastlane/swift/Precheckfile.swift +1 -1
- data/fastlane/swift/PrecheckfileProtocol.swift +1 -1
- data/fastlane/swift/Scanfile.swift +1 -1
- data/fastlane/swift/ScanfileProtocol.swift +1 -1
- data/fastlane/swift/Screengrabfile.swift +1 -1
- data/fastlane/swift/ScreengrabfileProtocol.swift +1 -1
- data/fastlane/swift/Snapshotfile.swift +1 -1
- data/fastlane/swift/SnapshotfileProtocol.swift +1 -1
- data/fastlane/swift/formatting/Brewfile.lock.json +13 -13
- data/fastlane_core/lib/fastlane_core/itunes_transporter.rb +90 -0
- data/frameit/lib/frameit/device_types.rb +7 -0
- data/match/lib/match/importer.rb +3 -1
- data/match/lib/match/options.rb +5 -0
- data/match/lib/match/runner.rb +9 -3
- data/match/lib/match/storage/google_cloud_storage.rb +7 -6
- data/scan/lib/scan/options.rb +6 -1
- data/scan/lib/scan/runner.rb +10 -2
- data/sigh/lib/sigh/runner.rb +2 -1
- data/spaceship/lib/spaceship/connect_api/api_client.rb +10 -5
- data/spaceship/lib/spaceship/connect_api/models/app.rb +1 -2
- data/spaceship/lib/spaceship/connect_api/models/build_delivery.rb +2 -1
- data/spaceship/lib/spaceship/connect_api/models/certificate.rb +1 -0
- data/spaceship/lib/spaceship/connect_api/models/user.rb +5 -0
- data/spaceship/lib/spaceship/connect_api/testflight/testflight.rb +24 -2
- data/spaceship/lib/spaceship/connect_api/token.rb +5 -2
- data/spaceship/lib/spaceship/tunes/tunes_client.rb +7 -7
- data/trainer/lib/trainer/test_parser.rb +1 -1
- metadata +22 -23
- data/spaceship/lib/spaceship/.client.rb.swp +0 -0
- data/spaceship/lib/spaceship/tunes/.tunes_client.rb.swp +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 317829e959e1ddefb2bf8509aab4759908053aacb4ca6ada69b76fd1c889d7ab
|
|
4
|
+
data.tar.gz: da4f61c5a484553bcc8a6adaf38b32e126afbbdcf67a34aba01b4cc1890eb31d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 8ae03a2f09a22603d6920abd1c129f5eb34cceebe1cfd633d25234140213a109bd05affb55a48b4e02e82697de95000b83960d77bc81fec96c3304871a666e83
|
|
7
|
+
data.tar.gz: 135ff6384e23c9f56a2cc2795cecd720825445316e2da518a23d94899859b642970a34cac5ec74aba7cef06ada8ab86f25f311db614d379062d26ed100e27b09
|
data/README.md
CHANGED
|
@@ -35,139 +35,119 @@ 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='
|
|
39
|
-
<a href='https://github.com/
|
|
40
|
-
<img src='https://github.com/
|
|
41
|
-
</a>
|
|
42
|
-
<h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
|
|
43
|
-
</td>
|
|
44
|
-
<td id='luka-mirosevic'>
|
|
45
|
-
<a href='https://github.com/lmirosevic'>
|
|
46
|
-
<img src='https://github.com/lmirosevic.png' width='140px;'>
|
|
47
|
-
</a>
|
|
48
|
-
<h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
|
|
49
|
-
</td>
|
|
50
|
-
<td id='felix-krause'>
|
|
51
|
-
<a href='https://github.com/KrauseFx'>
|
|
52
|
-
<img src='https://github.com/KrauseFx.png' width='140px;'>
|
|
53
|
-
</a>
|
|
54
|
-
<h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
|
|
55
|
-
</td>
|
|
56
|
-
<td id='matthew-ellis'>
|
|
57
|
-
<a href='https://github.com/matthewellis'>
|
|
58
|
-
<img src='https://github.com/matthewellis.png' width='140px;'>
|
|
59
|
-
</a>
|
|
60
|
-
<h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
|
|
61
|
-
</td>
|
|
62
|
-
<td id='satoshi-namai'>
|
|
63
|
-
<a href='https://github.com/ainame'>
|
|
64
|
-
<img src='https://github.com/ainame.png' width='140px;'>
|
|
38
|
+
<td id='josh-holtz'>
|
|
39
|
+
<a href='https://github.com/joshdholtz'>
|
|
40
|
+
<img src='https://github.com/joshdholtz.png' width='140px;'>
|
|
65
41
|
</a>
|
|
66
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
42
|
+
<h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
|
|
67
43
|
</td>
|
|
68
|
-
</tr>
|
|
69
|
-
<tr>
|
|
70
44
|
<td id='maksym-grebenets'>
|
|
71
45
|
<a href='https://github.com/mgrebenets'>
|
|
72
46
|
<img src='https://github.com/mgrebenets.png' width='140px;'>
|
|
73
47
|
</a>
|
|
74
48
|
<h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
|
|
75
49
|
</td>
|
|
76
|
-
<td id='roger-oba'>
|
|
77
|
-
<a href='https://github.com/rogerluan'>
|
|
78
|
-
<img src='https://github.com/rogerluan.png' width='140px;'>
|
|
79
|
-
</a>
|
|
80
|
-
<h4 align='center'><a href='https://twitter.com/rogerluan_'>Roger Oba</a></h4>
|
|
81
|
-
</td>
|
|
82
|
-
<td id='olivier-halligon'>
|
|
83
|
-
<a href='https://github.com/AliSoftware'>
|
|
84
|
-
<img src='https://github.com/AliSoftware.png' width='140px;'>
|
|
85
|
-
</a>
|
|
86
|
-
<h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
|
|
87
|
-
</td>
|
|
88
50
|
<td id='jorge-revuelta-h'>
|
|
89
51
|
<a href='https://github.com/minuscorp'>
|
|
90
52
|
<img src='https://github.com/minuscorp.png' width='140px;'>
|
|
91
53
|
</a>
|
|
92
54
|
<h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
|
|
93
55
|
</td>
|
|
94
|
-
<td id='
|
|
95
|
-
<a href='https://github.com/
|
|
96
|
-
<img src='https://github.com/
|
|
56
|
+
<td id='stefan-natchev'>
|
|
57
|
+
<a href='https://github.com/snatchev'>
|
|
58
|
+
<img src='https://github.com/snatchev.png' width='140px;'>
|
|
97
59
|
</a>
|
|
98
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
60
|
+
<h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
|
|
99
61
|
</td>
|
|
100
|
-
</tr>
|
|
101
|
-
<tr>
|
|
102
62
|
<td id='manish-rathi'>
|
|
103
63
|
<a href='https://github.com/crazymanish'>
|
|
104
64
|
<img src='https://github.com/crazymanish.png' width='140px;'>
|
|
105
65
|
</a>
|
|
106
66
|
<h4 align='center'><a href='https://twitter.com/iammanishrathi'>Manish Rathi</a></h4>
|
|
107
67
|
</td>
|
|
108
|
-
|
|
109
|
-
<
|
|
110
|
-
<
|
|
68
|
+
</tr>
|
|
69
|
+
<tr>
|
|
70
|
+
<td id='joshua-liebowitz'>
|
|
71
|
+
<a href='https://github.com/taquitos'>
|
|
72
|
+
<img src='https://github.com/taquitos.png' width='140px;'>
|
|
111
73
|
</a>
|
|
112
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
74
|
+
<h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
|
|
113
75
|
</td>
|
|
114
|
-
<td id='
|
|
115
|
-
<a href='https://github.com/
|
|
116
|
-
<img src='https://github.com/
|
|
76
|
+
<td id='manu-wallner'>
|
|
77
|
+
<a href='https://github.com/milch'>
|
|
78
|
+
<img src='https://github.com/milch.png' width='140px;'>
|
|
117
79
|
</a>
|
|
118
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
80
|
+
<h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
|
|
119
81
|
</td>
|
|
120
|
-
<td id='
|
|
121
|
-
<a href='https://github.com/
|
|
122
|
-
<img src='https://github.com/
|
|
82
|
+
<td id='daniel-jankowski'>
|
|
83
|
+
<a href='https://github.com/mollyIV'>
|
|
84
|
+
<img src='https://github.com/mollyIV.png' width='140px;'>
|
|
123
85
|
</a>
|
|
124
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
86
|
+
<h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
|
|
125
87
|
</td>
|
|
126
|
-
<td id='
|
|
127
|
-
<a href='https://github.com/
|
|
128
|
-
<img src='https://github.com/
|
|
88
|
+
<td id='andrew-mcburney'>
|
|
89
|
+
<a href='https://github.com/armcburney'>
|
|
90
|
+
<img src='https://github.com/armcburney.png' width='140px;'>
|
|
129
91
|
</a>
|
|
130
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
92
|
+
<h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
|
|
93
|
+
</td>
|
|
94
|
+
<td id='jan-piotrowski'>
|
|
95
|
+
<a href='https://github.com/janpio'>
|
|
96
|
+
<img src='https://github.com/janpio.png' width='140px;'>
|
|
97
|
+
</a>
|
|
98
|
+
<h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
|
|
131
99
|
</td>
|
|
132
100
|
</tr>
|
|
133
101
|
<tr>
|
|
134
|
-
<td id='
|
|
135
|
-
<a href='https://github.com/
|
|
136
|
-
<img src='https://github.com/
|
|
102
|
+
<td id='olivier-halligon'>
|
|
103
|
+
<a href='https://github.com/AliSoftware'>
|
|
104
|
+
<img src='https://github.com/AliSoftware.png' width='140px;'>
|
|
137
105
|
</a>
|
|
138
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
106
|
+
<h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
|
|
139
107
|
</td>
|
|
140
|
-
<td id='
|
|
141
|
-
<a href='https://github.com/
|
|
142
|
-
<img src='https://github.com/
|
|
108
|
+
<td id='satoshi-namai'>
|
|
109
|
+
<a href='https://github.com/ainame'>
|
|
110
|
+
<img src='https://github.com/ainame.png' width='140px;'>
|
|
143
111
|
</a>
|
|
144
|
-
<h4 align='center'>
|
|
112
|
+
<h4 align='center'><a href='https://twitter.com/ainame'>Satoshi Namai</a></h4>
|
|
145
113
|
</td>
|
|
146
|
-
<td id='
|
|
147
|
-
<a href='https://github.com/
|
|
148
|
-
<img src='https://github.com/
|
|
114
|
+
<td id='luka-mirosevic'>
|
|
115
|
+
<a href='https://github.com/lmirosevic'>
|
|
116
|
+
<img src='https://github.com/lmirosevic.png' width='140px;'>
|
|
149
117
|
</a>
|
|
150
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
118
|
+
<h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
|
|
151
119
|
</td>
|
|
152
|
-
<td id='
|
|
153
|
-
<a href='https://github.com/
|
|
154
|
-
<img src='https://github.com/
|
|
120
|
+
<td id='fumiya-nakamura'>
|
|
121
|
+
<a href='https://github.com/nafu'>
|
|
122
|
+
<img src='https://github.com/nafu.png' width='140px;'>
|
|
155
123
|
</a>
|
|
156
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
124
|
+
<h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
|
|
157
125
|
</td>
|
|
158
|
-
<td id='
|
|
159
|
-
<a href='https://github.com/
|
|
160
|
-
<img src='https://github.com/
|
|
126
|
+
<td id='matthew-ellis'>
|
|
127
|
+
<a href='https://github.com/matthewellis'>
|
|
128
|
+
<img src='https://github.com/matthewellis.png' width='140px;'>
|
|
161
129
|
</a>
|
|
162
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
130
|
+
<h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
|
|
163
131
|
</td>
|
|
164
132
|
</tr>
|
|
165
133
|
<tr>
|
|
166
|
-
<td id='
|
|
167
|
-
<a href='https://github.com/
|
|
168
|
-
<img src='https://github.com/
|
|
134
|
+
<td id='jimmy-dee'>
|
|
135
|
+
<a href='https://github.com/jdee'>
|
|
136
|
+
<img src='https://github.com/jdee.png' width='140px;'>
|
|
169
137
|
</a>
|
|
170
|
-
<h4 align='center'
|
|
138
|
+
<h4 align='center'>Jimmy Dee</h4>
|
|
139
|
+
</td>
|
|
140
|
+
<td id='roger-oba'>
|
|
141
|
+
<a href='https://github.com/rogerluan'>
|
|
142
|
+
<img src='https://github.com/rogerluan.png' width='140px;'>
|
|
143
|
+
</a>
|
|
144
|
+
<h4 align='center'><a href='https://twitter.com/rogerluan_'>Roger Oba</a></h4>
|
|
145
|
+
</td>
|
|
146
|
+
<td id='helmut-januschka'>
|
|
147
|
+
<a href='https://github.com/hjanuschka'>
|
|
148
|
+
<img src='https://github.com/hjanuschka.png' width='140px;'>
|
|
149
|
+
</a>
|
|
150
|
+
<h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
|
|
171
151
|
</td>
|
|
172
152
|
<td id='jérôme-lacoste'>
|
|
173
153
|
<a href='https://github.com/lacostej'>
|
|
@@ -175,31 +155,51 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
|
175
155
|
</a>
|
|
176
156
|
<h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
|
|
177
157
|
</td>
|
|
178
|
-
<td id='
|
|
179
|
-
<a href='https://github.com/
|
|
180
|
-
<img src='https://github.com/
|
|
158
|
+
<td id='max-ott'>
|
|
159
|
+
<a href='https://github.com/max-ott'>
|
|
160
|
+
<img src='https://github.com/max-ott.png' width='140px;'>
|
|
181
161
|
</a>
|
|
182
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
162
|
+
<h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
|
|
183
163
|
</td>
|
|
164
|
+
</tr>
|
|
165
|
+
<tr>
|
|
184
166
|
<td id='łukasz-grabowski'>
|
|
185
167
|
<a href='https://github.com/lucgrabowski'>
|
|
186
168
|
<img src='https://github.com/lucgrabowski.png' width='140px;'>
|
|
187
169
|
</a>
|
|
188
170
|
<h4 align='center'>Łukasz Grabowski</h4>
|
|
189
171
|
</td>
|
|
172
|
+
<td id='aaron-brager'>
|
|
173
|
+
<a href='https://github.com/getaaron'>
|
|
174
|
+
<img src='https://github.com/getaaron.png' width='140px;'>
|
|
175
|
+
</a>
|
|
176
|
+
<h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
|
|
177
|
+
</td>
|
|
190
178
|
<td id='iulian-onofrei'>
|
|
191
179
|
<a href='https://github.com/revolter'>
|
|
192
180
|
<img src='https://github.com/revolter.png' width='140px;'>
|
|
193
181
|
</a>
|
|
194
182
|
<h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
|
|
195
183
|
</td>
|
|
184
|
+
<td id='felix-krause'>
|
|
185
|
+
<a href='https://github.com/KrauseFx'>
|
|
186
|
+
<img src='https://github.com/KrauseFx.png' width='140px;'>
|
|
187
|
+
</a>
|
|
188
|
+
<h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
|
|
189
|
+
</td>
|
|
190
|
+
<td id='danielle-tomlinson'>
|
|
191
|
+
<a href='https://github.com/endocrimes'>
|
|
192
|
+
<img src='https://github.com/endocrimes.png' width='140px;'>
|
|
193
|
+
</a>
|
|
194
|
+
<h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
|
|
195
|
+
</td>
|
|
196
196
|
</tr>
|
|
197
197
|
<tr>
|
|
198
|
-
<td id='
|
|
199
|
-
<a href='https://github.com/
|
|
200
|
-
<img src='https://github.com/
|
|
198
|
+
<td id='kohki-miki'>
|
|
199
|
+
<a href='https://github.com/giginet'>
|
|
200
|
+
<img src='https://github.com/giginet.png' width='140px;'>
|
|
201
201
|
</a>
|
|
202
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
202
|
+
<h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
|
|
203
203
|
</td>
|
|
204
204
|
</table>
|
|
205
205
|
|
data/cert/lib/cert/runner.rb
CHANGED
|
@@ -138,26 +138,34 @@ module Cert
|
|
|
138
138
|
# All certificates of this type
|
|
139
139
|
def certificates
|
|
140
140
|
filter = {
|
|
141
|
-
certificateType:
|
|
141
|
+
certificateType: certificate_types.join(",")
|
|
142
142
|
}
|
|
143
143
|
return Spaceship::ConnectAPI::Certificate.all(filter: filter)
|
|
144
144
|
end
|
|
145
145
|
|
|
146
|
-
# The kind of certificate we're interested in
|
|
146
|
+
# The kind of certificate we're interested in (for creating)
|
|
147
147
|
def certificate_type
|
|
148
|
+
return certificate_types.first
|
|
149
|
+
end
|
|
150
|
+
|
|
151
|
+
# The kind of certificates we're interested in (for listing)
|
|
152
|
+
def certificate_types
|
|
148
153
|
if Cert.config[:type]
|
|
149
154
|
case Cert.config[:type].to_sym
|
|
150
155
|
when :mac_installer_distribution
|
|
151
|
-
return Spaceship::ConnectAPI::Certificate::CertificateType::MAC_INSTALLER_DISTRIBUTION
|
|
156
|
+
return [Spaceship::ConnectAPI::Certificate::CertificateType::MAC_INSTALLER_DISTRIBUTION]
|
|
152
157
|
when :developer_id_application
|
|
153
|
-
return
|
|
158
|
+
return [
|
|
159
|
+
Spaceship::ConnectAPI::Certificate::CertificateType::DEVELOPER_ID_APPLICATION_G2,
|
|
160
|
+
Spaceship::ConnectAPI::Certificate::CertificateType::DEVELOPER_ID_APPLICATION
|
|
161
|
+
]
|
|
154
162
|
when :developer_id_kext
|
|
155
|
-
return Spaceship::ConnectAPI::Certificate::CertificateType::DEVELOPER_ID_KEXT
|
|
163
|
+
return [Spaceship::ConnectAPI::Certificate::CertificateType::DEVELOPER_ID_KEXT]
|
|
156
164
|
when :developer_id_installer
|
|
157
165
|
if !Spaceship::ConnectAPI.token.nil?
|
|
158
166
|
raise "As of 2021-11-09, the App Store Connect API does not allow accessing DEVELOPER_ID_INSTALLER with the API Key. Please file an issue on GitHub if this has changed and needs to be updated"
|
|
159
167
|
else
|
|
160
|
-
return Spaceship::ConnectAPI::Certificate::CertificateType::DEVELOPER_ID_INSTALLER
|
|
168
|
+
return [Spaceship::ConnectAPI::Certificate::CertificateType::DEVELOPER_ID_INSTALLER]
|
|
161
169
|
end
|
|
162
170
|
else
|
|
163
171
|
UI.user_error("Unaccepted value for :type - #{Cert.config[:type]}")
|
|
@@ -182,7 +190,7 @@ module Cert
|
|
|
182
190
|
end
|
|
183
191
|
end
|
|
184
192
|
|
|
185
|
-
return cert_type
|
|
193
|
+
return [cert_type]
|
|
186
194
|
end
|
|
187
195
|
|
|
188
196
|
def create_certificate
|
|
@@ -173,6 +173,11 @@ module Deliver
|
|
|
173
173
|
description: "Submit the new version for Review after uploading everything",
|
|
174
174
|
type: Boolean,
|
|
175
175
|
default_value: false),
|
|
176
|
+
FastlaneCore::ConfigItem.new(key: :verify_only,
|
|
177
|
+
env_name: "DELIVER_VERIFY_ONLY",
|
|
178
|
+
description: "Verifies archive with App Store Connect without uploading",
|
|
179
|
+
type: Boolean,
|
|
180
|
+
default_value: false),
|
|
176
181
|
FastlaneCore::ConfigItem.new(key: :reject_if_possible,
|
|
177
182
|
env_name: "DELIVER_REJECT_IF_POSSIBLE",
|
|
178
183
|
description: "Rejects the previously submitted build if it's in a state where it's possible",
|
|
@@ -46,6 +46,12 @@ module Deliver
|
|
|
46
46
|
end
|
|
47
47
|
|
|
48
48
|
def run
|
|
49
|
+
if options[:verify_only]
|
|
50
|
+
UI.important("Verify flag is set, only package validation will take place and no submission will be made")
|
|
51
|
+
verify_binary
|
|
52
|
+
return
|
|
53
|
+
end
|
|
54
|
+
|
|
49
55
|
verify_version if options[:app_version].to_s.length > 0 && !options[:skip_app_version_update]
|
|
50
56
|
|
|
51
57
|
# Rejecting before upload meta
|
|
@@ -155,6 +161,45 @@ module Deliver
|
|
|
155
161
|
UploadPriceTier.new.upload(options)
|
|
156
162
|
end
|
|
157
163
|
|
|
164
|
+
# Verify the binary with App Store Connect
|
|
165
|
+
def verify_binary
|
|
166
|
+
UI.message("Verifying binary with App Store Connect")
|
|
167
|
+
|
|
168
|
+
verify_ipa = options[:ipa]
|
|
169
|
+
verify_pkg = options[:pkg]
|
|
170
|
+
|
|
171
|
+
# 2020-01-27
|
|
172
|
+
# Only verify platform if if both ipa and pkg exists (for backwards support)
|
|
173
|
+
if verify_ipa && verify_pkg
|
|
174
|
+
verify_ipa = ["ios", "appletvos"].include?(options[:platform])
|
|
175
|
+
verify_pkg = options[:platform] == "osx"
|
|
176
|
+
end
|
|
177
|
+
|
|
178
|
+
if verify_ipa
|
|
179
|
+
package_path = FastlaneCore::IpaUploadPackageBuilder.new.generate(
|
|
180
|
+
app_id: Deliver.cache[:app].id,
|
|
181
|
+
ipa_path: options[:ipa],
|
|
182
|
+
package_path: "/tmp",
|
|
183
|
+
platform: options[:platform]
|
|
184
|
+
)
|
|
185
|
+
elsif verify_pkg
|
|
186
|
+
package_path = FastlaneCore::PkgUploadPackageBuilder.new.generate(
|
|
187
|
+
app_id: Deliver.cache[:app].id,
|
|
188
|
+
pkg_path: options[:pkg],
|
|
189
|
+
package_path: "/tmp",
|
|
190
|
+
platform: options[:platform]
|
|
191
|
+
)
|
|
192
|
+
end
|
|
193
|
+
|
|
194
|
+
transporter = transporter_for_selected_team
|
|
195
|
+
result = transporter.verify(package_path: package_path)
|
|
196
|
+
|
|
197
|
+
unless result
|
|
198
|
+
transporter_errors = transporter.displayable_errors
|
|
199
|
+
UI.user_error!("Error verifying the binary file: \n #{transporter_errors}")
|
|
200
|
+
end
|
|
201
|
+
end
|
|
202
|
+
|
|
158
203
|
# Upload the binary to App Store Connect
|
|
159
204
|
def upload_binary
|
|
160
205
|
UI.message("Uploading binary to App Store Connect")
|
|
@@ -243,8 +288,8 @@ module Deliver
|
|
|
243
288
|
return generic_transporter unless options[:itc_provider].nil? && tunes_client.teams.count > 1
|
|
244
289
|
|
|
245
290
|
begin
|
|
246
|
-
team = tunes_client.teams.find { |t| t['
|
|
247
|
-
name = team['
|
|
291
|
+
team = tunes_client.teams.find { |t| t['providerId'].to_s == tunes_client.team_id }
|
|
292
|
+
name = team['name']
|
|
248
293
|
provider_id = generic_transporter.provider_ids[name]
|
|
249
294
|
UI.verbose("Inferred provider id #{provider_id} for team #{name}.")
|
|
250
295
|
return FastlaneCore::ItunesTransporter.new(options[:username], nil, false, provider_id)
|
|
Binary file
|
|
@@ -25,6 +25,8 @@ module Fastlane
|
|
|
25
25
|
cmd << "pr #{pr}" if pr
|
|
26
26
|
|
|
27
27
|
ENV['DANGER_GITHUB_API_TOKEN'] = params[:github_api_token] if params[:github_api_token]
|
|
28
|
+
ENV['DANGER_GITHUB_HOST'] = params[:github_enterprise_host] if params[:github_enterprise_host]
|
|
29
|
+
ENV['DANGER_GITHUB_API_BASE_URL'] = params[:github_enterprise_api_base_url] if params[:github_enterprise_api_base_url]
|
|
28
30
|
|
|
29
31
|
Actions.sh(cmd.join(' '))
|
|
30
32
|
end
|
|
@@ -66,6 +68,18 @@ module Fastlane
|
|
|
66
68
|
sensitive: true,
|
|
67
69
|
code_gen_sensitive: true,
|
|
68
70
|
optional: true),
|
|
71
|
+
FastlaneCore::ConfigItem.new(key: :github_enterprise_host,
|
|
72
|
+
env_name: "FL_DANGER_GITHUB_ENTERPRISE_HOST",
|
|
73
|
+
description: "GitHub host URL for GitHub Enterprise",
|
|
74
|
+
sensitive: true,
|
|
75
|
+
code_gen_sensitive: true,
|
|
76
|
+
optional: true),
|
|
77
|
+
FastlaneCore::ConfigItem.new(key: :github_enterprise_api_base_url,
|
|
78
|
+
env_name: "FL_DANGER_GITHUB_ENTERPRISE_API_BASE_URL",
|
|
79
|
+
description: "GitHub API base URL for GitHub Enterprise",
|
|
80
|
+
sensitive: true,
|
|
81
|
+
code_gen_sensitive: true,
|
|
82
|
+
optional: true),
|
|
69
83
|
FastlaneCore::ConfigItem.new(key: :fail_on_errors,
|
|
70
84
|
env_name: "FL_DANGER_FAIL_ON_ERRORS",
|
|
71
85
|
description: "Should always fail the build process, defaults to false",
|
|
@@ -71,13 +71,7 @@ module Fastlane
|
|
|
71
71
|
def self.available_options
|
|
72
72
|
require 'scan'
|
|
73
73
|
|
|
74
|
-
FastlaneCore::CommanderGenerator.new.generate(Scan::Options.available_options)
|
|
75
|
-
FastlaneCore::ConfigItem.new(key: :fail_build,
|
|
76
|
-
env_name: "SCAN_FAIL_BUILD",
|
|
77
|
-
description: "Should this step stop the build if the tests fail? Set this to false if you're using trainer",
|
|
78
|
-
type: Boolean,
|
|
79
|
-
default_value: true)
|
|
80
|
-
]
|
|
74
|
+
FastlaneCore::CommanderGenerator.new.generate(Scan::Options.available_options)
|
|
81
75
|
end
|
|
82
76
|
|
|
83
77
|
def self.output
|
|
@@ -12,7 +12,7 @@ module Fastlane
|
|
|
12
12
|
setup_output_paths
|
|
13
13
|
end
|
|
14
14
|
|
|
15
|
-
setup_keychain
|
|
15
|
+
setup_keychain(params)
|
|
16
16
|
end
|
|
17
17
|
|
|
18
18
|
def self.should_run?(params)
|
|
@@ -23,7 +23,7 @@ module Fastlane
|
|
|
23
23
|
params[:provider] || (Helper.is_circle_ci? ? 'circleci' : nil)
|
|
24
24
|
end
|
|
25
25
|
|
|
26
|
-
def self.setup_keychain
|
|
26
|
+
def self.setup_keychain(params)
|
|
27
27
|
unless Helper.mac?
|
|
28
28
|
UI.message("Skipping Keychain setup on non-macOS CI Agent")
|
|
29
29
|
return
|
|
@@ -43,7 +43,7 @@ module Fastlane
|
|
|
43
43
|
name: keychain_name,
|
|
44
44
|
default_keychain: true,
|
|
45
45
|
unlock: true,
|
|
46
|
-
timeout:
|
|
46
|
+
timeout: params[:timeout],
|
|
47
47
|
lock_when_sleeps: true,
|
|
48
48
|
password: "",
|
|
49
49
|
add_to_search_list: true
|
|
@@ -103,7 +103,12 @@ module Fastlane
|
|
|
103
103
|
# Validate both 'travis' and 'circleci' for backwards compatibility, even
|
|
104
104
|
# though only the latter receives special treatment by this action
|
|
105
105
|
UI.user_error!("A given CI provider '#{value}' is not supported. Available CI providers: 'travis', 'circleci'") unless ["travis", "circleci"].include?(value)
|
|
106
|
-
end)
|
|
106
|
+
end),
|
|
107
|
+
FastlaneCore::ConfigItem.new(key: :timeout,
|
|
108
|
+
env_name: "FL_SETUP_CI_TIMEOUT",
|
|
109
|
+
description: "Set a custom timeout in seconds for keychain. Set `0` if you want to specify 'no time-out'",
|
|
110
|
+
type: Integer,
|
|
111
|
+
default_value: 3600)
|
|
107
112
|
]
|
|
108
113
|
end
|
|
109
114
|
|
|
@@ -119,6 +124,10 @@ module Fastlane
|
|
|
119
124
|
[
|
|
120
125
|
'setup_ci(
|
|
121
126
|
provider: "circleci"
|
|
127
|
+
)',
|
|
128
|
+
'setup_ci(
|
|
129
|
+
provider: "circleci",
|
|
130
|
+
timeout: 0
|
|
122
131
|
)'
|
|
123
132
|
]
|
|
124
133
|
end
|
|
@@ -34,7 +34,9 @@ module Fastlane
|
|
|
34
34
|
UI.user_error!("Could not find valid certificate at '#{params[:certificate]}'") unless File.size(params[:certificate]) > 0
|
|
35
35
|
cert = OpenSSL::X509::Certificate.new(File.read(params[:certificate]))
|
|
36
36
|
store.add_cert(cert)
|
|
37
|
+
|
|
37
38
|
p7.verify([cert], store)
|
|
39
|
+
check_verify!(p7)
|
|
38
40
|
data = Plist.parse_xml(p7.data)
|
|
39
41
|
|
|
40
42
|
target_filter = params[:target_filter] || params[:build_configuration_filter]
|
|
@@ -81,6 +83,13 @@ module Fastlane
|
|
|
81
83
|
UI.success("Successfully updated project settings in '#{folder}'")
|
|
82
84
|
end
|
|
83
85
|
|
|
86
|
+
def self.check_verify!(p7)
|
|
87
|
+
failed_to_verify = (p7.data.nil? || p7.data == "") && !(p7.error_string || "").empty?
|
|
88
|
+
if failed_to_verify
|
|
89
|
+
UI.crash!("Profile could not be verified with error: '#{p7.error_string}'. Try regenerating provisioning profile.")
|
|
90
|
+
end
|
|
91
|
+
end
|
|
92
|
+
|
|
84
93
|
def self.description
|
|
85
94
|
"Update projects code signing settings from your provisioning profile"
|
|
86
95
|
end
|
|
@@ -78,6 +78,7 @@ module Fastlane
|
|
|
78
78
|
tool_name = ARGV.first ? ARGV.first.downcase : nil
|
|
79
79
|
|
|
80
80
|
tool_name = process_emojis(tool_name)
|
|
81
|
+
tool_name = map_aliased_tools(tool_name)
|
|
81
82
|
|
|
82
83
|
if tool_name && Fastlane::TOOLS.include?(tool_name.to_sym) && !available_lanes.include?(tool_name.to_sym)
|
|
83
84
|
# Triggering a specific tool
|
|
@@ -125,6 +126,25 @@ module Fastlane
|
|
|
125
126
|
FastlaneCore::UpdateChecker.show_update_status('fastlane', Fastlane::VERSION)
|
|
126
127
|
end
|
|
127
128
|
|
|
129
|
+
def map_aliased_tools(tool_name)
|
|
130
|
+
map = {
|
|
131
|
+
"get_certificates": "cert",
|
|
132
|
+
"upload_to_app_store": "deliver",
|
|
133
|
+
"frame_screenshots": "frameit",
|
|
134
|
+
"build_app": "gym",
|
|
135
|
+
"build_ios_app": "gym",
|
|
136
|
+
"build_mac_app": "gym",
|
|
137
|
+
"sync_code_signing": "match",
|
|
138
|
+
"get_push_certificate": "pem",
|
|
139
|
+
"check_app_store_metadata": "precheck",
|
|
140
|
+
"capture_android_screenshots": "screengrab",
|
|
141
|
+
"get_provisioning_profile": "sigh",
|
|
142
|
+
"capture_ios_screenshots": "snapshot",
|
|
143
|
+
"upload_to_play_store": "supply"
|
|
144
|
+
}
|
|
145
|
+
return map[tool_name.to_sym] || tool_name
|
|
146
|
+
end
|
|
147
|
+
|
|
128
148
|
# Since loading dotenv should respect additional environments passed using
|
|
129
149
|
# --env, we must extract the arguments out of ARGV and process them before
|
|
130
150
|
# calling into commander. This is required since the ENV must be configured
|
|
@@ -65,6 +65,9 @@ public protocol DeliverfileProtocol: AnyObject {
|
|
|
65
65
|
/// Submit the new version for Review after uploading everything
|
|
66
66
|
var submitForReview: Bool { get }
|
|
67
67
|
|
|
68
|
+
/// Verifies archive with App Store Connect without uploading
|
|
69
|
+
var verifyOnly: Bool { get }
|
|
70
|
+
|
|
68
71
|
/// Rejects the previously submitted build if it's in a state where it's possible
|
|
69
72
|
var rejectIfPossible: Bool { get }
|
|
70
73
|
|
|
@@ -214,6 +217,7 @@ public extension DeliverfileProtocol {
|
|
|
214
217
|
var overwriteScreenshots: Bool { return false }
|
|
215
218
|
var syncScreenshots: Bool { return false }
|
|
216
219
|
var submitForReview: Bool { return false }
|
|
220
|
+
var verifyOnly: Bool { return false }
|
|
217
221
|
var rejectIfPossible: Bool { return false }
|
|
218
222
|
var automaticRelease: Bool? { return nil }
|
|
219
223
|
var autoReleaseDate: Int? { return nil }
|
|
@@ -260,4 +264,4 @@ public extension DeliverfileProtocol {
|
|
|
260
264
|
|
|
261
265
|
// Please don't remove the lines below
|
|
262
266
|
// They are used to detect outdated files
|
|
263
|
-
// FastlaneRunnerAPIVersion [0.9.
|
|
267
|
+
// FastlaneRunnerAPIVersion [0.9.103]
|