fastlane 2.238.0 → 2.240.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 +98 -98
- data/bin/fastlane +2 -2
- data/deliver/lib/deliver/html_generator.rb +1 -1
- data/deliver/lib/deliver/options.rb +8 -0
- data/deliver/lib/deliver/runner.rb +5 -4
- data/deliver/lib/deliver/upload_metadata.rb +22 -0
- data/deliver/lib/deliver/upload_screenshots.rb +12 -4
- data/fastlane/lib/fastlane/actions/build_and_upload_to_appetize.rb +3 -1
- data/fastlane/lib/fastlane/actions/changelog_from_git_commits.rb +7 -2
- data/fastlane/lib/fastlane/actions/docs/get_push_certificate.md +6 -0
- data/fastlane/lib/fastlane/actions/lcov.rb +3 -1
- data/fastlane/lib/fastlane/actions/spaceship_logs.rb +4 -2
- data/fastlane/lib/fastlane/actions/swiftlint.rb +6 -3
- data/fastlane/lib/fastlane/actions/update_project_provisioning.rb +3 -1
- data/fastlane/lib/fastlane/helper/git_helper.rb +4 -2
- data/fastlane/lib/fastlane/helper/sh_helper.rb +9 -1
- data/fastlane/lib/fastlane/plugins/template/%gem_name%.gemspec.erb +1 -1
- data/fastlane/lib/fastlane/plugins/template/.rubocop.yml +5 -1
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/fastlane/swift/Deliverfile.swift +1 -1
- data/fastlane/swift/DeliverfileProtocol.swift +8 -1
- data/fastlane/swift/Fastlane.swift +75 -3
- data/fastlane/swift/Gymfile.swift +1 -1
- data/fastlane/swift/GymfileProtocol.swift +8 -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 +8 -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 +8 -1
- data/fastlane_core/lib/fastlane_core/fastlane_pty.rb +20 -7
- data/fastlane_core/lib/fastlane_core/ipa_file_analyser.rb +1 -1
- data/fastlane_core/lib/fastlane_core/itunes_transporter.rb +16 -13
- data/fastlane_core/lib/fastlane_core/project.rb +19 -0
- data/gym/lib/gym/options.rb +5 -0
- data/match/lib/match/nuke.rb +2 -2
- data/match/lib/match/storage/git_storage.rb +1 -4
- data/match/lib/match/storage/google_cloud_storage.rb +6 -1
- data/pem/lib/pem/manager.rb +5 -1
- data/pem/lib/pem/options.rb +6 -0
- data/pilot/lib/pilot/build_manager.rb +32 -0
- data/pilot/lib/pilot/options.rb +8 -0
- data/scan/lib/scan/options.rb +5 -0
- data/sigh/lib/assets/resign.sh +21 -9
- data/snapshot/lib/snapshot/options.rb +5 -0
- data/spaceship/lib/spaceship/client.rb +137 -15
- data/spaceship/lib/spaceship/connect_api/models/app_store_version.rb +16 -0
- data/spaceship/lib/spaceship/connect_api/models/routing_app_coverage.rb +75 -0
- data/spaceship/lib/spaceship/connect_api/token.rb +6 -1
- data/spaceship/lib/spaceship/connect_api/tunes/tunes.rb +45 -0
- data/spaceship/lib/spaceship/connect_api.rb +1 -0
- data/spaceship/lib/spaceship/du/upload_file.rb +4 -3
- data/supply/lib/supply/client.rb +6 -0
- data/supply/lib/supply/reader.rb +15 -0
- data/trainer/lib/trainer/xcresult/helper.rb +27 -13
- metadata +34 -50
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 7467cf01821db5d82582d55e830e209b07d0c3ed4793686fb31e91bba27b66a1
|
|
4
|
+
data.tar.gz: b517b0bdb057a42827caa42ba504cd450d3e40169c8191c280cee8c6ab2544b8
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 683a57ea89b9bf4ae28def60d5bbfaa5221081dac34e840bf4c597f3788f7b8c295237a0862847a519aedd28ef51ffa7fb4da1a576afd2654e5548761ccf4b51
|
|
7
|
+
data.tar.gz: 9c436bf7d1ba66d55a8d68aeb38caf6d3c1d56fd5c48c90cd5642865163d80ddbe367f0b9cc4ddd18477b9f95d40ed733b9965cc42a9f16928774c490114ebd7
|
data/README.md
CHANGED
|
@@ -36,75 +36,81 @@ 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='danielle-tomlinson'>
|
|
40
|
+
<a href='https://github.com/endocrimes'>
|
|
41
|
+
<img src='https://github.com/endocrimes.png' width='140px;'>
|
|
42
42
|
</a>
|
|
43
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
43
|
+
<h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
|
|
44
44
|
</td>
|
|
45
|
-
<td id='
|
|
46
|
-
<a href='https://github.com/
|
|
47
|
-
<img src='https://github.com/
|
|
45
|
+
<td id='connor-tumbleson'>
|
|
46
|
+
<a href='https://github.com/ibotpeaches'>
|
|
47
|
+
<img src='https://github.com/ibotpeaches.png' width='140px;'>
|
|
48
48
|
</a>
|
|
49
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
49
|
+
<h4 align='center'><a href='https://twitter.com/ibotpeaches'>Connor Tumbleson</a></h4>
|
|
50
50
|
</td>
|
|
51
|
-
<td id='
|
|
52
|
-
<a href='https://github.com/
|
|
53
|
-
<img src='https://github.com/
|
|
51
|
+
<td id='luka-mirosevic'>
|
|
52
|
+
<a href='https://github.com/lmirosevic'>
|
|
53
|
+
<img src='https://github.com/lmirosevic.png' width='140px;'>
|
|
54
54
|
</a>
|
|
55
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
55
|
+
<h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
|
|
56
56
|
</td>
|
|
57
|
-
<td id='
|
|
58
|
-
<a href='https://github.com/
|
|
59
|
-
<img src='https://github.com/
|
|
57
|
+
<td id='iulian-onofrei'>
|
|
58
|
+
<a href='https://github.com/revolter'>
|
|
59
|
+
<img src='https://github.com/revolter.png' width='140px;'>
|
|
60
60
|
</a>
|
|
61
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
61
|
+
<h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
|
|
62
62
|
</td>
|
|
63
|
-
<td id='
|
|
64
|
-
<a href='https://github.com/
|
|
65
|
-
<img src='https://github.com/
|
|
63
|
+
<td id='fumiya-nakamura'>
|
|
64
|
+
<a href='https://github.com/nafu'>
|
|
65
|
+
<img src='https://github.com/nafu.png' width='140px;'>
|
|
66
66
|
</a>
|
|
67
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
67
|
+
<h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
|
|
68
68
|
</td>
|
|
69
69
|
</tr>
|
|
70
70
|
<tr>
|
|
71
|
-
<td id='
|
|
72
|
-
<a href='https://github.com/
|
|
73
|
-
<img src='https://github.com/
|
|
71
|
+
<td id='jérôme-lacoste'>
|
|
72
|
+
<a href='https://github.com/lacostej'>
|
|
73
|
+
<img src='https://github.com/lacostej.png' width='140px;'>
|
|
74
74
|
</a>
|
|
75
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
75
|
+
<h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
|
|
76
76
|
</td>
|
|
77
|
-
<td id='
|
|
78
|
-
<a href='https://github.com/
|
|
79
|
-
<img src='https://github.com/
|
|
77
|
+
<td id='aaron-brager'>
|
|
78
|
+
<a href='https://github.com/getaaron'>
|
|
79
|
+
<img src='https://github.com/getaaron.png' width='140px;'>
|
|
80
80
|
</a>
|
|
81
|
-
<h4 align='center'
|
|
81
|
+
<h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
|
|
82
82
|
</td>
|
|
83
|
-
<td id='
|
|
84
|
-
<a href='https://github.com/
|
|
85
|
-
<img src='https://github.com/
|
|
83
|
+
<td id='jimmy-dee'>
|
|
84
|
+
<a href='https://github.com/jdee'>
|
|
85
|
+
<img src='https://github.com/jdee.png' width='140px;'>
|
|
86
86
|
</a>
|
|
87
|
-
<h4 align='center'
|
|
87
|
+
<h4 align='center'>Jimmy Dee</h4>
|
|
88
88
|
</td>
|
|
89
|
-
<td id='
|
|
90
|
-
<a href='https://github.com/
|
|
91
|
-
<img src='https://github.com/
|
|
89
|
+
<td id='roger-oba'>
|
|
90
|
+
<a href='https://github.com/rogerluan'>
|
|
91
|
+
<img src='https://github.com/rogerluan.png' width='140px;'>
|
|
92
92
|
</a>
|
|
93
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
93
|
+
<h4 align='center'><a href='https://twitter.com/rogerluan_'>Roger Oba</a></h4>
|
|
94
94
|
</td>
|
|
95
|
-
<td id='
|
|
96
|
-
<a href='https://github.com/
|
|
97
|
-
<img src='https://github.com/
|
|
95
|
+
<td id='matthew-ellis'>
|
|
96
|
+
<a href='https://github.com/matthewellis'>
|
|
97
|
+
<img src='https://github.com/matthewellis.png' width='140px;'>
|
|
98
98
|
</a>
|
|
99
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
99
|
+
<h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
|
|
100
100
|
</td>
|
|
101
101
|
</tr>
|
|
102
102
|
<tr>
|
|
103
|
-
<td id='
|
|
104
|
-
<a href='https://github.com/
|
|
105
|
-
<img src='https://github.com/
|
|
103
|
+
<td id='max-ott'>
|
|
104
|
+
<a href='https://github.com/max-ott'>
|
|
105
|
+
<img src='https://github.com/max-ott.png' width='140px;'>
|
|
106
106
|
</a>
|
|
107
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
107
|
+
<h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
|
|
108
|
+
</td>
|
|
109
|
+
<td id='daniel-jankowski'>
|
|
110
|
+
<a href='https://github.com/mollyIV'>
|
|
111
|
+
<img src='https://github.com/mollyIV.png' width='140px;'>
|
|
112
|
+
</a>
|
|
113
|
+
<h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
|
|
108
114
|
</td>
|
|
109
115
|
<td id='manish-rathi'>
|
|
110
116
|
<a href='https://github.com/crazymanish'>
|
|
@@ -112,17 +118,11 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
|
112
118
|
</a>
|
|
113
119
|
<h4 align='center'><a href='https://twitter.com/iammanishrathi'>Manish Rathi</a></h4>
|
|
114
120
|
</td>
|
|
115
|
-
<td id='
|
|
116
|
-
<a href='https://github.com/
|
|
117
|
-
<img src='https://github.com/
|
|
118
|
-
</a>
|
|
119
|
-
<h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
|
|
120
|
-
</td>
|
|
121
|
-
<td id='matthew-ellis'>
|
|
122
|
-
<a href='https://github.com/matthewellis'>
|
|
123
|
-
<img src='https://github.com/matthewellis.png' width='140px;'>
|
|
121
|
+
<td id='manu-wallner'>
|
|
122
|
+
<a href='https://github.com/milch'>
|
|
123
|
+
<img src='https://github.com/milch.png' width='140px;'>
|
|
124
124
|
</a>
|
|
125
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
125
|
+
<h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
|
|
126
126
|
</td>
|
|
127
127
|
<td id='satoshi-namai'>
|
|
128
128
|
<a href='https://github.com/ainame'>
|
|
@@ -132,23 +132,23 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
|
132
132
|
</td>
|
|
133
133
|
</tr>
|
|
134
134
|
<tr>
|
|
135
|
-
<td id='
|
|
136
|
-
<a href='https://github.com/
|
|
137
|
-
<img src='https://github.com/
|
|
135
|
+
<td id='maksym-grebenets'>
|
|
136
|
+
<a href='https://github.com/mgrebenets'>
|
|
137
|
+
<img src='https://github.com/mgrebenets.png' width='140px;'>
|
|
138
138
|
</a>
|
|
139
|
-
<h4 align='center'>
|
|
139
|
+
<h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
|
|
140
140
|
</td>
|
|
141
|
-
<td id='
|
|
142
|
-
<a href='https://github.com/
|
|
143
|
-
<img src='https://github.com/
|
|
141
|
+
<td id='olivier-halligon'>
|
|
142
|
+
<a href='https://github.com/AliSoftware'>
|
|
143
|
+
<img src='https://github.com/AliSoftware.png' width='140px;'>
|
|
144
144
|
</a>
|
|
145
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
145
|
+
<h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
|
|
146
146
|
</td>
|
|
147
|
-
<td id='
|
|
148
|
-
<a href='https://github.com/
|
|
149
|
-
<img src='https://github.com/
|
|
147
|
+
<td id='josh-holtz'>
|
|
148
|
+
<a href='https://github.com/joshdholtz'>
|
|
149
|
+
<img src='https://github.com/joshdholtz.png' width='140px;'>
|
|
150
150
|
</a>
|
|
151
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
151
|
+
<h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
|
|
152
152
|
</td>
|
|
153
153
|
<td id='jan-piotrowski'>
|
|
154
154
|
<a href='https://github.com/janpio'>
|
|
@@ -156,57 +156,57 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
|
156
156
|
</a>
|
|
157
157
|
<h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
|
|
158
158
|
</td>
|
|
159
|
-
<td id='
|
|
160
|
-
<a href='https://github.com/
|
|
161
|
-
<img src='https://github.com/
|
|
159
|
+
<td id='felix-krause'>
|
|
160
|
+
<a href='https://github.com/KrauseFx'>
|
|
161
|
+
<img src='https://github.com/KrauseFx.png' width='140px;'>
|
|
162
162
|
</a>
|
|
163
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
163
|
+
<h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
|
|
164
164
|
</td>
|
|
165
165
|
</tr>
|
|
166
166
|
<tr>
|
|
167
|
-
<td id='
|
|
168
|
-
<a href='https://github.com/
|
|
169
|
-
<img src='https://github.com/
|
|
167
|
+
<td id='joshua-liebowitz'>
|
|
168
|
+
<a href='https://github.com/taquitos'>
|
|
169
|
+
<img src='https://github.com/taquitos.png' width='140px;'>
|
|
170
170
|
</a>
|
|
171
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
171
|
+
<h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
|
|
172
172
|
</td>
|
|
173
|
-
<td id='
|
|
174
|
-
<a href='https://github.com/
|
|
175
|
-
<img src='https://github.com/
|
|
173
|
+
<td id='łukasz-grabowski'>
|
|
174
|
+
<a href='https://github.com/lucgrabowski'>
|
|
175
|
+
<img src='https://github.com/lucgrabowski.png' width='140px;'>
|
|
176
176
|
</a>
|
|
177
|
-
<h4 align='center'
|
|
177
|
+
<h4 align='center'>Łukasz Grabowski</h4>
|
|
178
178
|
</td>
|
|
179
|
-
<td id='
|
|
180
|
-
<a href='https://github.com/
|
|
181
|
-
<img src='https://github.com/
|
|
179
|
+
<td id='helmut-januschka'>
|
|
180
|
+
<a href='https://github.com/hjanuschka'>
|
|
181
|
+
<img src='https://github.com/hjanuschka.png' width='140px;'>
|
|
182
182
|
</a>
|
|
183
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
183
|
+
<h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
|
|
184
184
|
</td>
|
|
185
|
-
<td id='
|
|
186
|
-
<a href='https://github.com/
|
|
187
|
-
<img src='https://github.com/
|
|
185
|
+
<td id='stefan-natchev'>
|
|
186
|
+
<a href='https://github.com/snatchev'>
|
|
187
|
+
<img src='https://github.com/snatchev.png' width='140px;'>
|
|
188
188
|
</a>
|
|
189
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
189
|
+
<h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
|
|
190
190
|
</td>
|
|
191
|
-
<td id='
|
|
192
|
-
<a href='https://github.com/
|
|
193
|
-
<img src='https://github.com/
|
|
191
|
+
<td id='kohki-miki'>
|
|
192
|
+
<a href='https://github.com/giginet'>
|
|
193
|
+
<img src='https://github.com/giginet.png' width='140px;'>
|
|
194
194
|
</a>
|
|
195
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
195
|
+
<h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
|
|
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='jorge-revuelta-h'>
|
|
200
|
+
<a href='https://github.com/minuscorp'>
|
|
201
|
+
<img src='https://github.com/minuscorp.png' width='140px;'>
|
|
202
202
|
</a>
|
|
203
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
203
|
+
<h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
|
|
204
204
|
</td>
|
|
205
|
-
<td id='
|
|
206
|
-
<a href='https://github.com/
|
|
207
|
-
<img src='https://github.com/
|
|
205
|
+
<td id='andrew-mcburney'>
|
|
206
|
+
<a href='https://github.com/armcburney'>
|
|
207
|
+
<img src='https://github.com/armcburney.png' width='140px;'>
|
|
208
208
|
</a>
|
|
209
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
209
|
+
<h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
|
|
210
210
|
</td>
|
|
211
211
|
</table>
|
|
212
212
|
|
data/bin/fastlane
CHANGED
|
@@ -24,7 +24,7 @@ module Deliver
|
|
|
24
24
|
UI.important("Verifying the upload via the HTML file can be disabled by either adding")
|
|
25
25
|
UI.important("`force true` to your Deliverfile or using `fastlane deliver --force`")
|
|
26
26
|
|
|
27
|
-
system("open
|
|
27
|
+
system("open", html_path)
|
|
28
28
|
okay = UI.confirm("Does the Preview on path '#{html_path}' look okay for you?")
|
|
29
29
|
|
|
30
30
|
if okay
|
|
@@ -420,6 +420,14 @@ module Deliver
|
|
|
420
420
|
env_name: "DELIVER_APP_REVIEW_ATTACHMENT_FILE",
|
|
421
421
|
description: "Metadata: Path to the app review attachment file",
|
|
422
422
|
optional: true),
|
|
423
|
+
FastlaneCore::ConfigItem.new(key: :routing_app_coverage_file,
|
|
424
|
+
env_name: "DELIVER_ROUTING_APP_COVERAGE_FILE",
|
|
425
|
+
description: "Metadata: Path to the routing app coverage file (`.geojson`) that is required for routing apps",
|
|
426
|
+
optional: true,
|
|
427
|
+
verify_block: proc do |value|
|
|
428
|
+
UI.user_error!("Could not find routing app coverage file at path '#{File.expand_path(value)}'") unless File.exist?(value)
|
|
429
|
+
UI.user_error!("Routing app coverage file must be a .geojson file") unless File.extname(value).casecmp(".geojson").zero?
|
|
430
|
+
end),
|
|
423
431
|
# Localised
|
|
424
432
|
FastlaneCore::ConfigItem.new(key: :description,
|
|
425
433
|
description: "Metadata: The localised app description",
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
require 'tmpdir'
|
|
1
2
|
require 'precheck/options'
|
|
2
3
|
require 'precheck/runner'
|
|
3
4
|
require 'fastlane_core/configuration/configuration'
|
|
@@ -196,7 +197,7 @@ module Deliver
|
|
|
196
197
|
package_path = FastlaneCore::IpaUploadPackageBuilder.new.generate(
|
|
197
198
|
app_id: Deliver.cache[:app].id,
|
|
198
199
|
ipa_path: ipa_path,
|
|
199
|
-
package_path:
|
|
200
|
+
package_path: Dir.tmpdir,
|
|
200
201
|
platform: platform
|
|
201
202
|
)
|
|
202
203
|
result = transporter.verify(package_path: package_path, asset_path: ipa_path, platform: platform)
|
|
@@ -204,7 +205,7 @@ module Deliver
|
|
|
204
205
|
package_path = FastlaneCore::PkgUploadPackageBuilder.new.generate(
|
|
205
206
|
app_id: Deliver.cache[:app].id,
|
|
206
207
|
pkg_path: pkg_path,
|
|
207
|
-
package_path:
|
|
208
|
+
package_path: Dir.tmpdir,
|
|
208
209
|
platform: platform
|
|
209
210
|
)
|
|
210
211
|
result = transporter.verify(package_path: package_path, asset_path: pkg_path, platform: platform)
|
|
@@ -233,7 +234,7 @@ module Deliver
|
|
|
233
234
|
package_path = FastlaneCore::IpaUploadPackageBuilder.new.generate(
|
|
234
235
|
app_id: Deliver.cache[:app].id,
|
|
235
236
|
ipa_path: ipa_path,
|
|
236
|
-
package_path:
|
|
237
|
+
package_path: Dir.tmpdir,
|
|
237
238
|
platform: platform
|
|
238
239
|
)
|
|
239
240
|
result = transporter.upload(package_path: package_path, asset_path: ipa_path, platform: platform)
|
|
@@ -241,7 +242,7 @@ module Deliver
|
|
|
241
242
|
package_path = FastlaneCore::PkgUploadPackageBuilder.new.generate(
|
|
242
243
|
app_id: Deliver.cache[:app].id,
|
|
243
244
|
pkg_path: pkg_path,
|
|
244
|
-
package_path:
|
|
245
|
+
package_path: Dir.tmpdir,
|
|
245
246
|
platform: platform
|
|
246
247
|
)
|
|
247
248
|
result = transporter.upload(package_path: package_path, asset_path: pkg_path, platform: platform)
|
|
@@ -357,6 +357,7 @@ module Deliver
|
|
|
357
357
|
review_information(version)
|
|
358
358
|
app_clip_review_information(version)
|
|
359
359
|
review_attachment_file(version)
|
|
360
|
+
routing_app_coverage_file(version)
|
|
360
361
|
app_rating(app_info)
|
|
361
362
|
end
|
|
362
363
|
|
|
@@ -766,6 +767,27 @@ module Deliver
|
|
|
766
767
|
end
|
|
767
768
|
end
|
|
768
769
|
|
|
770
|
+
def routing_app_coverage_file(version)
|
|
771
|
+
# Skip logic entirely if no coverage file passed. So status-quo stays the same.
|
|
772
|
+
return unless options[:routing_app_coverage_file]
|
|
773
|
+
|
|
774
|
+
routing_app_coverage =
|
|
775
|
+
begin
|
|
776
|
+
version.fetch_routing_app_coverage
|
|
777
|
+
rescue => error
|
|
778
|
+
UI.error("Error fetching routing app coverage - #{error.message}")
|
|
779
|
+
nil
|
|
780
|
+
end
|
|
781
|
+
|
|
782
|
+
if routing_app_coverage
|
|
783
|
+
UI.message("Removing previous routing app coverage file from App Store Connect")
|
|
784
|
+
routing_app_coverage.delete!
|
|
785
|
+
end
|
|
786
|
+
|
|
787
|
+
UI.message("Uploading routing app coverage file to App Store Connect")
|
|
788
|
+
version.upload_routing_app_coverage(path: options[:routing_app_coverage_file])
|
|
789
|
+
end
|
|
790
|
+
|
|
769
791
|
def app_rating(app_info)
|
|
770
792
|
return unless options[:app_rating_config_path]
|
|
771
793
|
|
|
@@ -171,13 +171,17 @@ module Deliver
|
|
|
171
171
|
def wait_for_complete(iterator, timeout_seconds)
|
|
172
172
|
start_time = Time.now
|
|
173
173
|
loop do
|
|
174
|
+
# App Store Connect publishes a screenshot's `sourceFileChecksum` asynchronously,
|
|
175
|
+
# shortly after its state becomes COMPLETE. (#30094)
|
|
176
|
+
number_of_screenshots_missing_checksum = 0
|
|
174
177
|
states = iterator.each_app_screenshot.map { |_, _, app_screenshot| app_screenshot }.each_with_object({}) do |app_screenshot, hash|
|
|
175
178
|
state = app_screenshot.asset_delivery_state['state']
|
|
176
179
|
hash[state] ||= 0
|
|
177
180
|
hash[state] += 1
|
|
181
|
+
number_of_screenshots_missing_checksum += 1 if state == 'COMPLETE' && app_screenshot.source_file_checksum.nil?
|
|
178
182
|
end
|
|
179
183
|
|
|
180
|
-
is_processing = states.fetch('UPLOAD_COMPLETE', 0) > 0
|
|
184
|
+
is_processing = states.fetch('UPLOAD_COMPLETE', 0) > 0 || number_of_screenshots_missing_checksum > 0
|
|
181
185
|
return states unless is_processing
|
|
182
186
|
|
|
183
187
|
if Time.now - start_time > timeout_seconds
|
|
@@ -185,7 +189,11 @@ module Deliver
|
|
|
185
189
|
return states
|
|
186
190
|
end
|
|
187
191
|
|
|
188
|
-
|
|
192
|
+
if number_of_screenshots_missing_checksum > 0
|
|
193
|
+
UI.verbose("There are still incomplete screenshots - #{states}, missing checksum: #{number_of_screenshots_missing_checksum}")
|
|
194
|
+
else
|
|
195
|
+
UI.verbose("There are still incomplete screenshots - #{states}")
|
|
196
|
+
end
|
|
189
197
|
sleep(5)
|
|
190
198
|
end
|
|
191
199
|
end
|
|
@@ -205,9 +213,9 @@ module Deliver
|
|
|
205
213
|
UI.user_error!("Failed verification of all screenshots uploaded... #{incomplete_screenshot_count} incomplete screenshot(s) still exist")
|
|
206
214
|
else
|
|
207
215
|
UI.error("Failed to upload all screenshots... Tries remaining: #{tries}")
|
|
208
|
-
# Delete bad entries before retry
|
|
216
|
+
# Delete bad entries before retry (not complete OR missing checksum)
|
|
209
217
|
iterator.each_app_screenshot do |_, _, app_screenshot|
|
|
210
|
-
app_screenshot.delete! unless app_screenshot.complete?
|
|
218
|
+
app_screenshot.delete! unless app_screenshot.complete? && !app_screenshot.source_file_checksum.nil?
|
|
211
219
|
end
|
|
212
220
|
upload_screenshots(localizations, screenshots_per_language, timeout_seconds, tries: tries)
|
|
213
221
|
end
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
require 'tmpdir'
|
|
2
|
+
|
|
1
3
|
module Fastlane
|
|
2
4
|
module Actions
|
|
3
5
|
class BuildAndUploadToAppetizeAction < Action
|
|
4
6
|
def self.run(params)
|
|
5
|
-
tmp_path = "
|
|
7
|
+
tmp_path = File.join(Dir.tmpdir, "fastlane_build")
|
|
6
8
|
|
|
7
9
|
xcodebuild_configs = params[:xcodebuild]
|
|
8
10
|
xcodebuild_configs[:sdk] = "iphonesimulator"
|
|
@@ -37,9 +37,9 @@ module Fastlane
|
|
|
37
37
|
|
|
38
38
|
Dir.chdir(params[:path]) do
|
|
39
39
|
if params[:commits_count]
|
|
40
|
-
changelog = Actions.git_log_last_commits(params[:pretty], params[:commits_count], merge_commit_filtering, params[:date_format], params[:ancestry_path], params[:app_path])
|
|
40
|
+
changelog = Actions.git_log_last_commits(params[:pretty], params[:commits_count], params[:matching_pattern], merge_commit_filtering, params[:date_format], params[:ancestry_path], params[:app_path])
|
|
41
41
|
else
|
|
42
|
-
changelog = Actions.git_log_between(params[:pretty], from, to, merge_commit_filtering, params[:date_format], params[:ancestry_path], params[:app_path])
|
|
42
|
+
changelog = Actions.git_log_between(params[:pretty], from, to, params[:matching_pattern], merge_commit_filtering, params[:date_format], params[:ancestry_path], params[:app_path])
|
|
43
43
|
end
|
|
44
44
|
|
|
45
45
|
changelog = changelog.gsub("\n\n", "\n") if changelog # as there are duplicate newlines
|
|
@@ -104,6 +104,10 @@ module Fastlane
|
|
|
104
104
|
description: 'The format applied to each commit while generating the collected value',
|
|
105
105
|
optional: true,
|
|
106
106
|
default_value: '%B'),
|
|
107
|
+
FastlaneCore::ConfigItem.new(key: :matching_pattern,
|
|
108
|
+
env_name: 'FL_CHANGELOG_FROM_GIT_COMMITS_MATCHING_PATTERN',
|
|
109
|
+
description: 'A regexp pattern to filter only the commits matching the pattern',
|
|
110
|
+
optional: true),
|
|
107
111
|
FastlaneCore::ConfigItem.new(key: :date_format,
|
|
108
112
|
env_name: 'FL_CHANGELOG_FROM_GIT_COMMITS_DATE_FORMAT',
|
|
109
113
|
description: 'The date format applied to each commit while generating the collected value',
|
|
@@ -179,6 +183,7 @@ module Fastlane
|
|
|
179
183
|
pretty: "- (%ae) %s", # Optional, lets you provide a custom format to apply to each commit when generating the changelog text
|
|
180
184
|
date_format: "short", # Optional, lets you provide an additional date format to dates within the pretty-formatted string
|
|
181
185
|
match_lightweight_tag: false, # Optional, lets you ignore lightweight (non-annotated) tags when searching for the last tag
|
|
186
|
+
matching_pattern: "[.*?].*", # Optional, lets you filter out commits not matching the regex pattern
|
|
182
187
|
merge_commit_filtering: "exclude_merges" # Optional, lets you filter out merge commits
|
|
183
188
|
)'
|
|
184
189
|
]
|
|
@@ -74,6 +74,12 @@ If you want to generate a Website Push certificate:
|
|
|
74
74
|
fastlane pem --website_push
|
|
75
75
|
```
|
|
76
76
|
|
|
77
|
+
If you want to generate a VoIP Services certificate (the type PushKit requires):
|
|
78
|
+
|
|
79
|
+
```no-highlight
|
|
80
|
+
fastlane pem --voip_push
|
|
81
|
+
```
|
|
82
|
+
|
|
77
83
|
Set a password for your `p12` file:
|
|
78
84
|
|
|
79
85
|
```no-highlight
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
require 'tmpdir'
|
|
2
|
+
|
|
1
3
|
module Fastlane
|
|
2
4
|
module Actions
|
|
3
5
|
class LcovAction < Action
|
|
@@ -42,7 +44,7 @@ module Fastlane
|
|
|
42
44
|
end
|
|
43
45
|
|
|
44
46
|
def self.gen_cov(options)
|
|
45
|
-
tmp_cov_file = "
|
|
47
|
+
tmp_cov_file = File.join(Dir.tmpdir, "coverage.info")
|
|
46
48
|
output_dir = options[:output_dir]
|
|
47
49
|
derived_data_path = derived_data_dir(options)
|
|
48
50
|
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
require 'tmpdir'
|
|
2
|
+
|
|
1
3
|
module Fastlane
|
|
2
4
|
module Actions
|
|
3
5
|
class SpaceshipLogsAction < Action
|
|
@@ -8,8 +10,8 @@ module Fastlane
|
|
|
8
10
|
copy_to_path = params[:copy_to_path]
|
|
9
11
|
copy_to_clipboard = params[:copy_to_clipboard]
|
|
10
12
|
|
|
11
|
-
# Get log files
|
|
12
|
-
files = Dir.glob("
|
|
13
|
+
# Get log files, from wherever Spaceship::Client#logger writes them.
|
|
14
|
+
files = Dir.glob(File.join(Dir.tmpdir, "spaceship*.log")).sort_by { |f| File.mtime(f) }.reverse
|
|
13
15
|
|
|
14
16
|
if files.size == 0
|
|
15
17
|
UI.message("No Spaceship log files found")
|
|
@@ -44,7 +44,10 @@ module Fastlane
|
|
|
44
44
|
begin
|
|
45
45
|
Actions.sh(command)
|
|
46
46
|
rescue
|
|
47
|
-
|
|
47
|
+
# $? is the status of the last subprocess this thread ran, not
|
|
48
|
+
# necessarily this one: nil when the command never launched, and stale
|
|
49
|
+
# when something else ran in between. Only report it when it is there.
|
|
50
|
+
handle_swiftlint_error(params[:ignore_exit_status], $?&.exitstatus)
|
|
48
51
|
raise if params[:raise_if_swiftlint_error]
|
|
49
52
|
end
|
|
50
53
|
end
|
|
@@ -248,10 +251,10 @@ module Fastlane
|
|
|
248
251
|
end
|
|
249
252
|
|
|
250
253
|
UI.important("")
|
|
251
|
-
UI.important("SwiftLint finished with exit code #{exit_status}, #{failure_suffix}")
|
|
254
|
+
UI.important("SwiftLint finished with exit code #{exit_status || 'unknown'}, #{failure_suffix}")
|
|
252
255
|
UI.important(secondary_message)
|
|
253
256
|
UI.important("")
|
|
254
|
-
UI.user_error!("SwiftLint finished with errors (exit code: #{exit_status})") unless ignore_exit_status
|
|
257
|
+
UI.user_error!("SwiftLint finished with errors (exit code: #{exit_status || 'unknown'})") unless ignore_exit_status
|
|
255
258
|
end
|
|
256
259
|
end
|
|
257
260
|
end
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# coding: utf-8
|
|
2
2
|
|
|
3
|
+
require 'tmpdir'
|
|
4
|
+
|
|
3
5
|
module Fastlane
|
|
4
6
|
module Actions
|
|
5
7
|
module SharedValues
|
|
@@ -146,7 +148,7 @@ module Fastlane
|
|
|
146
148
|
FastlaneCore::ConfigItem.new(key: :certificate,
|
|
147
149
|
env_name: "FL_PROJECT_PROVISIONING_CERTIFICATE_PATH",
|
|
148
150
|
description: "Path to apple root certificate",
|
|
149
|
-
default_value: "
|
|
151
|
+
default_value: File.join(Dir.tmpdir, "AppleIncRootCertificate.cer")),
|
|
150
152
|
FastlaneCore::ConfigItem.new(key: :code_signing_identity,
|
|
151
153
|
env_name: "FL_PROJECT_PROVISIONING_CODE_SIGN_IDENTITY",
|
|
152
154
|
description: "Code sign identity for build configuration",
|
|
@@ -9,9 +9,10 @@ module Fastlane
|
|
|
9
9
|
end.freeze
|
|
10
10
|
end
|
|
11
11
|
|
|
12
|
-
def self.git_log_between(pretty_format, from, to, merge_commit_filtering, date_format = nil, ancestry_path, app_path)
|
|
12
|
+
def self.git_log_between(pretty_format, from, to, matching_pattern, merge_commit_filtering, date_format = nil, ancestry_path, app_path)
|
|
13
13
|
command = %w(git log)
|
|
14
14
|
command << "--pretty=#{pretty_format}"
|
|
15
|
+
command << "--grep=#{matching_pattern}" if matching_pattern
|
|
15
16
|
command << "--date=#{date_format}" if date_format
|
|
16
17
|
command << '--ancestry-path' if ancestry_path
|
|
17
18
|
command << "#{from}...#{to}"
|
|
@@ -24,9 +25,10 @@ module Fastlane
|
|
|
24
25
|
nil
|
|
25
26
|
end
|
|
26
27
|
|
|
27
|
-
def self.git_log_last_commits(pretty_format, commit_count, merge_commit_filtering, date_format = nil, ancestry_path, app_path)
|
|
28
|
+
def self.git_log_last_commits(pretty_format, commit_count, matching_pattern, merge_commit_filtering, date_format = nil, ancestry_path, app_path)
|
|
28
29
|
command = %w(git log)
|
|
29
30
|
command << "--pretty=#{pretty_format}"
|
|
31
|
+
command << "--grep=#{matching_pattern}" if matching_pattern
|
|
30
32
|
command << "--date=#{date_format}" if date_format
|
|
31
33
|
command << '--ancestry-path' if ancestry_path
|
|
32
34
|
command << '-n' << commit_count.to_s
|