fastlane 2.205.1 → 2.206.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +88 -88
- data/cert/lib/cert/runner.rb +15 -7
- data/deliver/lib/deliver/options.rb +5 -0
- data/deliver/lib/deliver/runner.rb +45 -0
- data/{frameit/lib/frameit/.offsets.rb.swp → 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
- metadata +23 -28
- data/frameit/lib/frameit/.device.rb.swp +0 -0
- data/frameit/lib/frameit/.device_types.rb.swp +0 -0
- data/frameit/lib/frameit/.editor.rb.swp +0 -0
- data/frameit/lib/frameit/.runner.rb.swp +0 -0
- data/frameit/lib/frameit/.screenshot.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: d672d93684e080402a5134a7119d8919c103ae31b4225039e8c51eb82f1ddd3c
|
|
4
|
+
data.tar.gz: '08fe0b17e3e93c07e62e456a5eb7964d29a6d12a1782c0961a275d3a9090ed40'
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a784a27e27f1edae3c450828f938c9a673db46ad7755eb45878807aac3a4b422d32b48c3ff9ff438e5ee58214d28c217371f51f95cc1c359c83be7104c096c30
|
|
7
|
+
data.tar.gz: ad732679e342ee88fb948f6d3a339c60301dfad48952953d211fd335046e573661305f25e7797131566f3bf10965745c625c98cf91fd9fd2da72910c12433c5b
|
data/README.md
CHANGED
|
@@ -41,17 +41,23 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
|
41
41
|
</a>
|
|
42
42
|
<h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
|
|
43
43
|
</td>
|
|
44
|
-
<td id='
|
|
45
|
-
<a href='https://github.com/
|
|
46
|
-
<img src='https://github.com/
|
|
44
|
+
<td id='jan-piotrowski'>
|
|
45
|
+
<a href='https://github.com/janpio'>
|
|
46
|
+
<img src='https://github.com/janpio.png' width='140px;'>
|
|
47
47
|
</a>
|
|
48
|
-
<h4 align='center'>
|
|
48
|
+
<h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
|
|
49
49
|
</td>
|
|
50
|
-
<td id='
|
|
51
|
-
<a href='https://github.com/
|
|
52
|
-
<img src='https://github.com/
|
|
50
|
+
<td id='maksym-grebenets'>
|
|
51
|
+
<a href='https://github.com/mgrebenets'>
|
|
52
|
+
<img src='https://github.com/mgrebenets.png' width='140px;'>
|
|
53
53
|
</a>
|
|
54
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
54
|
+
<h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
|
|
55
|
+
</td>
|
|
56
|
+
<td id='joshua-liebowitz'>
|
|
57
|
+
<a href='https://github.com/taquitos'>
|
|
58
|
+
<img src='https://github.com/taquitos.png' width='140px;'>
|
|
59
|
+
</a>
|
|
60
|
+
<h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
|
|
55
61
|
</td>
|
|
56
62
|
<td id='danielle-tomlinson'>
|
|
57
63
|
<a href='https://github.com/endocrimes'>
|
|
@@ -59,121 +65,83 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
|
59
65
|
</a>
|
|
60
66
|
<h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
|
|
61
67
|
</td>
|
|
62
|
-
<td id='satoshi-namai'>
|
|
63
|
-
<a href='https://github.com/ainame'>
|
|
64
|
-
<img src='https://github.com/ainame.png' width='140px;'>
|
|
65
|
-
</a>
|
|
66
|
-
<h4 align='center'><a href='https://twitter.com/ainame'>Satoshi Namai</a></h4>
|
|
67
|
-
</td>
|
|
68
68
|
</tr>
|
|
69
69
|
<tr>
|
|
70
|
-
<td id='
|
|
71
|
-
<a href='https://github.com/
|
|
72
|
-
<img src='https://github.com/
|
|
73
|
-
</a>
|
|
74
|
-
<h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
|
|
75
|
-
</td>
|
|
76
|
-
<td id='josh-holtz'>
|
|
77
|
-
<a href='https://github.com/joshdholtz'>
|
|
78
|
-
<img src='https://github.com/joshdholtz.png' width='140px;'>
|
|
79
|
-
</a>
|
|
80
|
-
<h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
|
|
81
|
-
</td>
|
|
82
|
-
<td id='jan-piotrowski'>
|
|
83
|
-
<a href='https://github.com/janpio'>
|
|
84
|
-
<img src='https://github.com/janpio.png' width='140px;'>
|
|
70
|
+
<td id='manish-rathi'>
|
|
71
|
+
<a href='https://github.com/crazymanish'>
|
|
72
|
+
<img src='https://github.com/crazymanish.png' width='140px;'>
|
|
85
73
|
</a>
|
|
86
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
74
|
+
<h4 align='center'><a href='https://twitter.com/iammanishrathi'>Manish Rathi</a></h4>
|
|
87
75
|
</td>
|
|
88
|
-
<td id='
|
|
89
|
-
<a href='https://github.com/
|
|
90
|
-
<img src='https://github.com/
|
|
76
|
+
<td id='iulian-onofrei'>
|
|
77
|
+
<a href='https://github.com/revolter'>
|
|
78
|
+
<img src='https://github.com/revolter.png' width='140px;'>
|
|
91
79
|
</a>
|
|
92
|
-
<h4 align='center'
|
|
80
|
+
<h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
|
|
93
81
|
</td>
|
|
94
|
-
<td id='
|
|
95
|
-
<a href='https://github.com/
|
|
96
|
-
<img src='https://github.com/
|
|
82
|
+
<td id='luka-mirosevic'>
|
|
83
|
+
<a href='https://github.com/lmirosevic'>
|
|
84
|
+
<img src='https://github.com/lmirosevic.png' width='140px;'>
|
|
97
85
|
</a>
|
|
98
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
86
|
+
<h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
|
|
99
87
|
</td>
|
|
100
|
-
</tr>
|
|
101
|
-
<tr>
|
|
102
88
|
<td id='aaron-brager'>
|
|
103
89
|
<a href='https://github.com/getaaron'>
|
|
104
90
|
<img src='https://github.com/getaaron.png' width='140px;'>
|
|
105
91
|
</a>
|
|
106
92
|
<h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
|
|
107
93
|
</td>
|
|
108
|
-
<td id='manish-rathi'>
|
|
109
|
-
<a href='https://github.com/crazymanish'>
|
|
110
|
-
<img src='https://github.com/crazymanish.png' width='140px;'>
|
|
111
|
-
</a>
|
|
112
|
-
<h4 align='center'><a href='https://twitter.com/iammanishrathi'>Manish Rathi</a></h4>
|
|
113
|
-
</td>
|
|
114
94
|
<td id='olivier-halligon'>
|
|
115
95
|
<a href='https://github.com/AliSoftware'>
|
|
116
96
|
<img src='https://github.com/AliSoftware.png' width='140px;'>
|
|
117
97
|
</a>
|
|
118
98
|
<h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
|
|
119
99
|
</td>
|
|
120
|
-
|
|
121
|
-
<
|
|
122
|
-
<img src='https://github.com/taquitos.png' width='140px;'>
|
|
123
|
-
</a>
|
|
124
|
-
<h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
|
|
125
|
-
</td>
|
|
100
|
+
</tr>
|
|
101
|
+
<tr>
|
|
126
102
|
<td id='andrew-mcburney'>
|
|
127
103
|
<a href='https://github.com/armcburney'>
|
|
128
104
|
<img src='https://github.com/armcburney.png' width='140px;'>
|
|
129
105
|
</a>
|
|
130
106
|
<h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
|
|
131
107
|
</td>
|
|
132
|
-
|
|
133
|
-
<
|
|
134
|
-
<
|
|
135
|
-
<a href='https://github.com/KrauseFx'>
|
|
136
|
-
<img src='https://github.com/KrauseFx.png' width='140px;'>
|
|
137
|
-
</a>
|
|
138
|
-
<h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
|
|
139
|
-
</td>
|
|
140
|
-
<td id='max-ott'>
|
|
141
|
-
<a href='https://github.com/max-ott'>
|
|
142
|
-
<img src='https://github.com/max-ott.png' width='140px;'>
|
|
108
|
+
<td id='manu-wallner'>
|
|
109
|
+
<a href='https://github.com/milch'>
|
|
110
|
+
<img src='https://github.com/milch.png' width='140px;'>
|
|
143
111
|
</a>
|
|
144
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
112
|
+
<h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
|
|
145
113
|
</td>
|
|
146
|
-
<td id='
|
|
147
|
-
<a href='https://github.com/
|
|
148
|
-
<img src='https://github.com/
|
|
114
|
+
<td id='stefan-natchev'>
|
|
115
|
+
<a href='https://github.com/snatchev'>
|
|
116
|
+
<img src='https://github.com/snatchev.png' width='140px;'>
|
|
149
117
|
</a>
|
|
150
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
118
|
+
<h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
|
|
151
119
|
</td>
|
|
152
|
-
<td id='
|
|
153
|
-
<a href='https://github.com/
|
|
154
|
-
<img src='https://github.com/
|
|
120
|
+
<td id='łukasz-grabowski'>
|
|
121
|
+
<a href='https://github.com/lucgrabowski'>
|
|
122
|
+
<img src='https://github.com/lucgrabowski.png' width='140px;'>
|
|
155
123
|
</a>
|
|
156
|
-
<h4 align='center'
|
|
124
|
+
<h4 align='center'>Łukasz Grabowski</h4>
|
|
157
125
|
</td>
|
|
158
|
-
<td id='
|
|
159
|
-
<a href='https://github.com/
|
|
160
|
-
<img src='https://github.com/
|
|
126
|
+
<td id='satoshi-namai'>
|
|
127
|
+
<a href='https://github.com/ainame'>
|
|
128
|
+
<img src='https://github.com/ainame.png' width='140px;'>
|
|
161
129
|
</a>
|
|
162
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
130
|
+
<h4 align='center'><a href='https://twitter.com/ainame'>Satoshi Namai</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='josh-holtz'>
|
|
135
|
+
<a href='https://github.com/joshdholtz'>
|
|
136
|
+
<img src='https://github.com/joshdholtz.png' width='140px;'>
|
|
169
137
|
</a>
|
|
170
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
138
|
+
<h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
|
|
171
139
|
</td>
|
|
172
|
-
<td id='
|
|
173
|
-
<a href='https://github.com/
|
|
174
|
-
<img src='https://github.com/
|
|
140
|
+
<td id='kohki-miki'>
|
|
141
|
+
<a href='https://github.com/giginet'>
|
|
142
|
+
<img src='https://github.com/giginet.png' width='140px;'>
|
|
175
143
|
</a>
|
|
176
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
144
|
+
<h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
|
|
177
145
|
</td>
|
|
178
146
|
<td id='roger-oba'>
|
|
179
147
|
<a href='https://github.com/rogerluan'>
|
|
@@ -187,19 +155,51 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
|
187
155
|
</a>
|
|
188
156
|
<h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
|
|
189
157
|
</td>
|
|
158
|
+
<td id='max-ott'>
|
|
159
|
+
<a href='https://github.com/max-ott'>
|
|
160
|
+
<img src='https://github.com/max-ott.png' width='140px;'>
|
|
161
|
+
</a>
|
|
162
|
+
<h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
|
|
163
|
+
</td>
|
|
164
|
+
</tr>
|
|
165
|
+
<tr>
|
|
190
166
|
<td id='jorge-revuelta-h'>
|
|
191
167
|
<a href='https://github.com/minuscorp'>
|
|
192
168
|
<img src='https://github.com/minuscorp.png' width='140px;'>
|
|
193
169
|
</a>
|
|
194
170
|
<h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
|
|
195
171
|
</td>
|
|
172
|
+
<td id='helmut-januschka'>
|
|
173
|
+
<a href='https://github.com/hjanuschka'>
|
|
174
|
+
<img src='https://github.com/hjanuschka.png' width='140px;'>
|
|
175
|
+
</a>
|
|
176
|
+
<h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
|
|
177
|
+
</td>
|
|
178
|
+
<td id='fumiya-nakamura'>
|
|
179
|
+
<a href='https://github.com/nafu'>
|
|
180
|
+
<img src='https://github.com/nafu.png' width='140px;'>
|
|
181
|
+
</a>
|
|
182
|
+
<h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
|
|
183
|
+
</td>
|
|
184
|
+
<td id='matthew-ellis'>
|
|
185
|
+
<a href='https://github.com/matthewellis'>
|
|
186
|
+
<img src='https://github.com/matthewellis.png' width='140px;'>
|
|
187
|
+
</a>
|
|
188
|
+
<h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
|
|
189
|
+
</td>
|
|
190
|
+
<td id='jimmy-dee'>
|
|
191
|
+
<a href='https://github.com/jdee'>
|
|
192
|
+
<img src='https://github.com/jdee.png' width='140px;'>
|
|
193
|
+
</a>
|
|
194
|
+
<h4 align='center'>Jimmy Dee</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='felix-krause'>
|
|
199
|
+
<a href='https://github.com/KrauseFx'>
|
|
200
|
+
<img src='https://github.com/KrauseFx.png' width='140px;'>
|
|
201
201
|
</a>
|
|
202
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
202
|
+
<h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</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")
|
|
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.104]
|