fastlane 2.240.0 → 2.240.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 +98 -98
- data/credentials_manager/lib/credentials_manager/account_manager.rb +6 -2
- data/deliver/lib/deliver/detect_values.rb +3 -1
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/fastlane/swift/Deliverfile.swift +1 -1
- data/fastlane/swift/DeliverfileProtocol.swift +1 -1
- data/fastlane/swift/Fastlane.swift +1 -1
- 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 +1 -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_core/lib/fastlane_core/configuration/configuration.rb +12 -0
- data/fastlane_core/lib/fastlane_core/keychain_importer.rb +7 -1
- data/match/lib/match/encryption/openssl.rb +6 -2
- data/match/lib/match/runner.rb +30 -3
- data/match/lib/match/storage/interface.rb +8 -5
- metadata +40 -26
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: e3bd772100f8573dff86b99cc3081291849946024ad2b90a3e444a56620b6063
|
|
4
|
+
data.tar.gz: 3052020ae6023a87898ab9ce4d969adf1d41716713c491e905b8277461aeedbe
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 935d5797ac55f5b7b34046cbe4e485b4466e4e1273a33984541016f2f3741853089c36e72022e7bf975b3832d079c1c4a8c88937714a96a360369600a6e0ee37
|
|
7
|
+
data.tar.gz: c845cc44fdfc14433360015d501bbd4191c6c8804466f6841f51df7277df98c37c1c7e322411425408de3f19497db1f0202c3665fb8a2371ead1742e56dcf6a5
|
data/README.md
CHANGED
|
@@ -36,17 +36,29 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
|
36
36
|
<!-- This table is regenerated and resorted on each release -->
|
|
37
37
|
<table id='team'>
|
|
38
38
|
<tr>
|
|
39
|
-
<td id='
|
|
40
|
-
<a href='https://github.com/
|
|
41
|
-
<img src='https://github.com/
|
|
39
|
+
<td id='daniel-jankowski'>
|
|
40
|
+
<a href='https://github.com/mollyIV'>
|
|
41
|
+
<img src='https://github.com/mollyIV.png' width='140px;'>
|
|
42
42
|
</a>
|
|
43
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
43
|
+
<h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
|
|
44
44
|
</td>
|
|
45
|
-
<td id='
|
|
46
|
-
<a href='https://github.com/
|
|
47
|
-
<img src='https://github.com/
|
|
45
|
+
<td id='stefan-natchev'>
|
|
46
|
+
<a href='https://github.com/snatchev'>
|
|
47
|
+
<img src='https://github.com/snatchev.png' width='140px;'>
|
|
48
48
|
</a>
|
|
49
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
49
|
+
<h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
|
|
50
|
+
</td>
|
|
51
|
+
<td id='fumiya-nakamura'>
|
|
52
|
+
<a href='https://github.com/nafu'>
|
|
53
|
+
<img src='https://github.com/nafu.png' width='140px;'>
|
|
54
|
+
</a>
|
|
55
|
+
<h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
|
|
56
|
+
</td>
|
|
57
|
+
<td id='max-ott'>
|
|
58
|
+
<a href='https://github.com/max-ott'>
|
|
59
|
+
<img src='https://github.com/max-ott.png' width='140px;'>
|
|
60
|
+
</a>
|
|
61
|
+
<h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
|
|
50
62
|
</td>
|
|
51
63
|
<td id='luka-mirosevic'>
|
|
52
64
|
<a href='https://github.com/lmirosevic'>
|
|
@@ -54,31 +66,31 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
|
54
66
|
</a>
|
|
55
67
|
<h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
|
|
56
68
|
</td>
|
|
57
|
-
|
|
58
|
-
<
|
|
59
|
-
<
|
|
69
|
+
</tr>
|
|
70
|
+
<tr>
|
|
71
|
+
<td id='maksym-grebenets'>
|
|
72
|
+
<a href='https://github.com/mgrebenets'>
|
|
73
|
+
<img src='https://github.com/mgrebenets.png' width='140px;'>
|
|
60
74
|
</a>
|
|
61
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
75
|
+
<h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
|
|
62
76
|
</td>
|
|
63
|
-
<td id='
|
|
64
|
-
<a href='https://github.com/
|
|
65
|
-
<img src='https://github.com/
|
|
77
|
+
<td id='olivier-halligon'>
|
|
78
|
+
<a href='https://github.com/AliSoftware'>
|
|
79
|
+
<img src='https://github.com/AliSoftware.png' width='140px;'>
|
|
66
80
|
</a>
|
|
67
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
81
|
+
<h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
|
|
68
82
|
</td>
|
|
69
|
-
|
|
70
|
-
<
|
|
71
|
-
<
|
|
72
|
-
<a href='https://github.com/lacostej'>
|
|
73
|
-
<img src='https://github.com/lacostej.png' width='140px;'>
|
|
83
|
+
<td id='connor-tumbleson'>
|
|
84
|
+
<a href='https://github.com/ibotpeaches'>
|
|
85
|
+
<img src='https://github.com/ibotpeaches.png' width='140px;'>
|
|
74
86
|
</a>
|
|
75
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
87
|
+
<h4 align='center'><a href='https://twitter.com/ibotpeaches'>Connor Tumbleson</a></h4>
|
|
76
88
|
</td>
|
|
77
|
-
<td id='
|
|
78
|
-
<a href='https://github.com/
|
|
79
|
-
<img src='https://github.com/
|
|
89
|
+
<td id='satoshi-namai'>
|
|
90
|
+
<a href='https://github.com/ainame'>
|
|
91
|
+
<img src='https://github.com/ainame.png' width='140px;'>
|
|
80
92
|
</a>
|
|
81
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
93
|
+
<h4 align='center'><a href='https://twitter.com/ainame'>Satoshi Namai</a></h4>
|
|
82
94
|
</td>
|
|
83
95
|
<td id='jimmy-dee'>
|
|
84
96
|
<a href='https://github.com/jdee'>
|
|
@@ -86,31 +98,57 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
|
86
98
|
</a>
|
|
87
99
|
<h4 align='center'>Jimmy Dee</h4>
|
|
88
100
|
</td>
|
|
89
|
-
|
|
90
|
-
<
|
|
91
|
-
<
|
|
101
|
+
</tr>
|
|
102
|
+
<tr>
|
|
103
|
+
<td id='helmut-januschka'>
|
|
104
|
+
<a href='https://github.com/hjanuschka'>
|
|
105
|
+
<img src='https://github.com/hjanuschka.png' width='140px;'>
|
|
92
106
|
</a>
|
|
93
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
107
|
+
<h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
|
|
108
|
+
</td>
|
|
109
|
+
<td id='łukasz-grabowski'>
|
|
110
|
+
<a href='https://github.com/lucgrabowski'>
|
|
111
|
+
<img src='https://github.com/lucgrabowski.png' width='140px;'>
|
|
112
|
+
</a>
|
|
113
|
+
<h4 align='center'>Łukasz Grabowski</h4>
|
|
114
|
+
</td>
|
|
115
|
+
<td id='jorge-revuelta-h'>
|
|
116
|
+
<a href='https://github.com/minuscorp'>
|
|
117
|
+
<img src='https://github.com/minuscorp.png' width='140px;'>
|
|
118
|
+
</a>
|
|
119
|
+
<h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
|
|
120
|
+
</td>
|
|
121
|
+
<td id='felix-krause'>
|
|
122
|
+
<a href='https://github.com/KrauseFx'>
|
|
123
|
+
<img src='https://github.com/KrauseFx.png' width='140px;'>
|
|
124
|
+
</a>
|
|
125
|
+
<h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
|
|
126
|
+
</td>
|
|
127
|
+
<td id='danielle-tomlinson'>
|
|
128
|
+
<a href='https://github.com/endocrimes'>
|
|
129
|
+
<img src='https://github.com/endocrimes.png' width='140px;'>
|
|
130
|
+
</a>
|
|
131
|
+
<h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
|
|
94
132
|
</td>
|
|
133
|
+
</tr>
|
|
134
|
+
<tr>
|
|
95
135
|
<td id='matthew-ellis'>
|
|
96
136
|
<a href='https://github.com/matthewellis'>
|
|
97
137
|
<img src='https://github.com/matthewellis.png' width='140px;'>
|
|
98
138
|
</a>
|
|
99
139
|
<h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
|
|
100
140
|
</td>
|
|
101
|
-
|
|
102
|
-
<
|
|
103
|
-
<
|
|
104
|
-
<a href='https://github.com/max-ott'>
|
|
105
|
-
<img src='https://github.com/max-ott.png' width='140px;'>
|
|
141
|
+
<td id='aaron-brager'>
|
|
142
|
+
<a href='https://github.com/getaaron'>
|
|
143
|
+
<img src='https://github.com/getaaron.png' width='140px;'>
|
|
106
144
|
</a>
|
|
107
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
145
|
+
<h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
|
|
108
146
|
</td>
|
|
109
|
-
<td id='
|
|
110
|
-
<a href='https://github.com/
|
|
111
|
-
<img src='https://github.com/
|
|
147
|
+
<td id='roger-oba'>
|
|
148
|
+
<a href='https://github.com/rogerluan'>
|
|
149
|
+
<img src='https://github.com/rogerluan.png' width='140px;'>
|
|
112
150
|
</a>
|
|
113
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
151
|
+
<h4 align='center'><a href='https://twitter.com/rogerluan_'>Roger Oba</a></h4>
|
|
114
152
|
</td>
|
|
115
153
|
<td id='manish-rathi'>
|
|
116
154
|
<a href='https://github.com/crazymanish'>
|
|
@@ -118,76 +156,38 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
|
118
156
|
</a>
|
|
119
157
|
<h4 align='center'><a href='https://twitter.com/iammanishrathi'>Manish Rathi</a></h4>
|
|
120
158
|
</td>
|
|
121
|
-
<td id='
|
|
122
|
-
<a href='https://github.com/
|
|
123
|
-
<img src='https://github.com/
|
|
124
|
-
</a>
|
|
125
|
-
<h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
|
|
126
|
-
</td>
|
|
127
|
-
<td id='satoshi-namai'>
|
|
128
|
-
<a href='https://github.com/ainame'>
|
|
129
|
-
<img src='https://github.com/ainame.png' width='140px;'>
|
|
159
|
+
<td id='jérôme-lacoste'>
|
|
160
|
+
<a href='https://github.com/lacostej'>
|
|
161
|
+
<img src='https://github.com/lacostej.png' width='140px;'>
|
|
130
162
|
</a>
|
|
131
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
163
|
+
<h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
|
|
132
164
|
</td>
|
|
133
165
|
</tr>
|
|
134
166
|
<tr>
|
|
135
|
-
<td id='maksym-grebenets'>
|
|
136
|
-
<a href='https://github.com/mgrebenets'>
|
|
137
|
-
<img src='https://github.com/mgrebenets.png' width='140px;'>
|
|
138
|
-
</a>
|
|
139
|
-
<h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
|
|
140
|
-
</td>
|
|
141
|
-
<td id='olivier-halligon'>
|
|
142
|
-
<a href='https://github.com/AliSoftware'>
|
|
143
|
-
<img src='https://github.com/AliSoftware.png' width='140px;'>
|
|
144
|
-
</a>
|
|
145
|
-
<h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
|
|
146
|
-
</td>
|
|
147
167
|
<td id='josh-holtz'>
|
|
148
168
|
<a href='https://github.com/joshdholtz'>
|
|
149
169
|
<img src='https://github.com/joshdholtz.png' width='140px;'>
|
|
150
170
|
</a>
|
|
151
171
|
<h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
|
|
152
172
|
</td>
|
|
153
|
-
<td id='
|
|
154
|
-
<a href='https://github.com/
|
|
155
|
-
<img src='https://github.com/
|
|
173
|
+
<td id='manu-wallner'>
|
|
174
|
+
<a href='https://github.com/milch'>
|
|
175
|
+
<img src='https://github.com/milch.png' width='140px;'>
|
|
156
176
|
</a>
|
|
157
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
177
|
+
<h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
|
|
158
178
|
</td>
|
|
159
|
-
<td id='
|
|
160
|
-
<a href='https://github.com/
|
|
161
|
-
<img src='https://github.com/
|
|
179
|
+
<td id='andrew-mcburney'>
|
|
180
|
+
<a href='https://github.com/armcburney'>
|
|
181
|
+
<img src='https://github.com/armcburney.png' width='140px;'>
|
|
162
182
|
</a>
|
|
163
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
183
|
+
<h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
|
|
164
184
|
</td>
|
|
165
|
-
</tr>
|
|
166
|
-
<tr>
|
|
167
185
|
<td id='joshua-liebowitz'>
|
|
168
186
|
<a href='https://github.com/taquitos'>
|
|
169
187
|
<img src='https://github.com/taquitos.png' width='140px;'>
|
|
170
188
|
</a>
|
|
171
189
|
<h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
|
|
172
190
|
</td>
|
|
173
|
-
<td id='łukasz-grabowski'>
|
|
174
|
-
<a href='https://github.com/lucgrabowski'>
|
|
175
|
-
<img src='https://github.com/lucgrabowski.png' width='140px;'>
|
|
176
|
-
</a>
|
|
177
|
-
<h4 align='center'>Łukasz Grabowski</h4>
|
|
178
|
-
</td>
|
|
179
|
-
<td id='helmut-januschka'>
|
|
180
|
-
<a href='https://github.com/hjanuschka'>
|
|
181
|
-
<img src='https://github.com/hjanuschka.png' width='140px;'>
|
|
182
|
-
</a>
|
|
183
|
-
<h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
|
|
184
|
-
</td>
|
|
185
|
-
<td id='stefan-natchev'>
|
|
186
|
-
<a href='https://github.com/snatchev'>
|
|
187
|
-
<img src='https://github.com/snatchev.png' width='140px;'>
|
|
188
|
-
</a>
|
|
189
|
-
<h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
|
|
190
|
-
</td>
|
|
191
191
|
<td id='kohki-miki'>
|
|
192
192
|
<a href='https://github.com/giginet'>
|
|
193
193
|
<img src='https://github.com/giginet.png' width='140px;'>
|
|
@@ -196,17 +196,17 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
|
196
196
|
</td>
|
|
197
197
|
</tr>
|
|
198
198
|
<tr>
|
|
199
|
-
<td id='
|
|
200
|
-
<a href='https://github.com/
|
|
201
|
-
<img src='https://github.com/
|
|
199
|
+
<td id='jan-piotrowski'>
|
|
200
|
+
<a href='https://github.com/janpio'>
|
|
201
|
+
<img src='https://github.com/janpio.png' width='140px;'>
|
|
202
202
|
</a>
|
|
203
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
203
|
+
<h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
|
|
204
204
|
</td>
|
|
205
|
-
<td id='
|
|
206
|
-
<a href='https://github.com/
|
|
207
|
-
<img src='https://github.com/
|
|
205
|
+
<td id='iulian-onofrei'>
|
|
206
|
+
<a href='https://github.com/revolter'>
|
|
207
|
+
<img src='https://github.com/revolter.png' width='140px;'>
|
|
208
208
|
</a>
|
|
209
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
209
|
+
<h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
|
|
210
210
|
</td>
|
|
211
211
|
</table>
|
|
212
212
|
|
|
@@ -50,8 +50,12 @@ module CredentialsManager
|
|
|
50
50
|
end
|
|
51
51
|
|
|
52
52
|
unless @password
|
|
53
|
-
|
|
54
|
-
|
|
53
|
+
begin
|
|
54
|
+
item = Security::InternetPassword.find(server: server_name)
|
|
55
|
+
@password ||= item.password if item
|
|
56
|
+
rescue Security::Error => ex
|
|
57
|
+
puts("Could not read the Keychain entry for user '#{user}': #{ex.message}".yellow)
|
|
58
|
+
end
|
|
55
59
|
end
|
|
56
60
|
ask_for_login while ask_if_missing && @password.to_s.length == 0
|
|
57
61
|
return @password
|
|
@@ -83,7 +83,9 @@ module Deliver
|
|
|
83
83
|
if options[:ipa]
|
|
84
84
|
options[:platform] ||= FastlaneCore::IpaFileAnalyser.fetch_app_platform(options[:ipa])
|
|
85
85
|
elsif options[:pkg]
|
|
86
|
-
|
|
86
|
+
# :pkg defaults to any *.pkg in the current directory, so only infer
|
|
87
|
+
# osx from it when the user hasn't chosen a platform themselves
|
|
88
|
+
options[:platform] = 'osx' unless options.specified?(:platform)
|
|
87
89
|
end
|
|
88
90
|
end
|
|
89
91
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
module Fastlane
|
|
2
|
-
VERSION = '2.240.
|
|
2
|
+
VERSION = '2.240.1'.freeze
|
|
3
3
|
SUMMARY = "The easiest way to build and release mobile apps.".freeze
|
|
4
4
|
DESCRIPTION = "The easiest way to automate beta deployments and releases for your iOS and Android apps".freeze
|
|
5
5
|
MINIMUM_XCODE_RELEASE = "7.0".freeze
|
|
@@ -14215,4 +14215,4 @@ public let snapshotfile: Snapshotfile = .init()
|
|
|
14215
14215
|
|
|
14216
14216
|
// Please don't remove the lines below
|
|
14217
14217
|
// They are used to detect outdated files
|
|
14218
|
-
// FastlaneRunnerAPIVersion [0.9.
|
|
14218
|
+
// FastlaneRunnerAPIVersion [0.9.208]
|
|
@@ -267,6 +267,18 @@ module FastlaneCore
|
|
|
267
267
|
end
|
|
268
268
|
# rubocop:enable Metrics/PerceivedComplexity
|
|
269
269
|
|
|
270
|
+
# Returns true if the value for a certain key comes from one of the sources `fetch` checks
|
|
271
|
+
# before falling back to the default value: passed in, an environment variable or the config file
|
|
272
|
+
def specified?(key)
|
|
273
|
+
UI.crash!("Key '#{key}' must be a symbol. Example :#{key}") unless key.kind_of?(Symbol)
|
|
274
|
+
|
|
275
|
+
option = verify_options_key!(key)
|
|
276
|
+
|
|
277
|
+
!@values[key].nil? ||
|
|
278
|
+
!option.fetch_env_value.nil? ||
|
|
279
|
+
self.config_file_options.key?(key)
|
|
280
|
+
end
|
|
281
|
+
|
|
270
282
|
# Overwrites or sets a new value for a given key
|
|
271
283
|
# @param key [Symbol] Must be a symbol
|
|
272
284
|
def set(key, value)
|
|
@@ -98,7 +98,13 @@ module FastlaneCore
|
|
|
98
98
|
server = server_name(keychain_name)
|
|
99
99
|
|
|
100
100
|
# Attempt to find password in keychain for keychain
|
|
101
|
-
|
|
101
|
+
begin
|
|
102
|
+
item = Security::InternetPassword.find(server: server)
|
|
103
|
+
rescue Security::Error => ex
|
|
104
|
+
UI.important("Could not read the keychain item #{server}: #{ex.message}")
|
|
105
|
+
item = nil
|
|
106
|
+
end
|
|
107
|
+
|
|
102
108
|
if item
|
|
103
109
|
keychain_password = item.password
|
|
104
110
|
UI.important("Using keychain password from keychain item #{server} in #{keychain_path}")
|
|
@@ -93,8 +93,12 @@ module Match
|
|
|
93
93
|
def fetch_password!
|
|
94
94
|
password = ENV["MATCH_PASSWORD"]
|
|
95
95
|
unless password
|
|
96
|
-
|
|
97
|
-
|
|
96
|
+
begin
|
|
97
|
+
item = Security::InternetPassword.find(server: server_name(self.keychain_name))
|
|
98
|
+
password = item.password if item
|
|
99
|
+
rescue Security::Error => ex
|
|
100
|
+
UI.important("Could not read the local keychain: #{ex.message}")
|
|
101
|
+
end
|
|
98
102
|
end
|
|
99
103
|
|
|
100
104
|
unless password
|
data/match/lib/match/runner.rb
CHANGED
|
@@ -24,6 +24,8 @@ module Match
|
|
|
24
24
|
|
|
25
25
|
attr_accessor :storage
|
|
26
26
|
|
|
27
|
+
attr_accessor :encryption
|
|
28
|
+
|
|
27
29
|
attr_accessor :cache
|
|
28
30
|
|
|
29
31
|
# rubocop:disable Metrics/PerceivedComplexity
|
|
@@ -45,14 +47,14 @@ module Match
|
|
|
45
47
|
storage.download
|
|
46
48
|
|
|
47
49
|
# Init the encryption only after the `storage.download` was called to have the right working directory
|
|
48
|
-
encryption = Encryption.for_storage_mode(params[:storage_mode], {
|
|
50
|
+
self.encryption = Encryption.for_storage_mode(params[:storage_mode], {
|
|
49
51
|
git_url: params[:git_url],
|
|
50
52
|
s3_bucket: params[:s3_bucket],
|
|
51
53
|
s3_skip_encryption: params[:s3_skip_encryption],
|
|
52
54
|
working_directory: storage.working_directory,
|
|
53
55
|
force_legacy_encryption: params[:force_legacy_encryption]
|
|
54
56
|
})
|
|
55
|
-
encryption.decrypt_files if encryption
|
|
57
|
+
self.encryption.decrypt_files if self.encryption
|
|
56
58
|
|
|
57
59
|
unless params[:readonly]
|
|
58
60
|
self.spaceship = SpaceshipEnsure.new(params[:username], params[:team_id], params[:team_name], api_token(params))
|
|
@@ -117,7 +119,7 @@ module Match
|
|
|
117
119
|
|
|
118
120
|
has_file_changes = self.files_to_commit.count > 0 || self.files_to_delete.count > 0
|
|
119
121
|
if has_file_changes && !params[:readonly]
|
|
120
|
-
encryption.encrypt_files if encryption
|
|
122
|
+
self.encryption.encrypt_files if self.encryption
|
|
121
123
|
storage.save_changes!(files_to_commit: self.files_to_commit, files_to_delete: self.files_to_delete)
|
|
122
124
|
end
|
|
123
125
|
|
|
@@ -209,6 +211,10 @@ module Match
|
|
|
209
211
|
self.files_to_commit << cert_path
|
|
210
212
|
self.files_to_commit << private_key_path
|
|
211
213
|
|
|
214
|
+
# We pause to upload certs immediatly (or renewals) in case later logic fails, leaving
|
|
215
|
+
# AppStore with a set of files de-synced from match storage. See fastlane/fastlane#30140
|
|
216
|
+
save_changes_immediately!(params)
|
|
217
|
+
|
|
212
218
|
# Reset certificates cache since we have a new cert.
|
|
213
219
|
self.cache.reset_certificates
|
|
214
220
|
else
|
|
@@ -255,6 +261,27 @@ module Match
|
|
|
255
261
|
return File.basename(cert_path).gsub(".cer", "") # Certificate ID
|
|
256
262
|
end
|
|
257
263
|
|
|
264
|
+
# Saves all pending file changes to storage right away, keeping the
|
|
265
|
+
# working directory around so the current run can continue using it
|
|
266
|
+
def save_changes_immediately!(params)
|
|
267
|
+
return if params[:readonly]
|
|
268
|
+
return if self.files_to_commit.empty? && self.files_to_delete.empty?
|
|
269
|
+
|
|
270
|
+
self.encryption.encrypt_files if self.encryption
|
|
271
|
+
begin
|
|
272
|
+
self.storage.save_changes!(files_to_commit: self.files_to_commit,
|
|
273
|
+
files_to_delete: self.files_to_delete,
|
|
274
|
+
clear_working_directory: false)
|
|
275
|
+
ensure
|
|
276
|
+
# Always hand back a decrypted working directory, 2nd upload will hopefully work.
|
|
277
|
+
self.encryption.decrypt_files if self.encryption
|
|
278
|
+
end
|
|
279
|
+
|
|
280
|
+
# We may have another upload at end (profiles) so reset our cert file(s).
|
|
281
|
+
self.files_to_commit = []
|
|
282
|
+
self.files_to_delete = []
|
|
283
|
+
end
|
|
284
|
+
|
|
258
285
|
# @return [String] Path to certificate or P12 key
|
|
259
286
|
def select_cert_or_key(paths:, certificate_id: nil)
|
|
260
287
|
return paths.last if certificate_id.to_s.strip.empty?
|
|
@@ -47,11 +47,14 @@ module Match
|
|
|
47
47
|
# given remote server
|
|
48
48
|
# This method is blocking, meaning it might take multiple
|
|
49
49
|
# seconds or longer to run
|
|
50
|
-
# @
|
|
50
|
+
# @param files_to_commit [Array] Array to paths to files
|
|
51
51
|
# that should be committed to the storage provider
|
|
52
|
-
# @
|
|
53
|
-
#
|
|
54
|
-
|
|
52
|
+
# @param custom_message: [String] Custom change message
|
|
53
|
+
# that's optional, is used for commit title
|
|
54
|
+
# @param clear_working_directory: [Bool] Pass `false` to keep
|
|
55
|
+
# the local working directory after saving, so more
|
|
56
|
+
# changes can be made and saved later in the same run
|
|
57
|
+
def save_changes!(files_to_commit: nil, files_to_delete: nil, custom_message: nil, clear_working_directory: true)
|
|
55
58
|
# Custom init to `[]` in case `nil` is passed
|
|
56
59
|
files_to_commit ||= []
|
|
57
60
|
files_to_delete ||= []
|
|
@@ -85,7 +88,7 @@ module Match
|
|
|
85
88
|
end
|
|
86
89
|
end
|
|
87
90
|
ensure # Always clear working_directory after save
|
|
88
|
-
self.clear_changes
|
|
91
|
+
self.clear_changes if clear_working_directory
|
|
89
92
|
end
|
|
90
93
|
|
|
91
94
|
def upload_files(files_to_upload: [], custom_message: nil)
|
metadata
CHANGED
|
@@ -1,36 +1,36 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: fastlane
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.240.
|
|
4
|
+
version: 2.240.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
|
-
- Felix Krause
|
|
8
|
-
- Łukasz Grabowski
|
|
9
|
-
- Jorge Revuelta H
|
|
10
7
|
- Helmut Januschka
|
|
11
|
-
-
|
|
12
|
-
-
|
|
8
|
+
- Josh Holtz
|
|
9
|
+
- Danielle Tomlinson
|
|
13
10
|
- Max Ott
|
|
11
|
+
- Stefan Natchev
|
|
12
|
+
- Fumiya Nakamura
|
|
13
|
+
- Luka Mirosevic
|
|
14
|
+
- Iulian Onofrei
|
|
15
|
+
- Joshua Liebowitz
|
|
16
|
+
- Andrew McBurney
|
|
17
|
+
- Olivier Halligon
|
|
18
|
+
- Daniel Jankowski
|
|
19
|
+
- Felix Krause
|
|
20
|
+
- Matthew Ellis
|
|
21
|
+
- Jérôme Lacoste
|
|
14
22
|
- Manish Rathi
|
|
15
|
-
-
|
|
16
|
-
- Danielle Tomlinson
|
|
23
|
+
- Roger Oba
|
|
17
24
|
- Satoshi Namai
|
|
18
|
-
-
|
|
25
|
+
- Łukasz Grabowski
|
|
19
26
|
- Manu Wallner
|
|
20
27
|
- Kohki Miki
|
|
21
|
-
-
|
|
22
|
-
- Josh Holtz
|
|
23
|
-
- Andrew McBurney
|
|
28
|
+
- Aaron Brager
|
|
24
29
|
- Jimmy Dee
|
|
25
|
-
- Jan Piotrowski
|
|
26
|
-
- Roger Oba
|
|
27
30
|
- Maksym Grebenets
|
|
28
|
-
-
|
|
29
|
-
-
|
|
30
|
-
-
|
|
31
|
-
- Joshua Liebowitz
|
|
32
|
-
- Luka Mirosevic
|
|
33
|
-
- Stefan Natchev
|
|
31
|
+
- Jorge Revuelta H
|
|
32
|
+
- Jan Piotrowski
|
|
33
|
+
- Connor Tumbleson
|
|
34
34
|
bindir: bin
|
|
35
35
|
cert_chain: []
|
|
36
36
|
date: 1980-01-02 00:00:00.000000000 Z
|
|
@@ -361,14 +361,14 @@ dependencies:
|
|
|
361
361
|
requirements:
|
|
362
362
|
- - "~>"
|
|
363
363
|
- !ruby/object:Gem::Version
|
|
364
|
-
version: 0.99
|
|
364
|
+
version: '0.99'
|
|
365
365
|
type: :runtime
|
|
366
366
|
prerelease: false
|
|
367
367
|
version_requirements: !ruby/object:Gem::Requirement
|
|
368
368
|
requirements:
|
|
369
369
|
- - "~>"
|
|
370
370
|
- !ruby/object:Gem::Version
|
|
371
|
-
version: 0.99
|
|
371
|
+
version: '0.99'
|
|
372
372
|
- !ruby/object:Gem::Dependency
|
|
373
373
|
name: google-apis-playcustomapp_v1
|
|
374
374
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -597,16 +597,16 @@ dependencies:
|
|
|
597
597
|
name: security
|
|
598
598
|
requirement: !ruby/object:Gem::Requirement
|
|
599
599
|
requirements:
|
|
600
|
-
- -
|
|
600
|
+
- - "~>"
|
|
601
601
|
- !ruby/object:Gem::Version
|
|
602
|
-
version: 0.
|
|
602
|
+
version: '0.3'
|
|
603
603
|
type: :runtime
|
|
604
604
|
prerelease: false
|
|
605
605
|
version_requirements: !ruby/object:Gem::Requirement
|
|
606
606
|
requirements:
|
|
607
|
-
- -
|
|
607
|
+
- - "~>"
|
|
608
608
|
- !ruby/object:Gem::Version
|
|
609
|
-
version: 0.
|
|
609
|
+
version: '0.3'
|
|
610
610
|
- !ruby/object:Gem::Dependency
|
|
611
611
|
name: simctl
|
|
612
612
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -867,6 +867,20 @@ dependencies:
|
|
|
867
867
|
- - "<"
|
|
868
868
|
- !ruby/object:Gem::Version
|
|
869
869
|
version: '2.0'
|
|
870
|
+
- !ruby/object:Gem::Dependency
|
|
871
|
+
name: cgi
|
|
872
|
+
requirement: !ruby/object:Gem::Requirement
|
|
873
|
+
requirements:
|
|
874
|
+
- - "~>"
|
|
875
|
+
- !ruby/object:Gem::Version
|
|
876
|
+
version: '0.4'
|
|
877
|
+
type: :runtime
|
|
878
|
+
prerelease: false
|
|
879
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
880
|
+
requirements:
|
|
881
|
+
- - "~>"
|
|
882
|
+
- !ruby/object:Gem::Version
|
|
883
|
+
version: '0.4'
|
|
870
884
|
- !ruby/object:Gem::Dependency
|
|
871
885
|
name: benchmark
|
|
872
886
|
requirement: !ruby/object:Gem::Requirement
|