fastlane 2.231.0 → 2.232.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 +102 -102
- data/bin/fastlane +2 -2
- data/fastlane/lib/assets/completions/completion.bash +1 -1
- data/fastlane/lib/assets/completions/completion.sh +2 -2
- data/fastlane/lib/fastlane/actions/app_store_build_number.rb +15 -14
- data/fastlane/lib/fastlane/actions/appium.rb +1 -1
- data/fastlane/lib/fastlane/actions/import_certificate.rb +9 -1
- data/fastlane/lib/fastlane/actions/latest_testflight_build_number.rb +1 -1
- data/fastlane/lib/fastlane/erb_template_helper.rb +1 -7
- data/fastlane/lib/fastlane/plugins/template/%gem_name%.gemspec.erb +1 -1
- data/fastlane/lib/fastlane/plugins/template/.rubocop.yml +1 -1
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/fastlane/swift/Appfile.swift +12 -4
- data/fastlane/swift/ControlCommand.swift +4 -3
- data/fastlane/swift/Deliverfile.swift +1 -1
- data/fastlane/swift/DeliverfileProtocol.swift +264 -67
- data/fastlane/swift/Fastlane.swift +55 -17
- data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.pbxproj +3 -1
- data/fastlane/swift/Gymfile.swift +1 -1
- data/fastlane/swift/GymfileProtocol.swift +220 -55
- data/fastlane/swift/LaneFileProtocol.swift +6 -4
- data/fastlane/swift/Matchfile.swift +1 -1
- data/fastlane/swift/MatchfileProtocol.swift +224 -57
- data/fastlane/swift/Precheckfile.swift +1 -1
- data/fastlane/swift/PrecheckfileProtocol.swift +44 -12
- data/fastlane/swift/RubyCommand.swift +5 -6
- data/fastlane/swift/Runner.swift +1 -1
- data/fastlane/swift/Scanfile.swift +1 -1
- data/fastlane/swift/ScanfileProtocol.swift +328 -82
- data/fastlane/swift/Screengrabfile.swift +1 -1
- data/fastlane/swift/ScreengrabfileProtocol.swift +88 -23
- data/fastlane/swift/Snapshotfile.swift +1 -1
- data/fastlane/swift/SnapshotfileProtocol.swift +212 -53
- data/fastlane/swift/SocketClient.swift +1 -1
- data/fastlane_core/lib/fastlane_core/cert_checker.rb +10 -0
- data/fastlane_core/lib/fastlane_core/keychain_importer.rb +3 -1
- data/fastlane_core/lib/fastlane_core/project.rb +4 -0
- data/gym/lib/assets/wrap_xcodebuild/xcbuild-safe.sh +1 -0
- data/gym/lib/gym/options.rb +6 -1
- data/scan/lib/scan/options.rb +6 -1
- data/sigh/lib/assets/resign.sh +7 -5
- data/snapshot/lib/snapshot/options.rb +8 -1
- data/spaceship/lib/spaceship/connect_api/models/build_upload.rb +42 -0
- data/spaceship/lib/spaceship/connect_api/testflight/testflight.rb +9 -0
- data/spaceship/lib/spaceship/connect_api.rb +1 -0
- data/spaceship/lib/spaceship/spaceauth_runner.rb +5 -15
- data/trainer/lib/trainer/legacy_xcresult.rb +1 -1
- data/trainer/lib/trainer/test_parser.rb +1 -1
- data/trainer/lib/trainer/xcresult/helper.rb +11 -1
- metadata +58 -29
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 2622d3578122878982a9b7d811fe4a292ed99929665c6260ad5f16dc687394ef
|
|
4
|
+
data.tar.gz: 6b0ea9b956f1aa5e1cadad14947045227e23d7dfe06d878b570ba70a6cf5f8ff
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 660e9e37dbf36f1894fbc6a813c794b12e3201428812777d2a287b9cf22911ea6b0fc8c004da7050c1ba1ebb4922b1006f7fdb39bda8b41548f38dd2320c3a3f
|
|
7
|
+
data.tar.gz: bf7c1b8f65cbb1faba9242d21e37c595ae2f3e3651db49b9e8af32a8360a993d60783a947681bb0fa5ed13069aa3337354c136bf70d63c96c854ffa15d11f050
|
data/README.md
CHANGED
|
@@ -35,113 +35,145 @@ 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/
|
|
38
|
+
<td id='jan-piotrowski'>
|
|
39
|
+
<a href='https://github.com/janpio'>
|
|
40
|
+
<img src='https://github.com/janpio.png' width='140px;'>
|
|
41
41
|
</a>
|
|
42
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
42
|
+
<h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
|
|
43
43
|
</td>
|
|
44
|
-
<td id='
|
|
45
|
-
<a href='https://github.com/
|
|
46
|
-
<img src='https://github.com/
|
|
44
|
+
<td id='kohki-miki'>
|
|
45
|
+
<a href='https://github.com/giginet'>
|
|
46
|
+
<img src='https://github.com/giginet.png' width='140px;'>
|
|
47
47
|
</a>
|
|
48
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
48
|
+
<h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
|
|
49
49
|
</td>
|
|
50
|
-
<td id='
|
|
51
|
-
<a href='https://github.com/
|
|
52
|
-
<img src='https://github.com/
|
|
50
|
+
<td id='felix-krause'>
|
|
51
|
+
<a href='https://github.com/KrauseFx'>
|
|
52
|
+
<img src='https://github.com/KrauseFx.png' width='140px;'>
|
|
53
53
|
</a>
|
|
54
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
54
|
+
<h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
|
|
55
55
|
</td>
|
|
56
|
-
<td id='
|
|
57
|
-
<a href='https://github.com/
|
|
58
|
-
<img src='https://github.com/
|
|
56
|
+
<td id='helmut-januschka'>
|
|
57
|
+
<a href='https://github.com/hjanuschka'>
|
|
58
|
+
<img src='https://github.com/hjanuschka.png' width='140px;'>
|
|
59
59
|
</a>
|
|
60
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
60
|
+
<h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
|
|
61
61
|
</td>
|
|
62
|
-
<td id='
|
|
63
|
-
<a href='https://github.com/
|
|
64
|
-
<img src='https://github.com/
|
|
62
|
+
<td id='josh-holtz'>
|
|
63
|
+
<a href='https://github.com/joshdholtz'>
|
|
64
|
+
<img src='https://github.com/joshdholtz.png' width='140px;'>
|
|
65
65
|
</a>
|
|
66
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
66
|
+
<h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
|
|
67
67
|
</td>
|
|
68
68
|
</tr>
|
|
69
69
|
<tr>
|
|
70
|
+
<td id='daniel-jankowski'>
|
|
71
|
+
<a href='https://github.com/mollyIV'>
|
|
72
|
+
<img src='https://github.com/mollyIV.png' width='140px;'>
|
|
73
|
+
</a>
|
|
74
|
+
<h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
|
|
75
|
+
</td>
|
|
76
|
+
<td id='jimmy-dee'>
|
|
77
|
+
<a href='https://github.com/jdee'>
|
|
78
|
+
<img src='https://github.com/jdee.png' width='140px;'>
|
|
79
|
+
</a>
|
|
80
|
+
<h4 align='center'>Jimmy Dee</h4>
|
|
81
|
+
</td>
|
|
82
|
+
<td id='matthew-ellis'>
|
|
83
|
+
<a href='https://github.com/matthewellis'>
|
|
84
|
+
<img src='https://github.com/matthewellis.png' width='140px;'>
|
|
85
|
+
</a>
|
|
86
|
+
<h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
|
|
87
|
+
</td>
|
|
70
88
|
<td id='maksym-grebenets'>
|
|
71
89
|
<a href='https://github.com/mgrebenets'>
|
|
72
90
|
<img src='https://github.com/mgrebenets.png' width='140px;'>
|
|
73
91
|
</a>
|
|
74
92
|
<h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
|
|
75
93
|
</td>
|
|
94
|
+
<td id='olivier-halligon'>
|
|
95
|
+
<a href='https://github.com/AliSoftware'>
|
|
96
|
+
<img src='https://github.com/AliSoftware.png' width='140px;'>
|
|
97
|
+
</a>
|
|
98
|
+
<h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
|
|
99
|
+
</td>
|
|
100
|
+
</tr>
|
|
101
|
+
<tr>
|
|
102
|
+
<td id='andrew-mcburney'>
|
|
103
|
+
<a href='https://github.com/armcburney'>
|
|
104
|
+
<img src='https://github.com/armcburney.png' width='140px;'>
|
|
105
|
+
</a>
|
|
106
|
+
<h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
|
|
107
|
+
</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>
|
|
76
114
|
<td id='danielle-tomlinson'>
|
|
77
115
|
<a href='https://github.com/endocrimes'>
|
|
78
116
|
<img src='https://github.com/endocrimes.png' width='140px;'>
|
|
79
117
|
</a>
|
|
80
118
|
<h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
|
|
81
119
|
</td>
|
|
82
|
-
<td id='
|
|
83
|
-
<a href='https://github.com/
|
|
84
|
-
<img src='https://github.com/
|
|
85
|
-
</a>
|
|
86
|
-
<h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
|
|
87
|
-
</td>
|
|
88
|
-
<td id='aaron-brager'>
|
|
89
|
-
<a href='https://github.com/getaaron'>
|
|
90
|
-
<img src='https://github.com/getaaron.png' width='140px;'>
|
|
120
|
+
<td id='fumiya-nakamura'>
|
|
121
|
+
<a href='https://github.com/nafu'>
|
|
122
|
+
<img src='https://github.com/nafu.png' width='140px;'>
|
|
91
123
|
</a>
|
|
92
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
124
|
+
<h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
|
|
93
125
|
</td>
|
|
94
|
-
<td id='
|
|
95
|
-
<a href='https://github.com/
|
|
96
|
-
<img src='https://github.com/
|
|
126
|
+
<td id='iulian-onofrei'>
|
|
127
|
+
<a href='https://github.com/revolter'>
|
|
128
|
+
<img src='https://github.com/revolter.png' width='140px;'>
|
|
97
129
|
</a>
|
|
98
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
130
|
+
<h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
|
|
99
131
|
</td>
|
|
100
132
|
</tr>
|
|
101
133
|
<tr>
|
|
102
|
-
<td id='łukasz-grabowski'>
|
|
103
|
-
<a href='https://github.com/lucgrabowski'>
|
|
104
|
-
<img src='https://github.com/lucgrabowski.png' width='140px;'>
|
|
105
|
-
</a>
|
|
106
|
-
<h4 align='center'>Łukasz Grabowski</h4>
|
|
107
|
-
</td>
|
|
108
134
|
<td id='jérôme-lacoste'>
|
|
109
135
|
<a href='https://github.com/lacostej'>
|
|
110
136
|
<img src='https://github.com/lacostej.png' width='140px;'>
|
|
111
137
|
</a>
|
|
112
138
|
<h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
|
|
113
139
|
</td>
|
|
114
|
-
<td id='
|
|
115
|
-
<a href='https://github.com/
|
|
116
|
-
<img src='https://github.com/
|
|
140
|
+
<td id='łukasz-grabowski'>
|
|
141
|
+
<a href='https://github.com/lucgrabowski'>
|
|
142
|
+
<img src='https://github.com/lucgrabowski.png' width='140px;'>
|
|
117
143
|
</a>
|
|
118
|
-
<h4 align='center'
|
|
144
|
+
<h4 align='center'>Łukasz Grabowski</h4>
|
|
119
145
|
</td>
|
|
120
|
-
<td id='
|
|
121
|
-
<a href='https://github.com/
|
|
122
|
-
<img src='https://github.com/
|
|
146
|
+
<td id='aaron-brager'>
|
|
147
|
+
<a href='https://github.com/getaaron'>
|
|
148
|
+
<img src='https://github.com/getaaron.png' width='140px;'>
|
|
123
149
|
</a>
|
|
124
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
150
|
+
<h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
|
|
125
151
|
</td>
|
|
126
|
-
<td id='
|
|
127
|
-
<a href='https://github.com/
|
|
128
|
-
<img src='https://github.com/
|
|
152
|
+
<td id='max-ott'>
|
|
153
|
+
<a href='https://github.com/max-ott'>
|
|
154
|
+
<img src='https://github.com/max-ott.png' width='140px;'>
|
|
129
155
|
</a>
|
|
130
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
156
|
+
<h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
|
|
131
157
|
</td>
|
|
132
|
-
</tr>
|
|
133
|
-
<tr>
|
|
134
158
|
<td id='manu-wallner'>
|
|
135
159
|
<a href='https://github.com/milch'>
|
|
136
160
|
<img src='https://github.com/milch.png' width='140px;'>
|
|
137
161
|
</a>
|
|
138
162
|
<h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
|
|
139
163
|
</td>
|
|
140
|
-
|
|
141
|
-
<
|
|
142
|
-
<
|
|
164
|
+
</tr>
|
|
165
|
+
<tr>
|
|
166
|
+
<td id='joshua-liebowitz'>
|
|
167
|
+
<a href='https://github.com/taquitos'>
|
|
168
|
+
<img src='https://github.com/taquitos.png' width='140px;'>
|
|
143
169
|
</a>
|
|
144
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
170
|
+
<h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
|
|
171
|
+
</td>
|
|
172
|
+
<td id='satoshi-namai'>
|
|
173
|
+
<a href='https://github.com/ainame'>
|
|
174
|
+
<img src='https://github.com/ainame.png' width='140px;'>
|
|
175
|
+
</a>
|
|
176
|
+
<h4 align='center'><a href='https://twitter.com/ainame'>Satoshi Namai</a></h4>
|
|
145
177
|
</td>
|
|
146
178
|
<td id='roger-oba'>
|
|
147
179
|
<a href='https://github.com/rogerluan'>
|
|
@@ -149,63 +181,31 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
|
149
181
|
</a>
|
|
150
182
|
<h4 align='center'><a href='https://twitter.com/rogerluan_'>Roger Oba</a></h4>
|
|
151
183
|
</td>
|
|
152
|
-
<td id='
|
|
153
|
-
<a href='https://github.com/
|
|
154
|
-
<img src='https://github.com/
|
|
184
|
+
<td id='luka-mirosevic'>
|
|
185
|
+
<a href='https://github.com/lmirosevic'>
|
|
186
|
+
<img src='https://github.com/lmirosevic.png' width='140px;'>
|
|
155
187
|
</a>
|
|
156
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
188
|
+
<h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
|
|
157
189
|
</td>
|
|
158
|
-
<td id='
|
|
159
|
-
<a href='https://github.com/
|
|
160
|
-
<img src='https://github.com/
|
|
190
|
+
<td id='connor-tumbleson'>
|
|
191
|
+
<a href='https://github.com/ibotpeaches'>
|
|
192
|
+
<img src='https://github.com/ibotpeaches.png' width='140px;'>
|
|
161
193
|
</a>
|
|
162
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
194
|
+
<h4 align='center'><a href='https://twitter.com/ibotpeaches'>Connor Tumbleson</a></h4>
|
|
163
195
|
</td>
|
|
164
196
|
</tr>
|
|
165
197
|
<tr>
|
|
166
|
-
<td id='jimmy-dee'>
|
|
167
|
-
<a href='https://github.com/jdee'>
|
|
168
|
-
<img src='https://github.com/jdee.png' width='140px;'>
|
|
169
|
-
</a>
|
|
170
|
-
<h4 align='center'>Jimmy Dee</h4>
|
|
171
|
-
</td>
|
|
172
|
-
<td id='iulian-onofrei'>
|
|
173
|
-
<a href='https://github.com/revolter'>
|
|
174
|
-
<img src='https://github.com/revolter.png' width='140px;'>
|
|
175
|
-
</a>
|
|
176
|
-
<h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
|
|
177
|
-
</td>
|
|
178
|
-
<td id='helmut-januschka'>
|
|
179
|
-
<a href='https://github.com/hjanuschka'>
|
|
180
|
-
<img src='https://github.com/hjanuschka.png' width='140px;'>
|
|
181
|
-
</a>
|
|
182
|
-
<h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
|
|
183
|
-
</td>
|
|
184
|
-
<td id='daniel-jankowski'>
|
|
185
|
-
<a href='https://github.com/mollyIV'>
|
|
186
|
-
<img src='https://github.com/mollyIV.png' width='140px;'>
|
|
187
|
-
</a>
|
|
188
|
-
<h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
|
|
189
|
-
</td>
|
|
190
198
|
<td id='stefan-natchev'>
|
|
191
199
|
<a href='https://github.com/snatchev'>
|
|
192
200
|
<img src='https://github.com/snatchev.png' width='140px;'>
|
|
193
201
|
</a>
|
|
194
202
|
<h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
|
|
195
203
|
</td>
|
|
196
|
-
|
|
197
|
-
<
|
|
198
|
-
<
|
|
199
|
-
<a href='https://github.com/nafu'>
|
|
200
|
-
<img src='https://github.com/nafu.png' width='140px;'>
|
|
201
|
-
</a>
|
|
202
|
-
<h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
|
|
203
|
-
</td>
|
|
204
|
-
<td id='felix-krause'>
|
|
205
|
-
<a href='https://github.com/KrauseFx'>
|
|
206
|
-
<img src='https://github.com/KrauseFx.png' width='140px;'>
|
|
204
|
+
<td id='jorge-revuelta-h'>
|
|
205
|
+
<a href='https://github.com/minuscorp'>
|
|
206
|
+
<img src='https://github.com/minuscorp.png' width='140px;'>
|
|
207
207
|
</a>
|
|
208
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
208
|
+
<h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
|
|
209
209
|
</td>
|
|
210
210
|
</table>
|
|
211
211
|
|
data/bin/fastlane
CHANGED
|
@@ -21,6 +21,6 @@ _fastlane_complete() {
|
|
|
21
21
|
completions="$(sed -En 's/^[ ]*lane +:([^ ]+).*$/\1/p' "$file")"
|
|
22
22
|
completions="$completions update_fastlane"
|
|
23
23
|
|
|
24
|
-
COMPREPLY
|
|
24
|
+
mapfile -t COMPREPLY < <(compgen -W "$completions" -- "$word")
|
|
25
25
|
}
|
|
26
26
|
|
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
# shellcheck disable=SC2039
|
|
5
5
|
|
|
6
6
|
if [ -n "$BASH_VERSION" ]; then
|
|
7
|
-
|
|
7
|
+
. ~/.fastlane/completions/completion.bash
|
|
8
8
|
elif [ -n "$ZSH_VERSION" ]; then
|
|
9
|
-
|
|
9
|
+
. ~/.fastlane/completions/completion.zsh
|
|
10
10
|
fi
|
|
11
11
|
|
|
12
12
|
# Do not remove v0.0.1
|
|
@@ -66,17 +66,17 @@ module Fastlane
|
|
|
66
66
|
version_number = params[:version]
|
|
67
67
|
platform = params[:platform]
|
|
68
68
|
|
|
69
|
-
# Create filter for
|
|
70
|
-
filter = {
|
|
69
|
+
# Create filter for get_build_uploads with optional version number
|
|
70
|
+
filter = {}
|
|
71
71
|
if version_number
|
|
72
|
-
filter["
|
|
72
|
+
filter["cfBundleShortVersionString"] = version_number
|
|
73
73
|
version_number_message = "version #{version_number}"
|
|
74
74
|
else
|
|
75
75
|
version_number_message = "any version"
|
|
76
76
|
end
|
|
77
77
|
|
|
78
78
|
if platform
|
|
79
|
-
filter["
|
|
79
|
+
filter["platform"] = Spaceship::ConnectAPI::Platform.map(platform)
|
|
80
80
|
platform_message = "#{platform} platform"
|
|
81
81
|
else
|
|
82
82
|
platform_message = "any platform"
|
|
@@ -84,19 +84,20 @@ module Fastlane
|
|
|
84
84
|
|
|
85
85
|
UI.message("Fetching the latest build number for #{version_number_message}")
|
|
86
86
|
|
|
87
|
-
# Get latest build for optional version number and return build number if found
|
|
88
|
-
|
|
89
|
-
if
|
|
90
|
-
build_nr =
|
|
91
|
-
|
|
92
|
-
|
|
87
|
+
# Get latest build upload for optional version number and return build number if found
|
|
88
|
+
build_upload = Spaceship::ConnectAPI.get_build_uploads(app_id: app.id, filter: filter, sort: "-cfBundleVersion", limit: 1).first
|
|
89
|
+
if build_upload
|
|
90
|
+
build_nr = build_upload.cf_build_version
|
|
91
|
+
build_v = build_upload.cf_build_short_version_string
|
|
92
|
+
UI.message("Latest upload for version #{build_v} on #{platform_message} is build: #{build_nr}")
|
|
93
|
+
return OpenStruct.new({ build_nr: build_nr, build_v: build_v })
|
|
93
94
|
end
|
|
94
95
|
|
|
95
|
-
# Let user know that build couldn't be found
|
|
96
|
-
UI.important("Could not find a build for #{version_number_message} on #{platform_message} on App Store Connect")
|
|
96
|
+
# Let user know that build upload couldn't be found
|
|
97
|
+
UI.important("Could not find a build upload for #{version_number_message} on #{platform_message} on App Store Connect")
|
|
97
98
|
|
|
98
99
|
if params[:initial_build_number].nil?
|
|
99
|
-
UI.user_error!("Could not find a build on App Store Connect - and 'initial_build_number' option is not set")
|
|
100
|
+
UI.user_error!("Could not find a build upload on App Store Connect - and 'initial_build_number' option is not set")
|
|
100
101
|
else
|
|
101
102
|
build_nr = params[:initial_build_number]
|
|
102
103
|
UI.message("Using initial build number of #{build_nr}")
|
|
@@ -140,7 +141,7 @@ module Fastlane
|
|
|
140
141
|
conflicting_options: [:api_key_path]),
|
|
141
142
|
FastlaneCore::ConfigItem.new(key: :initial_build_number,
|
|
142
143
|
env_name: "INITIAL_BUILD_NUMBER",
|
|
143
|
-
description: "sets the build number to given value if no build is in current train",
|
|
144
|
+
description: "sets the build number to given value if no build (upload) is in current train",
|
|
144
145
|
skip_type_validation: true), # as we also allow integers, which we convert to strings anyway
|
|
145
146
|
FastlaneCore::ConfigItem.new(key: :app_identifier,
|
|
146
147
|
short_option: "-a",
|
|
@@ -6,7 +6,7 @@ module Fastlane
|
|
|
6
6
|
def self.run(params)
|
|
7
7
|
keychain_path = params[:keychain_path] || FastlaneCore::Helper.keychain_path(params[:keychain_name])
|
|
8
8
|
|
|
9
|
-
FastlaneCore::KeychainImporter.import_file(params[:certificate_path], keychain_path, keychain_password: params[:keychain_password], certificate_password: params[:certificate_password], output: params[:log_output])
|
|
9
|
+
FastlaneCore::KeychainImporter.import_file(params[:certificate_path], keychain_path, keychain_password: params[:keychain_password], certificate_password: params[:certificate_password], certificate_format: params[:certificate_format], output: params[:log_output])
|
|
10
10
|
end
|
|
11
11
|
|
|
12
12
|
def self.description
|
|
@@ -23,6 +23,9 @@ module Fastlane
|
|
|
23
23
|
sensitive: true,
|
|
24
24
|
default_value: "",
|
|
25
25
|
optional: true),
|
|
26
|
+
FastlaneCore::ConfigItem.new(key: :certificate_format,
|
|
27
|
+
description: "Format of the certificate. Check the '-f' switch from 'security import --help' command",
|
|
28
|
+
optional: true),
|
|
26
29
|
FastlaneCore::ConfigItem.new(key: :keychain_name,
|
|
27
30
|
env_name: "KEYCHAIN_NAME",
|
|
28
31
|
description: "Keychain the items should be imported to",
|
|
@@ -65,6 +68,11 @@ module Fastlane
|
|
|
65
68
|
)',
|
|
66
69
|
'import_certificate(
|
|
67
70
|
certificate_path: "certs/development.cer"
|
|
71
|
+
)',
|
|
72
|
+
'import_certificate(
|
|
73
|
+
certificate_path: "certs/dist.p12",
|
|
74
|
+
certificate_password: ENV["CERTIFICATE_PASSWORD"] || "default",
|
|
75
|
+
certificate_format: "pkcs12"
|
|
68
76
|
)'
|
|
69
77
|
]
|
|
70
78
|
end
|
|
@@ -87,7 +87,7 @@ module Fastlane
|
|
|
87
87
|
end),
|
|
88
88
|
FastlaneCore::ConfigItem.new(key: :initial_build_number,
|
|
89
89
|
env_name: "INITIAL_BUILD_NUMBER",
|
|
90
|
-
description: "sets the build number to given value if no build is in current train",
|
|
90
|
+
description: "sets the build number to given value if no build (upload) is in current train",
|
|
91
91
|
default_value: 1,
|
|
92
92
|
skip_type_validation: true), # allow Integer, String
|
|
93
93
|
FastlaneCore::ConfigItem.new(key: :team_id,
|
|
@@ -26,13 +26,7 @@ module Fastlane
|
|
|
26
26
|
end
|
|
27
27
|
|
|
28
28
|
def render(template)
|
|
29
|
-
|
|
30
|
-
# https://bugs.ruby-lang.org/issues/14256
|
|
31
|
-
if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("2.6.0")
|
|
32
|
-
ERB.new(template, trim_mode: @trim_mode).result(binding)
|
|
33
|
-
else
|
|
34
|
-
ERB.new(template, nil, @trim_mode).result(binding)
|
|
35
|
-
end
|
|
29
|
+
ERB.new(template, trim_mode: @trim_mode).result(binding)
|
|
36
30
|
end
|
|
37
31
|
end
|
|
38
32
|
end
|
|
@@ -15,7 +15,7 @@ Gem::Specification.new do |spec|
|
|
|
15
15
|
spec.files = Dir["lib/**/*"] + %w(README.md LICENSE)
|
|
16
16
|
spec.require_paths = ['lib']
|
|
17
17
|
spec.metadata['rubygems_mfa_required'] = 'true'
|
|
18
|
-
spec.required_ruby_version = '>= 2.
|
|
18
|
+
spec.required_ruby_version = '>= 2.7'
|
|
19
19
|
|
|
20
20
|
# Don't add a dependency to fastlane or fastlane_re
|
|
21
21
|
# since this would cause a circular dependency
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
module Fastlane
|
|
2
|
-
VERSION = '2.
|
|
2
|
+
VERSION = '2.232.0'.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
|
|
@@ -1,11 +1,19 @@
|
|
|
1
1
|
// Appfile.swift
|
|
2
2
|
// Copyright (c) 2026 FastlaneTools
|
|
3
3
|
|
|
4
|
-
var appIdentifier: String {
|
|
5
|
-
|
|
4
|
+
var appIdentifier: String {
|
|
5
|
+
return ""
|
|
6
|
+
} // The bundle identifier of your app
|
|
7
|
+
var appleID: String {
|
|
8
|
+
return ""
|
|
9
|
+
} // Your Apple Developer Portal username
|
|
6
10
|
|
|
7
|
-
var teamID: String {
|
|
8
|
-
|
|
11
|
+
var teamID: String {
|
|
12
|
+
return ""
|
|
13
|
+
} // Developer Portal Team ID
|
|
14
|
+
var itcTeam: String? {
|
|
15
|
+
return nil
|
|
16
|
+
} // App Store Connect Team ID (may be nil if no team)
|
|
9
17
|
|
|
10
18
|
// you can even provide different app identifiers, Apple IDs and team names per lane:
|
|
11
19
|
// More information: https://docs.fastlane.tools/advanced/#appfile
|
|
@@ -12,7 +12,9 @@ import Foundation
|
|
|
12
12
|
|
|
13
13
|
struct ControlCommand: RubyCommandable {
|
|
14
14
|
static let commandKey = "command"
|
|
15
|
-
var type: CommandType {
|
|
15
|
+
var type: CommandType {
|
|
16
|
+
return .control
|
|
17
|
+
}
|
|
16
18
|
|
|
17
19
|
enum ShutdownCommandType {
|
|
18
20
|
static let userMessageKey: String = "userMessage"
|
|
@@ -59,8 +61,7 @@ struct ControlCommand: RubyCommandable {
|
|
|
59
61
|
}
|
|
60
62
|
|
|
61
63
|
let jsonData = try! JSONSerialization.data(withJSONObject: jsonDictionary, options: [])
|
|
62
|
-
|
|
63
|
-
return jsonString
|
|
64
|
+
return String(data: jsonData, encoding: .utf8)!
|
|
64
65
|
}
|
|
65
66
|
|
|
66
67
|
init(commandType: ShutdownCommandType, message: String? = nil) {
|