fastlane 2.231.1 → 2.232.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 +100 -100
- 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 +19 -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 +29 -28
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: de7ed1e3cc5b0926788444582b0ad55d84d30759939a11afc6cdae212ee08441
|
|
4
|
+
data.tar.gz: f4880b8caa70c20414543d23084033e5f1ee53f7925dc9802875c199c919d6d9
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 92deb95868c52a31899edae8ff0670839dc1b4c925cdd3f2ceefc4f97dedc035b984c7449ac1c66977a819e14b77edb4824a3c52bcd85bfb1e21fed8dfa2162b
|
|
7
|
+
data.tar.gz: 3d0327d98668d64fa15f62b29d3294eef94dd1786b241554ed19f7624a8bb645692dd12072233cee69f4881ec49a3a51d932ebd5379513024381976dab8dc4b1
|
data/README.md
CHANGED
|
@@ -41,93 +41,93 @@ 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/armcburney'>Andrew McBurney</a></h4>
|
|
43
43
|
</td>
|
|
44
|
-
<td id='
|
|
45
|
-
<a href='https://github.com/
|
|
46
|
-
<img src='https://github.com/
|
|
44
|
+
<td id='satoshi-namai'>
|
|
45
|
+
<a href='https://github.com/ainame'>
|
|
46
|
+
<img src='https://github.com/ainame.png' width='140px;'>
|
|
47
47
|
</a>
|
|
48
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
48
|
+
<h4 align='center'><a href='https://twitter.com/ainame'>Satoshi Namai</a></h4>
|
|
49
49
|
</td>
|
|
50
|
-
<td id='
|
|
51
|
-
<a href='https://github.com/
|
|
52
|
-
<img src='https://github.com/
|
|
50
|
+
<td id='stefan-natchev'>
|
|
51
|
+
<a href='https://github.com/snatchev'>
|
|
52
|
+
<img src='https://github.com/snatchev.png' width='140px;'>
|
|
53
53
|
</a>
|
|
54
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
54
|
+
<h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
|
|
55
55
|
</td>
|
|
56
|
-
<td id='
|
|
57
|
-
<a href='https://github.com/
|
|
58
|
-
<img src='https://github.com/
|
|
56
|
+
<td id='joshua-liebowitz'>
|
|
57
|
+
<a href='https://github.com/taquitos'>
|
|
58
|
+
<img src='https://github.com/taquitos.png' width='140px;'>
|
|
59
59
|
</a>
|
|
60
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
60
|
+
<h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
|
|
61
61
|
</td>
|
|
62
|
-
<td id='
|
|
63
|
-
<a href='https://github.com/
|
|
64
|
-
<img src='https://github.com/
|
|
62
|
+
<td id='max-ott'>
|
|
63
|
+
<a href='https://github.com/max-ott'>
|
|
64
|
+
<img src='https://github.com/max-ott.png' width='140px;'>
|
|
65
65
|
</a>
|
|
66
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
66
|
+
<h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
|
|
67
67
|
</td>
|
|
68
68
|
</tr>
|
|
69
69
|
<tr>
|
|
70
|
-
<td id='
|
|
71
|
-
<a href='https://github.com/
|
|
72
|
-
<img src='https://github.com/
|
|
70
|
+
<td id='josh-holtz'>
|
|
71
|
+
<a href='https://github.com/joshdholtz'>
|
|
72
|
+
<img src='https://github.com/joshdholtz.png' width='140px;'>
|
|
73
73
|
</a>
|
|
74
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
74
|
+
<h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
|
|
75
75
|
</td>
|
|
76
|
-
<td id='
|
|
77
|
-
<a href='https://github.com/
|
|
78
|
-
<img src='https://github.com/
|
|
76
|
+
<td id='jan-piotrowski'>
|
|
77
|
+
<a href='https://github.com/janpio'>
|
|
78
|
+
<img src='https://github.com/janpio.png' width='140px;'>
|
|
79
79
|
</a>
|
|
80
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
80
|
+
<h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
|
|
81
81
|
</td>
|
|
82
|
-
<td id='
|
|
83
|
-
<a href='https://github.com/
|
|
84
|
-
<img src='https://github.com/
|
|
82
|
+
<td id='helmut-januschka'>
|
|
83
|
+
<a href='https://github.com/hjanuschka'>
|
|
84
|
+
<img src='https://github.com/hjanuschka.png' width='140px;'>
|
|
85
85
|
</a>
|
|
86
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
86
|
+
<h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
|
|
87
87
|
</td>
|
|
88
|
-
<td id='
|
|
89
|
-
<a href='https://github.com/
|
|
90
|
-
<img src='https://github.com/
|
|
88
|
+
<td id='manish-rathi'>
|
|
89
|
+
<a href='https://github.com/crazymanish'>
|
|
90
|
+
<img src='https://github.com/crazymanish.png' width='140px;'>
|
|
91
91
|
</a>
|
|
92
|
-
<h4 align='center'
|
|
92
|
+
<h4 align='center'><a href='https://twitter.com/iammanishrathi'>Manish Rathi</a></h4>
|
|
93
93
|
</td>
|
|
94
|
-
<td id='
|
|
95
|
-
<a href='https://github.com/
|
|
96
|
-
<img src='https://github.com/
|
|
94
|
+
<td id='maksym-grebenets'>
|
|
95
|
+
<a href='https://github.com/mgrebenets'>
|
|
96
|
+
<img src='https://github.com/mgrebenets.png' width='140px;'>
|
|
97
97
|
</a>
|
|
98
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
98
|
+
<h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
|
|
99
99
|
</td>
|
|
100
100
|
</tr>
|
|
101
101
|
<tr>
|
|
102
|
-
<td id='
|
|
103
|
-
<a href='https://github.com/
|
|
104
|
-
<img src='https://github.com/
|
|
102
|
+
<td id='luka-mirosevic'>
|
|
103
|
+
<a href='https://github.com/lmirosevic'>
|
|
104
|
+
<img src='https://github.com/lmirosevic.png' width='140px;'>
|
|
105
105
|
</a>
|
|
106
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
106
|
+
<h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
|
|
107
107
|
</td>
|
|
108
|
-
<td id='
|
|
109
|
-
<a href='https://github.com/
|
|
110
|
-
<img src='https://github.com/
|
|
108
|
+
<td id='felix-krause'>
|
|
109
|
+
<a href='https://github.com/KrauseFx'>
|
|
110
|
+
<img src='https://github.com/KrauseFx.png' width='140px;'>
|
|
111
111
|
</a>
|
|
112
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
112
|
+
<h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
|
|
113
113
|
</td>
|
|
114
|
-
<td id='
|
|
115
|
-
<a href='https://github.com/
|
|
116
|
-
<img src='https://github.com/
|
|
114
|
+
<td id='manu-wallner'>
|
|
115
|
+
<a href='https://github.com/milch'>
|
|
116
|
+
<img src='https://github.com/milch.png' width='140px;'>
|
|
117
117
|
</a>
|
|
118
|
-
<h4 align='center'>
|
|
118
|
+
<h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
|
|
119
119
|
</td>
|
|
120
|
-
<td id='
|
|
121
|
-
<a href='https://github.com/
|
|
122
|
-
<img src='https://github.com/
|
|
120
|
+
<td id='iulian-onofrei'>
|
|
121
|
+
<a href='https://github.com/revolter'>
|
|
122
|
+
<img src='https://github.com/revolter.png' width='140px;'>
|
|
123
123
|
</a>
|
|
124
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
124
|
+
<h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
|
|
125
125
|
</td>
|
|
126
|
-
<td id='
|
|
127
|
-
<a href='https://github.com/
|
|
128
|
-
<img src='https://github.com/
|
|
126
|
+
<td id='jimmy-dee'>
|
|
127
|
+
<a href='https://github.com/jdee'>
|
|
128
|
+
<img src='https://github.com/jdee.png' width='140px;'>
|
|
129
129
|
</a>
|
|
130
|
-
<h4 align='center'
|
|
130
|
+
<h4 align='center'>Jimmy Dee</h4>
|
|
131
131
|
</td>
|
|
132
132
|
</tr>
|
|
133
133
|
<tr>
|
|
@@ -137,75 +137,75 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
|
137
137
|
</a>
|
|
138
138
|
<h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
|
|
139
139
|
</td>
|
|
140
|
-
<td id='
|
|
141
|
-
<a href='https://github.com/
|
|
142
|
-
<img src='https://github.com/
|
|
140
|
+
<td id='connor-tumbleson'>
|
|
141
|
+
<a href='https://github.com/ibotpeaches'>
|
|
142
|
+
<img src='https://github.com/ibotpeaches.png' width='140px;'>
|
|
143
143
|
</a>
|
|
144
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
144
|
+
<h4 align='center'><a href='https://twitter.com/ibotpeaches'>Connor Tumbleson</a></h4>
|
|
145
145
|
</td>
|
|
146
|
-
<td id='
|
|
147
|
-
<a href='https://github.com/
|
|
148
|
-
<img src='https://github.com/
|
|
146
|
+
<td id='jérôme-lacoste'>
|
|
147
|
+
<a href='https://github.com/lacostej'>
|
|
148
|
+
<img src='https://github.com/lacostej.png' width='140px;'>
|
|
149
149
|
</a>
|
|
150
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
150
|
+
<h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
|
|
151
151
|
</td>
|
|
152
|
-
<td id='
|
|
153
|
-
<a href='https://github.com/
|
|
154
|
-
<img src='https://github.com/
|
|
152
|
+
<td id='matthew-ellis'>
|
|
153
|
+
<a href='https://github.com/matthewellis'>
|
|
154
|
+
<img src='https://github.com/matthewellis.png' width='140px;'>
|
|
155
155
|
</a>
|
|
156
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
156
|
+
<h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
|
|
157
157
|
</td>
|
|
158
|
-
<td id='
|
|
159
|
-
<a href='https://github.com/
|
|
160
|
-
<img src='https://github.com/
|
|
158
|
+
<td id='olivier-halligon'>
|
|
159
|
+
<a href='https://github.com/AliSoftware'>
|
|
160
|
+
<img src='https://github.com/AliSoftware.png' width='140px;'>
|
|
161
161
|
</a>
|
|
162
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
162
|
+
<h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
|
|
163
163
|
</td>
|
|
164
164
|
</tr>
|
|
165
165
|
<tr>
|
|
166
|
-
<td id='
|
|
167
|
-
<a href='https://github.com/
|
|
168
|
-
<img src='https://github.com/
|
|
166
|
+
<td id='jorge-revuelta-h'>
|
|
167
|
+
<a href='https://github.com/minuscorp'>
|
|
168
|
+
<img src='https://github.com/minuscorp.png' width='140px;'>
|
|
169
169
|
</a>
|
|
170
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
170
|
+
<h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
|
|
171
171
|
</td>
|
|
172
|
-
<td id='
|
|
173
|
-
<a href='https://github.com/
|
|
174
|
-
<img src='https://github.com/
|
|
172
|
+
<td id='roger-oba'>
|
|
173
|
+
<a href='https://github.com/rogerluan'>
|
|
174
|
+
<img src='https://github.com/rogerluan.png' width='140px;'>
|
|
175
175
|
</a>
|
|
176
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
176
|
+
<h4 align='center'><a href='https://twitter.com/rogerluan_'>Roger Oba</a></h4>
|
|
177
177
|
</td>
|
|
178
|
-
<td id='
|
|
179
|
-
<a href='https://github.com/
|
|
180
|
-
<img src='https://github.com/
|
|
178
|
+
<td id='łukasz-grabowski'>
|
|
179
|
+
<a href='https://github.com/lucgrabowski'>
|
|
180
|
+
<img src='https://github.com/lucgrabowski.png' width='140px;'>
|
|
181
181
|
</a>
|
|
182
|
-
<h4 align='center'
|
|
182
|
+
<h4 align='center'>Łukasz Grabowski</h4>
|
|
183
183
|
</td>
|
|
184
|
-
<td id='
|
|
185
|
-
<a href='https://github.com/
|
|
186
|
-
<img src='https://github.com/
|
|
184
|
+
<td id='danielle-tomlinson'>
|
|
185
|
+
<a href='https://github.com/endocrimes'>
|
|
186
|
+
<img src='https://github.com/endocrimes.png' width='140px;'>
|
|
187
187
|
</a>
|
|
188
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
188
|
+
<h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
|
|
189
189
|
</td>
|
|
190
|
-
<td id='
|
|
191
|
-
<a href='https://github.com/
|
|
192
|
-
<img src='https://github.com/
|
|
190
|
+
<td id='fumiya-nakamura'>
|
|
191
|
+
<a href='https://github.com/nafu'>
|
|
192
|
+
<img src='https://github.com/nafu.png' width='140px;'>
|
|
193
193
|
</a>
|
|
194
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
194
|
+
<h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
|
|
195
195
|
</td>
|
|
196
196
|
</tr>
|
|
197
197
|
<tr>
|
|
198
|
-
<td id='
|
|
199
|
-
<a href='https://github.com/
|
|
200
|
-
<img src='https://github.com/
|
|
198
|
+
<td id='kohki-miki'>
|
|
199
|
+
<a href='https://github.com/giginet'>
|
|
200
|
+
<img src='https://github.com/giginet.png' width='140px;'>
|
|
201
201
|
</a>
|
|
202
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
202
|
+
<h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
|
|
203
203
|
</td>
|
|
204
|
-
<td id='
|
|
205
|
-
<a href='https://github.com/
|
|
206
|
-
<img src='https://github.com/
|
|
204
|
+
<td id='daniel-jankowski'>
|
|
205
|
+
<a href='https://github.com/mollyIV'>
|
|
206
|
+
<img src='https://github.com/mollyIV.png' width='140px;'>
|
|
207
207
|
</a>
|
|
208
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
208
|
+
<h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</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,21 @@ module Fastlane
|
|
|
66
66
|
version_number = params[:version]
|
|
67
67
|
platform = params[:platform]
|
|
68
68
|
|
|
69
|
-
# Create filter for
|
|
70
|
-
|
|
69
|
+
# Create filter for get_build_uploads to exclude builds in AWAITING_UPLOAD state
|
|
70
|
+
# AWAITING_UPLOAD builds have no uploadedDate, which would break the sort order
|
|
71
|
+
filter = { state: "PROCESSING,FAILED,COMPLETE" }
|
|
72
|
+
|
|
73
|
+
# Append optional version number filter
|
|
71
74
|
if version_number
|
|
72
|
-
filter["
|
|
75
|
+
filter["cfBundleShortVersionString"] = version_number
|
|
73
76
|
version_number_message = "version #{version_number}"
|
|
74
77
|
else
|
|
75
78
|
version_number_message = "any version"
|
|
76
79
|
end
|
|
77
80
|
|
|
81
|
+
# Append optional platform filter
|
|
78
82
|
if platform
|
|
79
|
-
filter["
|
|
83
|
+
filter["platform"] = Spaceship::ConnectAPI::Platform.map(platform)
|
|
80
84
|
platform_message = "#{platform} platform"
|
|
81
85
|
else
|
|
82
86
|
platform_message = "any platform"
|
|
@@ -84,19 +88,20 @@ module Fastlane
|
|
|
84
88
|
|
|
85
89
|
UI.message("Fetching the latest build number for #{version_number_message}")
|
|
86
90
|
|
|
87
|
-
# Get latest build for optional version number and return build number if found
|
|
88
|
-
|
|
89
|
-
if
|
|
90
|
-
build_nr =
|
|
91
|
-
|
|
92
|
-
|
|
91
|
+
# Get latest build upload for optional version number and return build number if found
|
|
92
|
+
build_upload = Spaceship::ConnectAPI.get_build_uploads(app_id: app.id, filter: filter, sort: "-uploadedDate", limit: 1).first
|
|
93
|
+
if build_upload
|
|
94
|
+
build_nr = build_upload.cf_build_version
|
|
95
|
+
build_v = build_upload.cf_build_short_version_string
|
|
96
|
+
UI.message("Latest upload for version #{build_v} on #{platform_message} is build: #{build_nr}")
|
|
97
|
+
return OpenStruct.new({ build_nr: build_nr, build_v: build_v })
|
|
93
98
|
end
|
|
94
99
|
|
|
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")
|
|
100
|
+
# Let user know that build upload couldn't be found
|
|
101
|
+
UI.important("Could not find a build upload for #{version_number_message} on #{platform_message} on App Store Connect")
|
|
97
102
|
|
|
98
103
|
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")
|
|
104
|
+
UI.user_error!("Could not find a build upload on App Store Connect - and 'initial_build_number' option is not set")
|
|
100
105
|
else
|
|
101
106
|
build_nr = params[:initial_build_number]
|
|
102
107
|
UI.message("Using initial build number of #{build_nr}")
|
|
@@ -140,7 +145,7 @@ module Fastlane
|
|
|
140
145
|
conflicting_options: [:api_key_path]),
|
|
141
146
|
FastlaneCore::ConfigItem.new(key: :initial_build_number,
|
|
142
147
|
env_name: "INITIAL_BUILD_NUMBER",
|
|
143
|
-
description: "sets the build number to given value if no build is in current train",
|
|
148
|
+
description: "sets the build number to given value if no build (upload) is in current train",
|
|
144
149
|
skip_type_validation: true), # as we also allow integers, which we convert to strings anyway
|
|
145
150
|
FastlaneCore::ConfigItem.new(key: :app_identifier,
|
|
146
151
|
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.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
|
|
@@ -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) {
|