fastlane 2.205.1 → 2.206.1
Sign up to get free protection for your applications and to get access to all the features.
- 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]
|