fastlane 2.221.1 → 2.222.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 +100 -100
- data/deliver/lib/deliver/options.rb +1 -1
- data/deliver/lib/deliver/runner.rb +2 -2
- data/fastlane/lib/fastlane/actions/app_store_build_number.rb +1 -1
- data/fastlane/lib/fastlane/actions/docs/upload_to_app_store.md.erb +1 -0
- data/fastlane/lib/fastlane/actions/download_dsyms.rb +2 -2
- data/fastlane/lib/fastlane/actions/ensure_git_status_clean.rb +16 -1
- data/fastlane/lib/fastlane/actions/latest_testflight_build_number.rb +1 -1
- data/fastlane/lib/fastlane/actions/set_changelog.rb +3 -3
- data/fastlane/lib/fastlane/fast_file.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 +4 -4
- 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/swift/formatting/Brewfile.lock.json +17 -17
- data/gym/lib/gym/generators/build_command_generator.rb +1 -1
- data/spaceship/lib/spaceship/connect_api/models/app.rb +10 -0
- data/spaceship/lib/spaceship/connect_api/models/app_availability.rb +23 -0
- data/spaceship/lib/spaceship/connect_api/models/territory_availability.rb +62 -0
- data/spaceship/lib/spaceship/connect_api/tunes/tunes.rb +9 -0
- data/spaceship/lib/spaceship/connect_api.rb +2 -0
- data/spaceship/lib/spaceship/tunes/application.rb +1 -1
- data/spaceship/lib/spaceship/tunes/tunes_client.rb +2 -0
- data/trainer/lib/trainer/test_parser.rb +27 -2
- metadata +20 -18
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 3c2fcb0e5c62891ef4b01994e10d1c7880f0738f5f289d28633e983e657eede5
|
|
4
|
+
data.tar.gz: 5e56397ff26ad27aee638525ed836aea56749477029a81fd263ac747da7fb760
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 38e276729f76d983d1e61807d6502cd8d09b9b357be64b04f2045870db69803923e928566fd2df06e9727d5d69e58063837c70c32a5f9d2c6ef9693d6aa195b0
|
|
7
|
+
data.tar.gz: 23b475e6e9dede5602fceebd40be36fc3026a74e9b29d90f5942e4a084761bd6820f03d77733f8700a21957384ed52d560d089126a067c74475678eea42426e4
|
data/README.md
CHANGED
|
@@ -35,43 +35,81 @@ 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='manish-rathi'>
|
|
39
|
+
<a href='https://github.com/crazymanish'>
|
|
40
|
+
<img src='https://github.com/crazymanish.png' width='140px;'>
|
|
41
41
|
</a>
|
|
42
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
42
|
+
<h4 align='center'><a href='https://twitter.com/iammanishrathi'>Manish Rathi</a></h4>
|
|
43
43
|
</td>
|
|
44
|
-
<td id='
|
|
45
|
-
<a href='https://github.com/
|
|
46
|
-
<img src='https://github.com/
|
|
44
|
+
<td id='iulian-onofrei'>
|
|
45
|
+
<a href='https://github.com/revolter'>
|
|
46
|
+
<img src='https://github.com/revolter.png' width='140px;'>
|
|
47
47
|
</a>
|
|
48
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
48
|
+
<h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
|
|
49
49
|
</td>
|
|
50
|
-
<td id='
|
|
51
|
-
<a href='https://github.com/
|
|
52
|
-
<img src='https://github.com/
|
|
50
|
+
<td id='helmut-januschka'>
|
|
51
|
+
<a href='https://github.com/hjanuschka'>
|
|
52
|
+
<img src='https://github.com/hjanuschka.png' width='140px;'>
|
|
53
53
|
</a>
|
|
54
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
54
|
+
<h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
|
|
55
55
|
</td>
|
|
56
|
-
<td id='
|
|
57
|
-
<a href='https://github.com/
|
|
58
|
-
<img src='https://github.com/
|
|
56
|
+
<td id='stefan-natchev'>
|
|
57
|
+
<a href='https://github.com/snatchev'>
|
|
58
|
+
<img src='https://github.com/snatchev.png' width='140px;'>
|
|
59
59
|
</a>
|
|
60
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
60
|
+
<h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
|
|
61
61
|
</td>
|
|
62
|
-
<td id='
|
|
63
|
-
<a href='https://github.com/
|
|
64
|
-
<img src='https://github.com/
|
|
62
|
+
<td id='manu-wallner'>
|
|
63
|
+
<a href='https://github.com/milch'>
|
|
64
|
+
<img src='https://github.com/milch.png' width='140px;'>
|
|
65
65
|
</a>
|
|
66
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
66
|
+
<h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</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='maksym-grebenets'>
|
|
71
|
+
<a href='https://github.com/mgrebenets'>
|
|
72
|
+
<img src='https://github.com/mgrebenets.png' width='140px;'>
|
|
73
73
|
</a>
|
|
74
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
74
|
+
<h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
|
|
75
|
+
</td>
|
|
76
|
+
<td id='jorge-revuelta-h'>
|
|
77
|
+
<a href='https://github.com/minuscorp'>
|
|
78
|
+
<img src='https://github.com/minuscorp.png' width='140px;'>
|
|
79
|
+
</a>
|
|
80
|
+
<h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
|
|
81
|
+
</td>
|
|
82
|
+
<td id='jérôme-lacoste'>
|
|
83
|
+
<a href='https://github.com/lacostej'>
|
|
84
|
+
<img src='https://github.com/lacostej.png' width='140px;'>
|
|
85
|
+
</a>
|
|
86
|
+
<h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
|
|
87
|
+
</td>
|
|
88
|
+
<td id='roger-oba'>
|
|
89
|
+
<a href='https://github.com/rogerluan'>
|
|
90
|
+
<img src='https://github.com/rogerluan.png' width='140px;'>
|
|
91
|
+
</a>
|
|
92
|
+
<h4 align='center'><a href='https://twitter.com/rogerluan_'>Roger Oba</a></h4>
|
|
93
|
+
</td>
|
|
94
|
+
<td id='jan-piotrowski'>
|
|
95
|
+
<a href='https://github.com/janpio'>
|
|
96
|
+
<img src='https://github.com/janpio.png' width='140px;'>
|
|
97
|
+
</a>
|
|
98
|
+
<h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
|
|
99
|
+
</td>
|
|
100
|
+
</tr>
|
|
101
|
+
<tr>
|
|
102
|
+
<td id='max-ott'>
|
|
103
|
+
<a href='https://github.com/max-ott'>
|
|
104
|
+
<img src='https://github.com/max-ott.png' width='140px;'>
|
|
105
|
+
</a>
|
|
106
|
+
<h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
|
|
107
|
+
</td>
|
|
108
|
+
<td id='matthew-ellis'>
|
|
109
|
+
<a href='https://github.com/matthewellis'>
|
|
110
|
+
<img src='https://github.com/matthewellis.png' width='140px;'>
|
|
111
|
+
</a>
|
|
112
|
+
<h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
|
|
75
113
|
</td>
|
|
76
114
|
<td id='danielle-tomlinson'>
|
|
77
115
|
<a href='https://github.com/endocrimes'>
|
|
@@ -79,11 +117,11 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
|
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/
|
|
120
|
+
<td id='daniel-jankowski'>
|
|
121
|
+
<a href='https://github.com/mollyIV'>
|
|
122
|
+
<img src='https://github.com/mollyIV.png' width='140px;'>
|
|
85
123
|
</a>
|
|
86
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
124
|
+
<h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
|
|
87
125
|
</td>
|
|
88
126
|
<td id='kohki-miki'>
|
|
89
127
|
<a href='https://github.com/giginet'>
|
|
@@ -91,63 +129,57 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
|
91
129
|
</a>
|
|
92
130
|
<h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
|
|
93
131
|
</td>
|
|
132
|
+
</tr>
|
|
133
|
+
<tr>
|
|
94
134
|
<td id='jimmy-dee'>
|
|
95
135
|
<a href='https://github.com/jdee'>
|
|
96
136
|
<img src='https://github.com/jdee.png' width='140px;'>
|
|
97
137
|
</a>
|
|
98
138
|
<h4 align='center'>Jimmy Dee</h4>
|
|
99
139
|
</td>
|
|
100
|
-
|
|
101
|
-
<
|
|
102
|
-
<
|
|
103
|
-
<a href='https://github.com/crazymanish'>
|
|
104
|
-
<img src='https://github.com/crazymanish.png' width='140px;'>
|
|
105
|
-
</a>
|
|
106
|
-
<h4 align='center'><a href='https://twitter.com/iammanishrathi'>Manish Rathi</a></h4>
|
|
107
|
-
</td>
|
|
108
|
-
<td id='jorge-revuelta-h'>
|
|
109
|
-
<a href='https://github.com/minuscorp'>
|
|
110
|
-
<img src='https://github.com/minuscorp.png' width='140px;'>
|
|
111
|
-
</a>
|
|
112
|
-
<h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
|
|
113
|
-
</td>
|
|
114
|
-
<td id='jan-piotrowski'>
|
|
115
|
-
<a href='https://github.com/janpio'>
|
|
116
|
-
<img src='https://github.com/janpio.png' width='140px;'>
|
|
140
|
+
<td id='satoshi-namai'>
|
|
141
|
+
<a href='https://github.com/ainame'>
|
|
142
|
+
<img src='https://github.com/ainame.png' width='140px;'>
|
|
117
143
|
</a>
|
|
118
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
144
|
+
<h4 align='center'><a href='https://twitter.com/ainame'>Satoshi Namai</a></h4>
|
|
119
145
|
</td>
|
|
120
|
-
<td id='
|
|
121
|
-
<a href='https://github.com/
|
|
122
|
-
<img src='https://github.com/
|
|
146
|
+
<td id='luka-mirosevic'>
|
|
147
|
+
<a href='https://github.com/lmirosevic'>
|
|
148
|
+
<img src='https://github.com/lmirosevic.png' width='140px;'>
|
|
123
149
|
</a>
|
|
124
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
150
|
+
<h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
|
|
125
151
|
</td>
|
|
126
|
-
<td id='
|
|
127
|
-
<a href='https://github.com/
|
|
128
|
-
<img src='https://github.com/
|
|
152
|
+
<td id='joshua-liebowitz'>
|
|
153
|
+
<a href='https://github.com/taquitos'>
|
|
154
|
+
<img src='https://github.com/taquitos.png' width='140px;'>
|
|
129
155
|
</a>
|
|
130
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
156
|
+
<h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
|
|
131
157
|
</td>
|
|
132
|
-
</tr>
|
|
133
|
-
<tr>
|
|
134
158
|
<td id='josh-holtz'>
|
|
135
159
|
<a href='https://github.com/joshdholtz'>
|
|
136
160
|
<img src='https://github.com/joshdholtz.png' width='140px;'>
|
|
137
161
|
</a>
|
|
138
162
|
<h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
|
|
139
163
|
</td>
|
|
164
|
+
</tr>
|
|
165
|
+
<tr>
|
|
166
|
+
<td id='fumiya-nakamura'>
|
|
167
|
+
<a href='https://github.com/nafu'>
|
|
168
|
+
<img src='https://github.com/nafu.png' width='140px;'>
|
|
169
|
+
</a>
|
|
170
|
+
<h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
|
|
171
|
+
</td>
|
|
140
172
|
<td id='łukasz-grabowski'>
|
|
141
173
|
<a href='https://github.com/lucgrabowski'>
|
|
142
174
|
<img src='https://github.com/lucgrabowski.png' width='140px;'>
|
|
143
175
|
</a>
|
|
144
176
|
<h4 align='center'>Łukasz Grabowski</h4>
|
|
145
177
|
</td>
|
|
146
|
-
<td id='
|
|
147
|
-
<a href='https://github.com/
|
|
148
|
-
<img src='https://github.com/
|
|
178
|
+
<td id='felix-krause'>
|
|
179
|
+
<a href='https://github.com/KrauseFx'>
|
|
180
|
+
<img src='https://github.com/KrauseFx.png' width='140px;'>
|
|
149
181
|
</a>
|
|
150
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
182
|
+
<h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
|
|
151
183
|
</td>
|
|
152
184
|
<td id='aaron-brager'>
|
|
153
185
|
<a href='https://github.com/getaaron'>
|
|
@@ -155,51 +187,19 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
|
155
187
|
</a>
|
|
156
188
|
<h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
|
|
157
189
|
</td>
|
|
158
|
-
<td id='
|
|
159
|
-
<a href='https://github.com/
|
|
160
|
-
<img src='https://github.com/
|
|
161
|
-
</a>
|
|
162
|
-
<h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
|
|
163
|
-
</td>
|
|
164
|
-
</tr>
|
|
165
|
-
<tr>
|
|
166
|
-
<td id='maksym-grebenets'>
|
|
167
|
-
<a href='https://github.com/mgrebenets'>
|
|
168
|
-
<img src='https://github.com/mgrebenets.png' width='140px;'>
|
|
169
|
-
</a>
|
|
170
|
-
<h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
|
|
171
|
-
</td>
|
|
172
|
-
<td id='stefan-natchev'>
|
|
173
|
-
<a href='https://github.com/snatchev'>
|
|
174
|
-
<img src='https://github.com/snatchev.png' width='140px;'>
|
|
175
|
-
</a>
|
|
176
|
-
<h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</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='manu-wallner'>
|
|
185
|
-
<a href='https://github.com/milch'>
|
|
186
|
-
<img src='https://github.com/milch.png' width='140px;'>
|
|
187
|
-
</a>
|
|
188
|
-
<h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
|
|
189
|
-
</td>
|
|
190
|
-
<td id='max-ott'>
|
|
191
|
-
<a href='https://github.com/max-ott'>
|
|
192
|
-
<img src='https://github.com/max-ott.png' width='140px;'>
|
|
190
|
+
<td id='olivier-halligon'>
|
|
191
|
+
<a href='https://github.com/AliSoftware'>
|
|
192
|
+
<img src='https://github.com/AliSoftware.png' width='140px;'>
|
|
193
193
|
</a>
|
|
194
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
194
|
+
<h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</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='andrew-mcburney'>
|
|
199
|
+
<a href='https://github.com/armcburney'>
|
|
200
|
+
<img src='https://github.com/armcburney.png' width='140px;'>
|
|
201
201
|
</a>
|
|
202
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
202
|
+
<h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
|
|
203
203
|
</td>
|
|
204
204
|
</table>
|
|
205
205
|
|
|
@@ -99,7 +99,7 @@ module Deliver
|
|
|
99
99
|
optional: true,
|
|
100
100
|
default_value: "ios",
|
|
101
101
|
verify_block: proc do |value|
|
|
102
|
-
UI.user_error!("The platform can only be ios, appletvos, or osx") unless %('ios', 'appletvos', 'osx').include?(value)
|
|
102
|
+
UI.user_error!("The platform can only be ios, appletvos, xros or osx") unless %('ios', 'appletvos', 'xros', 'osx').include?(value)
|
|
103
103
|
end),
|
|
104
104
|
|
|
105
105
|
# live version
|
|
@@ -172,7 +172,7 @@ module Deliver
|
|
|
172
172
|
transporter = transporter_for_selected_team
|
|
173
173
|
|
|
174
174
|
case platform
|
|
175
|
-
when "ios", "appletvos"
|
|
175
|
+
when "ios", "appletvos", "xros"
|
|
176
176
|
package_path = FastlaneCore::IpaUploadPackageBuilder.new.generate(
|
|
177
177
|
app_id: Deliver.cache[:app].id,
|
|
178
178
|
ipa_path: ipa_path,
|
|
@@ -209,7 +209,7 @@ module Deliver
|
|
|
209
209
|
transporter = transporter_for_selected_team
|
|
210
210
|
|
|
211
211
|
case platform
|
|
212
|
-
when "ios", "appletvos"
|
|
212
|
+
when "ios", "appletvos", "xros"
|
|
213
213
|
package_path = FastlaneCore::IpaUploadPackageBuilder.new.generate(
|
|
214
214
|
app_id: Deliver.cache[:app].id,
|
|
215
215
|
ipa_path: ipa_path,
|
|
@@ -186,7 +186,7 @@ module Fastlane
|
|
|
186
186
|
optional: true,
|
|
187
187
|
default_value: "ios",
|
|
188
188
|
verify_block: proc do |value|
|
|
189
|
-
UI.user_error!("The platform can only be ios, appletvos, or osx") unless %('ios', 'appletvos', 'osx').include?(value)
|
|
189
|
+
UI.user_error!("The platform can only be ios, appletvos, xros or osx") unless %('ios', 'appletvos', 'xros', 'osx').include?(value)
|
|
190
190
|
end),
|
|
191
191
|
FastlaneCore::ConfigItem.new(key: :team_name,
|
|
192
192
|
short_option: "-e",
|
|
@@ -290,7 +290,7 @@ module Fastlane
|
|
|
290
290
|
FastlaneCore::ConfigItem.new(key: :platform,
|
|
291
291
|
short_option: "-p",
|
|
292
292
|
env_name: "DOWNLOAD_DSYMS_PLATFORM",
|
|
293
|
-
description: "The app platform for dSYMs you wish to download (ios, appletvos)",
|
|
293
|
+
description: "The app platform for dSYMs you wish to download (ios, xros, appletvos)",
|
|
294
294
|
default_value: :ios),
|
|
295
295
|
FastlaneCore::ConfigItem.new(key: :version,
|
|
296
296
|
short_option: "-v",
|
|
@@ -351,7 +351,7 @@ module Fastlane
|
|
|
351
351
|
end
|
|
352
352
|
|
|
353
353
|
def self.is_supported?(platform)
|
|
354
|
-
[:ios, :appletvos].include?(platform)
|
|
354
|
+
[:ios, :appletvos, :xros].include?(platform)
|
|
355
355
|
end
|
|
356
356
|
|
|
357
357
|
def self.example_code
|
|
@@ -23,7 +23,9 @@ module Fastlane
|
|
|
23
23
|
# Manual post processing trying to ignore certain file paths
|
|
24
24
|
if (ignore_files = params[:ignore_files])
|
|
25
25
|
repo_status = repo_status.lines.reject do |line|
|
|
26
|
-
path = line
|
|
26
|
+
path = path_from_git_status_line(line)
|
|
27
|
+
next if path.empty?
|
|
28
|
+
|
|
27
29
|
was_found = ignore_files.include?(path)
|
|
28
30
|
|
|
29
31
|
UI.message("Ignoring '#{path}'") if was_found
|
|
@@ -54,6 +56,19 @@ module Fastlane
|
|
|
54
56
|
end
|
|
55
57
|
end
|
|
56
58
|
|
|
59
|
+
def self.path_from_git_status_line(line)
|
|
60
|
+
# Extract the file path from the line based on https://git-scm.com/docs/git-status#_output.
|
|
61
|
+
# The first two characters indicate the status of the file path (e.g. ' M')
|
|
62
|
+
# M App/script.sh
|
|
63
|
+
#
|
|
64
|
+
# If the file path is renamed, the original path is also included in the line (e.g. 'R ORIG_PATH -> PATH')
|
|
65
|
+
# R App/script.sh -> App/script_renamed.sh
|
|
66
|
+
#
|
|
67
|
+
path = line.match(/^.. (.* -> )?(.*)$/)[2]
|
|
68
|
+
path = path.delete_prefix('"').delete_suffix('"')
|
|
69
|
+
return path
|
|
70
|
+
end
|
|
71
|
+
|
|
57
72
|
def self.description
|
|
58
73
|
"Raises an exception if there are uncommitted git changes"
|
|
59
74
|
end
|
|
@@ -83,7 +83,7 @@ module Fastlane
|
|
|
83
83
|
optional: true,
|
|
84
84
|
default_value: "ios",
|
|
85
85
|
verify_block: proc do |value|
|
|
86
|
-
UI.user_error!("The platform can only be ios, osx, or appletvos") unless %('osx', ios', 'appletvos').include?(value)
|
|
86
|
+
UI.user_error!("The platform can only be ios, osx, xros or appletvos") unless %('osx', ios', 'appletvos', 'xros').include?(value)
|
|
87
87
|
end),
|
|
88
88
|
FastlaneCore::ConfigItem.new(key: :initial_build_number,
|
|
89
89
|
env_name: "INITIAL_BUILD_NUMBER",
|
|
@@ -169,10 +169,10 @@ module Fastlane
|
|
|
169
169
|
end),
|
|
170
170
|
FastlaneCore::ConfigItem.new(key: :platform,
|
|
171
171
|
env_name: "FL_SET_CHANGELOG_PLATFORM",
|
|
172
|
-
description: "The platform of the app (ios, appletvos, mac)",
|
|
172
|
+
description: "The platform of the app (ios, appletvos, xros, mac)",
|
|
173
173
|
default_value: "ios",
|
|
174
174
|
verify_block: proc do |value|
|
|
175
|
-
available = ['ios', 'appletvos', 'mac']
|
|
175
|
+
available = ['ios', 'appletvos', 'xros', 'mac']
|
|
176
176
|
UI.user_error!("Invalid platform '#{value}', must be #{available.join(', ')}") unless available.include?(value)
|
|
177
177
|
end)
|
|
178
178
|
]
|
|
@@ -183,7 +183,7 @@ module Fastlane
|
|
|
183
183
|
end
|
|
184
184
|
|
|
185
185
|
def self.is_supported?(platform)
|
|
186
|
-
[:ios, :appletvos, :mac].include?(platform)
|
|
186
|
+
[:ios, :appletvos, :xros, :mac].include?(platform)
|
|
187
187
|
end
|
|
188
188
|
|
|
189
189
|
def self.example_code
|
|
@@ -218,7 +218,9 @@ module Fastlane
|
|
|
218
218
|
end
|
|
219
219
|
|
|
220
220
|
def self.sh(*command, step_name: nil, log: true, error_callback: nil, &b)
|
|
221
|
-
command_header =
|
|
221
|
+
command_header = step_name
|
|
222
|
+
command_header ||= log ? Actions.shell_command_from_args(*command) : "shell command"
|
|
223
|
+
|
|
222
224
|
Actions.execute_action(command_header) do
|
|
223
225
|
Actions.sh_no_action(*command, log: log, error_callback: error_callback, &b)
|
|
224
226
|
end
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
module Fastlane
|
|
2
|
-
VERSION = '2.
|
|
2
|
+
VERSION = '2.222.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
|
|
@@ -4096,7 +4096,7 @@ public func downloadAppPrivacyDetailsFromAppStore(username: String,
|
|
|
4096
4096
|
- appIdentifier: The bundle identifier of your app
|
|
4097
4097
|
- teamId: The ID of your App Store Connect team if you're in multiple teams
|
|
4098
4098
|
- teamName: The name of your App Store Connect team if you're in multiple teams
|
|
4099
|
-
- platform: The app platform for dSYMs you wish to download (ios, appletvos)
|
|
4099
|
+
- platform: The app platform for dSYMs you wish to download (ios, xros, appletvos)
|
|
4100
4100
|
- version: The app version for dSYMs you wish to download, pass in 'latest' to download only the latest build's dSYMs or 'live' to download only the live version dSYMs
|
|
4101
4101
|
- buildNumber: The app build_number for dSYMs you wish to download
|
|
4102
4102
|
- minVersion: The minimum app version for dSYMs you wish to download
|
|
@@ -9707,7 +9707,7 @@ public func setBuildNumberRepository(useHgRevisionNumber: OptionalConfigValue<Bo
|
|
|
9707
9707
|
- changelog: Changelog text that should be uploaded to App Store Connect
|
|
9708
9708
|
- teamId: The ID of your App Store Connect team if you're in multiple teams
|
|
9709
9709
|
- teamName: The name of your App Store Connect team if you're in multiple teams
|
|
9710
|
-
- platform: The platform of the app (ios, appletvos, mac)
|
|
9710
|
+
- platform: The platform of the app (ios, appletvos, xros, mac)
|
|
9711
9711
|
|
|
9712
9712
|
This is useful if you have only one changelog for all languages.
|
|
9713
9713
|
You can store the changelog in `./changelog.txt` and it will automatically get loaded from there. This integration is useful if you support e.g. 10 languages and want to use the same "What's new"-text for all languages.
|
|
@@ -13598,7 +13598,7 @@ public func xcov(workspace: OptionalConfigValue<String?> = .fastlaneDefault(nil)
|
|
|
13598
13598
|
coverallsServiceJobId: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
|
13599
13599
|
coverallsRepoToken: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
|
13600
13600
|
xcconfig: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
|
13601
|
-
ideFoundationPath: String = "/Applications/Xcode_15.
|
|
13601
|
+
ideFoundationPath: String = "/Applications/Xcode_15.4.app/Contents/Developer/../Frameworks/IDEFoundation.framework/Versions/A/IDEFoundation",
|
|
13602
13602
|
legacySupport: OptionalConfigValue<Bool> = .fastlaneDefault(false))
|
|
13603
13603
|
{
|
|
13604
13604
|
let workspaceArg = workspace.asRubyArgument(name: "workspace", type: nil)
|
|
@@ -13801,4 +13801,4 @@ public let snapshotfile: Snapshotfile = .init()
|
|
|
13801
13801
|
|
|
13802
13802
|
// Please don't remove the lines below
|
|
13803
13803
|
// They are used to detect outdated files
|
|
13804
|
-
// FastlaneRunnerAPIVersion [0.9.
|
|
13804
|
+
// FastlaneRunnerAPIVersion [0.9.180]
|
|
@@ -2,45 +2,45 @@
|
|
|
2
2
|
"entries": {
|
|
3
3
|
"brew": {
|
|
4
4
|
"swiftformat": {
|
|
5
|
-
"version": "0.
|
|
5
|
+
"version": "0.54.2",
|
|
6
6
|
"bottle": {
|
|
7
7
|
"rebuild": 0,
|
|
8
8
|
"root_url": "https://ghcr.io/v2/homebrew/core",
|
|
9
9
|
"files": {
|
|
10
10
|
"arm64_sonoma": {
|
|
11
11
|
"cellar": ":any_skip_relocation",
|
|
12
|
-
"url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:
|
|
13
|
-
"sha256": "
|
|
12
|
+
"url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:81df298cd70628b2149823fa370aa3a6799fa3d794e1541f76f3f4a2d7bedac1",
|
|
13
|
+
"sha256": "81df298cd70628b2149823fa370aa3a6799fa3d794e1541f76f3f4a2d7bedac1"
|
|
14
14
|
},
|
|
15
15
|
"arm64_ventura": {
|
|
16
16
|
"cellar": ":any_skip_relocation",
|
|
17
|
-
"url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:
|
|
18
|
-
"sha256": "
|
|
17
|
+
"url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:c69312fea87da1123deb27e6943e90affe661475571c6ca5967321688b46df8b",
|
|
18
|
+
"sha256": "c69312fea87da1123deb27e6943e90affe661475571c6ca5967321688b46df8b"
|
|
19
19
|
},
|
|
20
20
|
"arm64_monterey": {
|
|
21
21
|
"cellar": ":any_skip_relocation",
|
|
22
|
-
"url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:
|
|
23
|
-
"sha256": "
|
|
22
|
+
"url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:da2a5c24a8132589cee415f4a0754ccc8b39e67e74e06469a3cb6b45d880877a",
|
|
23
|
+
"sha256": "da2a5c24a8132589cee415f4a0754ccc8b39e67e74e06469a3cb6b45d880877a"
|
|
24
24
|
},
|
|
25
25
|
"sonoma": {
|
|
26
26
|
"cellar": ":any_skip_relocation",
|
|
27
|
-
"url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:
|
|
28
|
-
"sha256": "
|
|
27
|
+
"url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:5d5e97425579868571f6322c7472793ef0e652b0ccb64248a466f5f6a85d8b0c",
|
|
28
|
+
"sha256": "5d5e97425579868571f6322c7472793ef0e652b0ccb64248a466f5f6a85d8b0c"
|
|
29
29
|
},
|
|
30
30
|
"ventura": {
|
|
31
31
|
"cellar": ":any_skip_relocation",
|
|
32
|
-
"url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:
|
|
33
|
-
"sha256": "
|
|
32
|
+
"url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:402e0e5e117296bee234ef2d657a49ef3397dd898db244a43abe6b02b83b6c48",
|
|
33
|
+
"sha256": "402e0e5e117296bee234ef2d657a49ef3397dd898db244a43abe6b02b83b6c48"
|
|
34
34
|
},
|
|
35
35
|
"monterey": {
|
|
36
36
|
"cellar": ":any_skip_relocation",
|
|
37
|
-
"url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:
|
|
38
|
-
"sha256": "
|
|
37
|
+
"url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:67abaff7e1f041b060e35e8ad1573737c93866c18a9bb4e84c9fd1d85e2064f2",
|
|
38
|
+
"sha256": "67abaff7e1f041b060e35e8ad1573737c93866c18a9bb4e84c9fd1d85e2064f2"
|
|
39
39
|
},
|
|
40
40
|
"x86_64_linux": {
|
|
41
41
|
"cellar": "/home/linuxbrew/.linuxbrew/Cellar",
|
|
42
|
-
"url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:
|
|
43
|
-
"sha256": "
|
|
42
|
+
"url": "https://ghcr.io/v2/homebrew/core/swiftformat/blobs/sha256:5c6a46f3995ad0b606c0c8a823b9236998ac512ba8895e8b1c3b35730fc2067d",
|
|
43
|
+
"sha256": "5c6a46f3995ad0b606c0c8a823b9236998ac512ba8895e8b1c3b35730fc2067d"
|
|
44
44
|
}
|
|
45
45
|
}
|
|
46
46
|
}
|
|
@@ -82,11 +82,11 @@
|
|
|
82
82
|
"macOS": "13.6"
|
|
83
83
|
},
|
|
84
84
|
"sonoma": {
|
|
85
|
-
"HOMEBREW_VERSION": "4.3.
|
|
85
|
+
"HOMEBREW_VERSION": "4.3.10",
|
|
86
86
|
"HOMEBREW_PREFIX": "/opt/homebrew",
|
|
87
87
|
"Homebrew/homebrew-core": "api",
|
|
88
88
|
"CLT": "15.3.0.0.1.1708646388",
|
|
89
|
-
"Xcode": "15.
|
|
89
|
+
"Xcode": "15.4",
|
|
90
90
|
"macOS": "14.5"
|
|
91
91
|
}
|
|
92
92
|
}
|
|
@@ -184,7 +184,7 @@ module Gym
|
|
|
184
184
|
def result_bundle_path
|
|
185
185
|
unless Gym.cache[:result_bundle_path]
|
|
186
186
|
path = Gym.config[:result_bundle_path]
|
|
187
|
-
path ||= File.join(Gym.config[:output_directory], Gym.config[:output_name] + ".
|
|
187
|
+
path ||= File.join(Gym.config[:output_directory], Gym.config[:output_name] + ".xcresult")
|
|
188
188
|
if File.directory?(path)
|
|
189
189
|
FileUtils.remove_dir(path)
|
|
190
190
|
end
|
|
@@ -148,6 +148,16 @@ module Spaceship
|
|
|
148
148
|
return resp.to_models.first
|
|
149
149
|
end
|
|
150
150
|
|
|
151
|
+
#
|
|
152
|
+
# App Availabilities
|
|
153
|
+
#
|
|
154
|
+
|
|
155
|
+
def get_app_availabilities(client: nil, filter: {}, includes: "territoryAvailabilities", limit: { "territoryAvailabilities": 200 })
|
|
156
|
+
client ||= Spaceship::ConnectAPI
|
|
157
|
+
resp = client.get_app_availabilities(app_id: id, filter: filter, includes: includes, limit: limit, sort: nil)
|
|
158
|
+
return resp.to_models.first
|
|
159
|
+
end
|
|
160
|
+
|
|
151
161
|
#
|
|
152
162
|
# Available Territories
|
|
153
163
|
#
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
require_relative '../model'
|
|
2
|
+
module Spaceship
|
|
3
|
+
class ConnectAPI
|
|
4
|
+
class AppAvailability
|
|
5
|
+
include Spaceship::ConnectAPI::Model
|
|
6
|
+
|
|
7
|
+
attr_accessor :app
|
|
8
|
+
attr_accessor :available_in_new_territories
|
|
9
|
+
|
|
10
|
+
attr_accessor :territoryAvailabilities
|
|
11
|
+
|
|
12
|
+
attr_mapping({
|
|
13
|
+
app: 'app',
|
|
14
|
+
availableInNewTerritories: 'available_in_new_territories',
|
|
15
|
+
territoryAvailabilities: 'territory_availabilities'
|
|
16
|
+
})
|
|
17
|
+
|
|
18
|
+
def self.type
|
|
19
|
+
return 'appAvailabilities'
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
require_relative '../model'
|
|
2
|
+
module Spaceship
|
|
3
|
+
class ConnectAPI
|
|
4
|
+
class TerritoryAvailability
|
|
5
|
+
include Spaceship::ConnectAPI::Model
|
|
6
|
+
|
|
7
|
+
attr_accessor :available
|
|
8
|
+
attr_accessor :content_statuses
|
|
9
|
+
attr_accessor :pre_order_enabled
|
|
10
|
+
attr_accessor :pre_order_publish_date
|
|
11
|
+
attr_accessor :release_date
|
|
12
|
+
|
|
13
|
+
module ContentStatus
|
|
14
|
+
AVAILABLE = "AVAILABLE"
|
|
15
|
+
AVAILABLE_FOR_PREORDER_ON_DATE = "AVAILABLE_FOR_PREORDER_ON_DATE"
|
|
16
|
+
PROCESSING_TO_NOT_AVAILABLE = "PROCESSING_TO_NOT_AVAILABLE"
|
|
17
|
+
PROCESSING_TO_AVAILABLE = "PROCESSING_TO_AVAILABLE"
|
|
18
|
+
PROCESSING_TO_PRE_ORDER = "PROCESSING_TO_PRE_ORDER"
|
|
19
|
+
AVAILABLE_FOR_SALE_UNRELEASED_APP = "AVAILABLE_FOR_SALE_UNRELEASED_APP"
|
|
20
|
+
PREORDER_ON_UNRELEASED_APP = "PREORDER_ON_UNRELEASED_APP"
|
|
21
|
+
AVAILABLE_FOR_PREORDER = "AVAILABLE_FOR_PREORDER"
|
|
22
|
+
MISSING_RATING = "MISSING_RATING"
|
|
23
|
+
CANNOT_SELL_RESTRICTED_RATING = "CANNOT_SELL_RESTRICTED_RATING"
|
|
24
|
+
BRAZIL_REQUIRED_TAX_ID = "BRAZIL_REQUIRED_TAX_ID"
|
|
25
|
+
MISSING_GRN = "MISSING_GRN"
|
|
26
|
+
UNVERIFIED_GRN = "UNVERIFIED_GRN"
|
|
27
|
+
CANNOT_SELL_SEVENTEEN_PLUS_APPS = "CANNOT_SELL_SEVENTEEN_PLUS_APPS"
|
|
28
|
+
CANNOT_SELL_SEXUALLY_EXPLICIT = "CANNOT_SELL_SEXUALLY_EXPLICIT"
|
|
29
|
+
CANNOT_SELL_NON_IOS_GAMES = "CANNOT_SELL_NON_IOS_GAMES"
|
|
30
|
+
CANNOT_SELL_SEVENTEEN_PLUS_GAMES = "CANNOT_SELL_SEVENTEEN_PLUS_GAMES"
|
|
31
|
+
CANNOT_SELL_FREQUENT_INTENSE_GAMBLING = "CANNOT_SELL_FREQUENT_INTENSE_GAMBLING"
|
|
32
|
+
CANNOT_SELL_CASINO = "CANNOT_SELL_CASINO"
|
|
33
|
+
CANNOT_SELL_CASINO_WITHOUT_GRAC = "CANNOT_SELL_CASINO_WITHOUT_GRAC"
|
|
34
|
+
CANNOT_SELL_CASINO_WITHOUT_AGE_VERIFICATION = "CANNOT_SELL_CASINO_WITHOUT_AGE_VERIFICATION"
|
|
35
|
+
CANNOT_SELL_FREQUENT_INTENSE_ALCOHOL_TOBACCO_DRUGS = "CANNOT_SELL_FREQUENT_INTENSE_ALCOHOL_TOBACCO_DRUGS"
|
|
36
|
+
CANNOT_SELL_FREQUENT_INTENSE_VIOLENCE = "CANNOT_SELL_FREQUENT_INTENSE_VIOLENCE"
|
|
37
|
+
CANNOT_SELL_FREQUENT_INTENSE_SEXUAL_CONTENT_NUDITY = "CANNOT_SELL_FREQUENT_INTENSE_SEXUAL_CONTENT_NUDITY"
|
|
38
|
+
CANNOT_SELL_INFREQUENT_MILD_ALCOHOL_TOBACCO_DRUGS = "CANNOT_SELL_INFREQUENT_MILD_ALCOHOL_TOBACCO_DRUGS"
|
|
39
|
+
CANNOT_SELL_INFREQUENT_MILD_SEXUAL_CONTENT_NUDITY = "CANNOT_SELL_INFREQUENT_MILD_SEXUAL_CONTENT_NUDITY"
|
|
40
|
+
CANNOT_SELL_ADULT_ONLY = "CANNOT_SELL_ADULT_ONLY"
|
|
41
|
+
CANNOT_SELL_FREQUENT_INTENSE = "CANNOT_SELL_FREQUENT_INTENSE"
|
|
42
|
+
CANNOT_SELL_FREQUENT_INTENSE_WITHOUT_GRAC = "CANNOT_SELL_FREQUENT_INTENSE_WITHOUT_GRAC"
|
|
43
|
+
CANNOT_SELL_GAMBLING_CONTESTS = "CANNOT_SELL_GAMBLING_CONTESTS"
|
|
44
|
+
CANNOT_SELL_GAMBLING = "CANNOT_SELL_GAMBLING"
|
|
45
|
+
CANNOT_SELL_CONTESTS = "CANNOT_SELL_CONTESTS"
|
|
46
|
+
CANNOT_SELL = "CANNOT_SELL"
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
attr_mapping({
|
|
50
|
+
available: 'available',
|
|
51
|
+
contentStatuses: 'content_statuses',
|
|
52
|
+
preOrderEnabled: 'pre_order_enabled',
|
|
53
|
+
preOrderPublishDate: 'pre_order_publish_date',
|
|
54
|
+
releaseDate: 'release_date'
|
|
55
|
+
})
|
|
56
|
+
|
|
57
|
+
def self.type
|
|
58
|
+
return 'territoryAvailabilities'
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
end
|
|
@@ -416,6 +416,15 @@ module Spaceship
|
|
|
416
416
|
tunes_request_client.patch("#{Version::V1}/appPreviewSets/#{app_preview_set_id}/relationships/appPreviews", body)
|
|
417
417
|
end
|
|
418
418
|
|
|
419
|
+
#
|
|
420
|
+
# appAvailabilities
|
|
421
|
+
#
|
|
422
|
+
|
|
423
|
+
def get_app_availabilities(app_id: nil, filter: nil, includes: nil, limit: nil, sort: nil)
|
|
424
|
+
params = tunes_request_client.build_params(filter: nil, includes: includes, limit: limit, sort: nil)
|
|
425
|
+
tunes_request_client.get("#{Version::V2}/appAvailabilities/#{app_id}", params)
|
|
426
|
+
end
|
|
427
|
+
|
|
419
428
|
#
|
|
420
429
|
# availableTerritories
|
|
421
430
|
#
|
|
@@ -38,6 +38,8 @@ require 'spaceship/connect_api/models/custom_app_organization'
|
|
|
38
38
|
require 'spaceship/connect_api/models/custom_app_user'
|
|
39
39
|
require 'spaceship/connect_api/models/pre_release_version'
|
|
40
40
|
|
|
41
|
+
require 'spaceship/connect_api/models/app_availability'
|
|
42
|
+
require 'spaceship/connect_api/models/territory_availability'
|
|
41
43
|
require 'spaceship/connect_api/models/app_data_usage'
|
|
42
44
|
require 'spaceship/connect_api/models/app_data_usage_category'
|
|
43
45
|
require 'spaceship/connect_api/models/app_data_usage_data_protection'
|
|
@@ -72,7 +72,7 @@ module Spaceship
|
|
|
72
72
|
def find(identifier, mac: false)
|
|
73
73
|
all.find do |app|
|
|
74
74
|
((app.apple_id && app.apple_id.casecmp(identifier.to_s) == 0) || (app.bundle_id && app.bundle_id.casecmp(identifier.to_s) == 0)) &&
|
|
75
|
-
app.version_sets.any? { |v| (mac ? ["osx"] : ["ios", "appletvos"]).include?(v.platform) }
|
|
75
|
+
app.version_sets.any? { |v| (mac ? ["osx"] : ["ios", "xros", "appletvos"]).include?(v.platform) }
|
|
76
76
|
end
|
|
77
77
|
end
|
|
78
78
|
|
|
@@ -197,12 +197,37 @@ module Trainer
|
|
|
197
197
|
return output
|
|
198
198
|
end
|
|
199
199
|
|
|
200
|
+
# Hotfix: From Xcode 16 beta 3 'xcresulttool get --format json' has been deprecated;
|
|
201
|
+
# '--legacy' flag required to keep on using the command
|
|
202
|
+
def generate_cmd_parse_xcresult(path)
|
|
203
|
+
xcresulttool_cmd = %W(
|
|
204
|
+
xcrun
|
|
205
|
+
xcresulttool
|
|
206
|
+
get
|
|
207
|
+
--format
|
|
208
|
+
json
|
|
209
|
+
--path
|
|
210
|
+
#{path}
|
|
211
|
+
)
|
|
212
|
+
|
|
213
|
+
# e.g. DEVELOPER_DIR=/Applications/Xcode_16_beta_3.app
|
|
214
|
+
# xcresulttool version 23021, format version 3.53 (current)
|
|
215
|
+
match = `xcrun xcresulttool version`.match(/xcresulttool version (?<version>[\d.]+)/)
|
|
216
|
+
version = match[:version]
|
|
217
|
+
xcresulttool_cmd << '--legacy' if Gem::Version.new(version) >= Gem::Version.new(23_021)
|
|
218
|
+
|
|
219
|
+
xcresulttool_cmd.join(' ')
|
|
220
|
+
end
|
|
221
|
+
|
|
200
222
|
def parse_xcresult(path, output_remove_retry_attempts: false)
|
|
201
223
|
require 'shellwords'
|
|
202
224
|
path = Shellwords.escape(path)
|
|
203
225
|
|
|
204
226
|
# Executes xcresulttool to get JSON format of the result bundle object
|
|
205
|
-
|
|
227
|
+
# Hotfix: From Xcode 16 beta 3 'xcresulttool get --format json' has been deprecated; '--legacy' flag required to keep on using the command
|
|
228
|
+
xcresulttool_cmd = generate_cmd_parse_xcresult(path)
|
|
229
|
+
|
|
230
|
+
result_bundle_object_raw = execute_cmd(xcresulttool_cmd)
|
|
206
231
|
result_bundle_object = JSON.parse(result_bundle_object_raw)
|
|
207
232
|
|
|
208
233
|
# Parses JSON into ActionsInvocationRecord to find a list of all ids for ActionTestPlanRunSummaries
|
|
@@ -215,7 +240,7 @@ module Trainer
|
|
|
215
240
|
# Maps ids into ActionTestPlanRunSummaries by executing xcresulttool to get JSON
|
|
216
241
|
# containing specific information for each test summary,
|
|
217
242
|
summaries = ids.map do |id|
|
|
218
|
-
raw = execute_cmd("
|
|
243
|
+
raw = execute_cmd("#{xcresulttool_cmd} --id #{id}")
|
|
219
244
|
json = JSON.parse(raw)
|
|
220
245
|
Trainer::XCResult::ActionTestPlanRunSummaries.new(json)
|
|
221
246
|
end
|
metadata
CHANGED
|
@@ -1,39 +1,39 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: fastlane
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.
|
|
4
|
+
version: 2.222.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
|
-
-
|
|
8
|
-
-
|
|
9
|
-
-
|
|
7
|
+
- Olivier Halligon
|
|
8
|
+
- Manu Wallner
|
|
9
|
+
- Max Ott
|
|
10
10
|
- Luka Mirosevic
|
|
11
|
-
- Jérôme Lacoste
|
|
12
|
-
- Andrew McBurney
|
|
13
|
-
- Helmut Januschka
|
|
14
11
|
- Joshua Liebowitz
|
|
15
|
-
-
|
|
12
|
+
- Iulian Onofrei
|
|
16
13
|
- Łukasz Grabowski
|
|
14
|
+
- Manish Rathi
|
|
15
|
+
- Jimmy Dee
|
|
16
|
+
- Jan Piotrowski
|
|
17
|
+
- Aaron Brager
|
|
17
18
|
- Matthew Ellis
|
|
18
|
-
-
|
|
19
|
+
- Jérôme Lacoste
|
|
19
20
|
- Satoshi Namai
|
|
20
|
-
-
|
|
21
|
-
-
|
|
22
|
-
-
|
|
21
|
+
- Jorge Revuelta H
|
|
22
|
+
- Andrew McBurney
|
|
23
|
+
- Maksym Grebenets
|
|
23
24
|
- Fumiya Nakamura
|
|
24
|
-
- Manu Wallner
|
|
25
25
|
- Danielle Tomlinson
|
|
26
26
|
- Felix Krause
|
|
27
|
-
- Stefan Natchev
|
|
28
27
|
- Kohki Miki
|
|
29
|
-
-
|
|
30
|
-
-
|
|
31
|
-
-
|
|
28
|
+
- Stefan Natchev
|
|
29
|
+
- Josh Holtz
|
|
30
|
+
- Helmut Januschka
|
|
31
|
+
- Roger Oba
|
|
32
32
|
- Daniel Jankowski
|
|
33
33
|
autorequire:
|
|
34
34
|
bindir: bin
|
|
35
35
|
cert_chain: []
|
|
36
|
-
date: 2024-
|
|
36
|
+
date: 2024-07-26 00:00:00.000000000 Z
|
|
37
37
|
dependencies:
|
|
38
38
|
- !ruby/object:Gem::Dependency
|
|
39
39
|
name: addressable
|
|
@@ -1456,6 +1456,7 @@ files:
|
|
|
1456
1456
|
- spaceship/lib/spaceship/connect_api/models/actor.rb
|
|
1457
1457
|
- spaceship/lib/spaceship/connect_api/models/age_rating_declaration.rb
|
|
1458
1458
|
- spaceship/lib/spaceship/connect_api/models/app.rb
|
|
1459
|
+
- spaceship/lib/spaceship/connect_api/models/app_availability.rb
|
|
1459
1460
|
- spaceship/lib/spaceship/connect_api/models/app_category.rb
|
|
1460
1461
|
- spaceship/lib/spaceship/connect_api/models/app_data_usage.rb
|
|
1461
1462
|
- spaceship/lib/spaceship/connect_api/models/app_data_usage_category.rb
|
|
@@ -1511,6 +1512,7 @@ files:
|
|
|
1511
1512
|
- spaceship/lib/spaceship/connect_api/models/review_submission_item.rb
|
|
1512
1513
|
- spaceship/lib/spaceship/connect_api/models/sandbox_tester.rb
|
|
1513
1514
|
- spaceship/lib/spaceship/connect_api/models/territory.rb
|
|
1515
|
+
- spaceship/lib/spaceship/connect_api/models/territory_availability.rb
|
|
1514
1516
|
- spaceship/lib/spaceship/connect_api/models/user.rb
|
|
1515
1517
|
- spaceship/lib/spaceship/connect_api/models/user_invitation.rb
|
|
1516
1518
|
- spaceship/lib/spaceship/connect_api/provisioning/client.rb
|