fastlane 2.227.2 → 2.229.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 +94 -94
- data/fastlane/lib/fastlane/actions/docs/sync_code_signing.md +8 -6
- data/fastlane/lib/fastlane/actions/docs/upload_to_app_store.md.erb +28 -17
- data/fastlane/lib/fastlane/helper/s3_client_helper.rb +4 -0
- 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 +7 -66
- 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 +2 -2
- data/fastlane/swift/Precheckfile.swift +1 -1
- data/fastlane/swift/PrecheckfileProtocol.swift +1 -1
- data/fastlane/swift/Runner.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/SocketClient.swift +5 -5
- data/fastlane/swift/formatting/Rakefile +1 -2
- data/match/lib/match/options.rb +1 -0
- data/match/lib/match/storage/s3_storage.rb +4 -7
- data/sigh/lib/sigh/options.rb +1 -0
- data/sigh/lib/sigh/runner.rb +5 -2
- data/spaceship/lib/spaceship/connect_api/models/age_rating_declaration.rb +4 -2
- data/spaceship/lib/spaceship/connect_api/models/profile.rb +2 -3
- metadata +61 -20
- data/fastlane/lib/fastlane/actions/hipchat.rb +0 -200
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 4c080937125dfd3b1a692f4387689a29182bd2a3196d4c61ee7d061a8c84ccc5
|
|
4
|
+
data.tar.gz: b66271284edcb5ef4f0718c0b79d95368db148dc7da7889c6557a0d3c6d2a175
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: fdd0cb2b47b5695b846b8484ad331e7fdcfeb7fb5bb246528601de02dcb3216224330e4bf1a93e22f45a526196b66ed685e215dbd0e6d4ddca479f86bac7c410
|
|
7
|
+
data.tar.gz: 94e72d82de48bc7c4eaeae5458a33dac3b8b0073d65465b6944c81debd0426b316c3ecf02501f436dfcf4d7254412ae08ad542c52fdefb5a8321485a0f214276
|
data/README.md
CHANGED
|
@@ -35,43 +35,29 @@ 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/
|
|
41
|
-
</a>
|
|
42
|
-
<h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
|
|
43
|
-
</td>
|
|
44
|
-
<td id='stefan-natchev'>
|
|
45
|
-
<a href='https://github.com/snatchev'>
|
|
46
|
-
<img src='https://github.com/snatchev.png' width='140px;'>
|
|
47
|
-
</a>
|
|
48
|
-
<h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
|
|
49
|
-
</td>
|
|
50
|
-
<td id='andrew-mcburney'>
|
|
51
|
-
<a href='https://github.com/armcburney'>
|
|
52
|
-
<img src='https://github.com/armcburney.png' width='140px;'>
|
|
38
|
+
<td id='danielle-tomlinson'>
|
|
39
|
+
<a href='https://github.com/endocrimes'>
|
|
40
|
+
<img src='https://github.com/endocrimes.png' width='140px;'>
|
|
53
41
|
</a>
|
|
54
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
42
|
+
<h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
|
|
55
43
|
</td>
|
|
56
|
-
<td id='
|
|
57
|
-
<a href='https://github.com/
|
|
58
|
-
<img src='https://github.com/
|
|
44
|
+
<td id='łukasz-grabowski'>
|
|
45
|
+
<a href='https://github.com/lucgrabowski'>
|
|
46
|
+
<img src='https://github.com/lucgrabowski.png' width='140px;'>
|
|
59
47
|
</a>
|
|
60
|
-
<h4 align='center'
|
|
48
|
+
<h4 align='center'>Łukasz Grabowski</h4>
|
|
61
49
|
</td>
|
|
62
|
-
<td id='
|
|
63
|
-
<a href='https://github.com/
|
|
64
|
-
<img src='https://github.com/
|
|
50
|
+
<td id='felix-krause'>
|
|
51
|
+
<a href='https://github.com/KrauseFx'>
|
|
52
|
+
<img src='https://github.com/KrauseFx.png' width='140px;'>
|
|
65
53
|
</a>
|
|
66
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
54
|
+
<h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
|
|
67
55
|
</td>
|
|
68
|
-
|
|
69
|
-
<
|
|
70
|
-
<
|
|
71
|
-
<a href='https://github.com/endocrimes'>
|
|
72
|
-
<img src='https://github.com/endocrimes.png' width='140px;'>
|
|
56
|
+
<td id='josh-holtz'>
|
|
57
|
+
<a href='https://github.com/joshdholtz'>
|
|
58
|
+
<img src='https://github.com/joshdholtz.png' width='140px;'>
|
|
73
59
|
</a>
|
|
74
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
60
|
+
<h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
|
|
75
61
|
</td>
|
|
76
62
|
<td id='jimmy-dee'>
|
|
77
63
|
<a href='https://github.com/jdee'>
|
|
@@ -79,11 +65,19 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
|
79
65
|
</a>
|
|
80
66
|
<h4 align='center'>Jimmy Dee</h4>
|
|
81
67
|
</td>
|
|
82
|
-
|
|
83
|
-
<
|
|
84
|
-
<
|
|
68
|
+
</tr>
|
|
69
|
+
<tr>
|
|
70
|
+
<td id='iulian-onofrei'>
|
|
71
|
+
<a href='https://github.com/revolter'>
|
|
72
|
+
<img src='https://github.com/revolter.png' width='140px;'>
|
|
85
73
|
</a>
|
|
86
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
74
|
+
<h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
|
|
75
|
+
</td>
|
|
76
|
+
<td id='aaron-brager'>
|
|
77
|
+
<a href='https://github.com/getaaron'>
|
|
78
|
+
<img src='https://github.com/getaaron.png' width='140px;'>
|
|
79
|
+
</a>
|
|
80
|
+
<h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
|
|
87
81
|
</td>
|
|
88
82
|
<td id='satoshi-namai'>
|
|
89
83
|
<a href='https://github.com/ainame'>
|
|
@@ -91,37 +85,31 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
|
91
85
|
</a>
|
|
92
86
|
<h4 align='center'><a href='https://twitter.com/ainame'>Satoshi Namai</a></h4>
|
|
93
87
|
</td>
|
|
94
|
-
<td id='jérôme-lacoste'>
|
|
95
|
-
<a href='https://github.com/lacostej'>
|
|
96
|
-
<img src='https://github.com/lacostej.png' width='140px;'>
|
|
97
|
-
</a>
|
|
98
|
-
<h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
|
|
99
|
-
</td>
|
|
100
|
-
</tr>
|
|
101
|
-
<tr>
|
|
102
88
|
<td id='luka-mirosevic'>
|
|
103
89
|
<a href='https://github.com/lmirosevic'>
|
|
104
90
|
<img src='https://github.com/lmirosevic.png' width='140px;'>
|
|
105
91
|
</a>
|
|
106
92
|
<h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
|
|
107
93
|
</td>
|
|
108
|
-
<td id='
|
|
109
|
-
<a href='https://github.com/
|
|
110
|
-
<img src='https://github.com/
|
|
94
|
+
<td id='max-ott'>
|
|
95
|
+
<a href='https://github.com/max-ott'>
|
|
96
|
+
<img src='https://github.com/max-ott.png' width='140px;'>
|
|
111
97
|
</a>
|
|
112
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
98
|
+
<h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
|
|
113
99
|
</td>
|
|
114
|
-
|
|
115
|
-
<
|
|
116
|
-
<
|
|
100
|
+
</tr>
|
|
101
|
+
<tr>
|
|
102
|
+
<td id='joshua-liebowitz'>
|
|
103
|
+
<a href='https://github.com/taquitos'>
|
|
104
|
+
<img src='https://github.com/taquitos.png' width='140px;'>
|
|
117
105
|
</a>
|
|
118
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
106
|
+
<h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
|
|
119
107
|
</td>
|
|
120
|
-
<td id='
|
|
121
|
-
<a href='https://github.com/
|
|
122
|
-
<img src='https://github.com/
|
|
108
|
+
<td id='stefan-natchev'>
|
|
109
|
+
<a href='https://github.com/snatchev'>
|
|
110
|
+
<img src='https://github.com/snatchev.png' width='140px;'>
|
|
123
111
|
</a>
|
|
124
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
112
|
+
<h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
|
|
125
113
|
</td>
|
|
126
114
|
<td id='jorge-revuelta-h'>
|
|
127
115
|
<a href='https://github.com/minuscorp'>
|
|
@@ -129,69 +117,49 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
|
129
117
|
</a>
|
|
130
118
|
<h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
|
|
131
119
|
</td>
|
|
132
|
-
|
|
133
|
-
<
|
|
134
|
-
<
|
|
135
|
-
<a href='https://github.com/AliSoftware'>
|
|
136
|
-
<img src='https://github.com/AliSoftware.png' width='140px;'>
|
|
120
|
+
<td id='matthew-ellis'>
|
|
121
|
+
<a href='https://github.com/matthewellis'>
|
|
122
|
+
<img src='https://github.com/matthewellis.png' width='140px;'>
|
|
137
123
|
</a>
|
|
138
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
124
|
+
<h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
|
|
139
125
|
</td>
|
|
140
|
-
<td id='
|
|
141
|
-
<a href='https://github.com/
|
|
142
|
-
<img src='https://github.com/
|
|
126
|
+
<td id='jan-piotrowski'>
|
|
127
|
+
<a href='https://github.com/janpio'>
|
|
128
|
+
<img src='https://github.com/janpio.png' width='140px;'>
|
|
143
129
|
</a>
|
|
144
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
130
|
+
<h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
|
|
145
131
|
</td>
|
|
132
|
+
</tr>
|
|
133
|
+
<tr>
|
|
146
134
|
<td id='fumiya-nakamura'>
|
|
147
135
|
<a href='https://github.com/nafu'>
|
|
148
136
|
<img src='https://github.com/nafu.png' width='140px;'>
|
|
149
137
|
</a>
|
|
150
138
|
<h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
|
|
151
139
|
</td>
|
|
152
|
-
<td id='łukasz-grabowski'>
|
|
153
|
-
<a href='https://github.com/lucgrabowski'>
|
|
154
|
-
<img src='https://github.com/lucgrabowski.png' width='140px;'>
|
|
155
|
-
</a>
|
|
156
|
-
<h4 align='center'>Łukasz Grabowski</h4>
|
|
157
|
-
</td>
|
|
158
|
-
<td id='joshua-liebowitz'>
|
|
159
|
-
<a href='https://github.com/taquitos'>
|
|
160
|
-
<img src='https://github.com/taquitos.png' width='140px;'>
|
|
161
|
-
</a>
|
|
162
|
-
<h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
|
|
163
|
-
</td>
|
|
164
|
-
</tr>
|
|
165
|
-
<tr>
|
|
166
|
-
<td id='roger-oba'>
|
|
167
|
-
<a href='https://github.com/rogerluan'>
|
|
168
|
-
<img src='https://github.com/rogerluan.png' width='140px;'>
|
|
169
|
-
</a>
|
|
170
|
-
<h4 align='center'><a href='https://twitter.com/rogerluan_'>Roger Oba</a></h4>
|
|
171
|
-
</td>
|
|
172
|
-
<td id='felix-krause'>
|
|
173
|
-
<a href='https://github.com/KrauseFx'>
|
|
174
|
-
<img src='https://github.com/KrauseFx.png' width='140px;'>
|
|
175
|
-
</a>
|
|
176
|
-
<h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
|
|
177
|
-
</td>
|
|
178
140
|
<td id='daniel-jankowski'>
|
|
179
141
|
<a href='https://github.com/mollyIV'>
|
|
180
142
|
<img src='https://github.com/mollyIV.png' width='140px;'>
|
|
181
143
|
</a>
|
|
182
144
|
<h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
|
|
183
145
|
</td>
|
|
146
|
+
<td id='andrew-mcburney'>
|
|
147
|
+
<a href='https://github.com/armcburney'>
|
|
148
|
+
<img src='https://github.com/armcburney.png' width='140px;'>
|
|
149
|
+
</a>
|
|
150
|
+
<h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
|
|
151
|
+
</td>
|
|
184
152
|
<td id='manish-rathi'>
|
|
185
153
|
<a href='https://github.com/crazymanish'>
|
|
186
154
|
<img src='https://github.com/crazymanish.png' width='140px;'>
|
|
187
155
|
</a>
|
|
188
156
|
<h4 align='center'><a href='https://twitter.com/iammanishrathi'>Manish Rathi</a></h4>
|
|
189
157
|
</td>
|
|
190
|
-
<td id='
|
|
191
|
-
<a href='https://github.com/
|
|
192
|
-
<img src='https://github.com/
|
|
158
|
+
<td id='kohki-miki'>
|
|
159
|
+
<a href='https://github.com/giginet'>
|
|
160
|
+
<img src='https://github.com/giginet.png' width='140px;'>
|
|
193
161
|
</a>
|
|
194
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
162
|
+
<h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
|
|
195
163
|
</td>
|
|
196
164
|
</tr>
|
|
197
165
|
<tr>
|
|
@@ -201,6 +169,38 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
|
201
169
|
</a>
|
|
202
170
|
<h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
|
|
203
171
|
</td>
|
|
172
|
+
<td id='roger-oba'>
|
|
173
|
+
<a href='https://github.com/rogerluan'>
|
|
174
|
+
<img src='https://github.com/rogerluan.png' width='140px;'>
|
|
175
|
+
</a>
|
|
176
|
+
<h4 align='center'><a href='https://twitter.com/rogerluan_'>Roger Oba</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='olivier-halligon'>
|
|
185
|
+
<a href='https://github.com/AliSoftware'>
|
|
186
|
+
<img src='https://github.com/AliSoftware.png' width='140px;'>
|
|
187
|
+
</a>
|
|
188
|
+
<h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
|
|
189
|
+
</td>
|
|
190
|
+
<td id='maksym-grebenets'>
|
|
191
|
+
<a href='https://github.com/mgrebenets'>
|
|
192
|
+
<img src='https://github.com/mgrebenets.png' width='140px;'>
|
|
193
|
+
</a>
|
|
194
|
+
<h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
|
|
195
|
+
</td>
|
|
196
|
+
</tr>
|
|
197
|
+
<tr>
|
|
198
|
+
<td id='jérôme-lacoste'>
|
|
199
|
+
<a href='https://github.com/lacostej'>
|
|
200
|
+
<img src='https://github.com/lacostej.png' width='140px;'>
|
|
201
|
+
</a>
|
|
202
|
+
<h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
|
|
203
|
+
</td>
|
|
204
204
|
</table>
|
|
205
205
|
|
|
206
206
|
Special thanks to all [contributors](https://github.com/fastlane/fastlane/graphs/contributors) for extending and improving _fastlane_.
|
|
@@ -406,14 +406,16 @@ If you're not using `Fastfile`, you can also use the `force_for_new_devices` opt
|
|
|
406
406
|
fastlane match adhoc --force_for_new_devices
|
|
407
407
|
```
|
|
408
408
|
|
|
409
|
-
#####
|
|
409
|
+
##### Managed capabilities
|
|
410
410
|
|
|
411
|
-
|
|
411
|
+
> [!IMPORTANT]
|
|
412
|
+
> This feature has been deprecated since May 2025, until Apple provides a new solution. We will update this documentation once we have more information on how to handle managed capabilities in the future.
|
|
412
413
|
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
414
|
+
Managed capabilities — formerly known as "additional entitlements" or "custom entitlements", enabled via "templates" — are additional capabilities that require Apple's review and approval before they can be distributed.
|
|
415
|
+
|
|
416
|
+
These capabilities used to be enabled by passing a `template_name` parameter to the _match_ action, which would then generate a provisioning profile with the entitlements specified by the given template. However, this feature was never officially supported by Apple's API (undocumented), and they eventually removed it in May 2025 ([see issue #29498](https://github.com/fastlane/fastlane/issues/29498)). Apple still hasn't provided a replacement for this functionality.
|
|
417
|
+
|
|
418
|
+
As a result, the `template_name` parameter was deprecated in the _match_ action, and it will not generate provisioning profiles with custom entitlements.
|
|
417
419
|
|
|
418
420
|
### Setup Xcode project
|
|
419
421
|
|
|
@@ -588,7 +588,7 @@ Key | Editable While Live | Directory | Filename | Deprecated Filename
|
|
|
588
588
|
|
|
589
589
|
### Available age rating groups
|
|
590
590
|
|
|
591
|
-
####
|
|
591
|
+
#### Infrequent/Mild or Frequent/Intense
|
|
592
592
|
|
|
593
593
|
**Values**
|
|
594
594
|
|
|
@@ -602,29 +602,40 @@ Key | Editable While Live | Directory | Filename | Deprecated Filename
|
|
|
602
602
|
|
|
603
603
|
**Keys**
|
|
604
604
|
|
|
605
|
-
-
|
|
606
|
-
-
|
|
607
|
-
-
|
|
608
|
-
-
|
|
609
|
-
-
|
|
610
|
-
|
|
611
|
-
-
|
|
612
|
-
-
|
|
613
|
-
-
|
|
614
|
-
-
|
|
615
|
-
-
|
|
616
|
-
-
|
|
617
|
-
-
|
|
618
|
-
-
|
|
619
|
-
|
|
605
|
+
- `alcoholTobaccoOrDrugUseOrReferences`
|
|
606
|
+
- `contests`
|
|
607
|
+
- `gamblingSimulated`
|
|
608
|
+
- `medicalOrTreatmentInformation`
|
|
609
|
+
- `profanityOrCrudeHumor`
|
|
610
|
+
|
|
611
|
+
- `horrorOrFearThemes`
|
|
612
|
+
- `kidsAgeBand`
|
|
613
|
+
- `matureOrSuggestiveThemes`
|
|
614
|
+
- `sexualContentGraphicAndNudity`
|
|
615
|
+
- `sexualContentOrNudity`
|
|
616
|
+
- `violenceCartoonOrFantasy`
|
|
617
|
+
- `violenceRealistic`
|
|
618
|
+
- `violenceRealisticProlongedGraphicOrSadistic`
|
|
619
|
+
|
|
620
|
+
#### Fifteen Plus or Nineteen Plus
|
|
621
|
+
|
|
622
|
+
**Values**
|
|
623
|
+
|
|
624
|
+
- `NONE`
|
|
625
|
+
- `FIFTEEN_PLUS`
|
|
626
|
+
- `NINETEEN_PLUS`
|
|
627
|
+
|
|
628
|
+
**Keys**
|
|
629
|
+
|
|
630
|
+
- `koreaAgeRatingOverride`
|
|
620
631
|
|
|
621
632
|
#### Boolean
|
|
622
633
|
|
|
623
634
|
**Keys**
|
|
624
635
|
|
|
625
636
|
- `gambling`
|
|
626
|
-
- 'seventeenPlus'
|
|
627
637
|
- `unrestrictedWebAccess`
|
|
638
|
+
- `lootBox`
|
|
628
639
|
|
|
629
640
|
#### Kids Age
|
|
630
641
|
|
|
@@ -39,6 +39,10 @@ module Fastlane
|
|
|
39
39
|
obj.public_url.to_s
|
|
40
40
|
end
|
|
41
41
|
|
|
42
|
+
def download_file(bucket_name, key, destination_path)
|
|
43
|
+
Aws::S3::TransferManager.new(client: client).download_file(destination_path, bucket: bucket_name, key: key)
|
|
44
|
+
end
|
|
45
|
+
|
|
42
46
|
def delete_file(bucket_name, file_name)
|
|
43
47
|
bucket = find_bucket!(bucket_name)
|
|
44
48
|
file = bucket.object(file_name)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
module Fastlane
|
|
2
|
-
VERSION = '2.
|
|
2
|
+
VERSION = '2.229.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
|
|
@@ -5063,7 +5063,7 @@ public func getManagedPlayStorePublishingRights(jsonKey: OptionalConfigValue<Str
|
|
|
5063
5063
|
- skipCertificateVerification: Skips the verification of the certificates for every existing profiles. This will make sure the provisioning profile can be used on the local machine
|
|
5064
5064
|
- platform: Set the provisioning profile's platform (i.e. ios, tvos, macos, catalyst)
|
|
5065
5065
|
- readonly: Only fetch existing profile, don't generate new ones
|
|
5066
|
-
- templateName: The name of provisioning profile template. If the developer account has provisioning profile templates (aka: custom entitlements), the template name can be found by inspecting the Entitlements drop-down while creating/editing a provisioning profile (e.g. "Apple Pay Pass Suppression Development")
|
|
5066
|
+
- templateName: **DEPRECATED!** Removed since May 2025 on App Store Connect API OpenAPI v3.8.0 - Learn more: https://docs.fastlane.tools/actions/match/#managed-capabilities - The name of provisioning profile template. If the developer account has provisioning profile templates (aka: custom entitlements), the template name can be found by inspecting the Entitlements drop-down while creating/editing a provisioning profile (e.g. "Apple Pay Pass Suppression Development")
|
|
5067
5067
|
- failOnNameTaken: Should the command fail if it was about to create a duplicate of an existing provisioning profile. It can happen due to issues on Apple Developer Portal, when profile to be recreated was not properly deleted first
|
|
5068
5068
|
- cachedCertificates: A list of cached certificates
|
|
5069
5069
|
- cachedDevices: A list of cached devices
|
|
@@ -5975,65 +5975,6 @@ public func hgPush(force: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
|
|
5975
5975
|
_ = runner.executeCommand(command)
|
|
5976
5976
|
}
|
|
5977
5977
|
|
|
5978
|
-
/**
|
|
5979
|
-
Send a error/success message to [HipChat](https://www.hipchat.com/)
|
|
5980
|
-
|
|
5981
|
-
- parameters:
|
|
5982
|
-
- message: The message to post on HipChat
|
|
5983
|
-
- channel: The room or @username
|
|
5984
|
-
- apiToken: Hipchat API Token
|
|
5985
|
-
- customColor: Specify a custom color, this overrides the success boolean. Can be one of 'yellow', 'red', 'green', 'purple', 'gray', or 'random'
|
|
5986
|
-
- success: Was this build successful? (true/false)
|
|
5987
|
-
- version: Version of the Hipchat API. Must be 1 or 2
|
|
5988
|
-
- notifyRoom: Should the people in the room be notified? (true/false)
|
|
5989
|
-
- apiHost: The host of the HipChat-Server API
|
|
5990
|
-
- messageFormat: Format of the message to post. Must be either 'html' or 'text'
|
|
5991
|
-
- includeHtmlHeader: Should html formatted messages include a preformatted header? (true/false)
|
|
5992
|
-
- from: Name the message will appear to be sent from
|
|
5993
|
-
|
|
5994
|
-
Send a message to **room** (by default) or a direct message to **@username** with success (green) or failure (red) status.
|
|
5995
|
-
*/
|
|
5996
|
-
public func hipchat(message: String = "",
|
|
5997
|
-
channel: String,
|
|
5998
|
-
apiToken: String,
|
|
5999
|
-
customColor: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
|
6000
|
-
success: OptionalConfigValue<Bool> = .fastlaneDefault(true),
|
|
6001
|
-
version: String,
|
|
6002
|
-
notifyRoom: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
|
6003
|
-
apiHost: String = "api.hipchat.com",
|
|
6004
|
-
messageFormat: String = "html",
|
|
6005
|
-
includeHtmlHeader: OptionalConfigValue<Bool> = .fastlaneDefault(true),
|
|
6006
|
-
from: String = "fastlane")
|
|
6007
|
-
{
|
|
6008
|
-
let messageArg = RubyCommand.Argument(name: "message", value: message, type: nil)
|
|
6009
|
-
let channelArg = RubyCommand.Argument(name: "channel", value: channel, type: nil)
|
|
6010
|
-
let apiTokenArg = RubyCommand.Argument(name: "api_token", value: apiToken, type: nil)
|
|
6011
|
-
let customColorArg = customColor.asRubyArgument(name: "custom_color", type: nil)
|
|
6012
|
-
let successArg = success.asRubyArgument(name: "success", type: nil)
|
|
6013
|
-
let versionArg = RubyCommand.Argument(name: "version", value: version, type: nil)
|
|
6014
|
-
let notifyRoomArg = notifyRoom.asRubyArgument(name: "notify_room", type: nil)
|
|
6015
|
-
let apiHostArg = RubyCommand.Argument(name: "api_host", value: apiHost, type: nil)
|
|
6016
|
-
let messageFormatArg = RubyCommand.Argument(name: "message_format", value: messageFormat, type: nil)
|
|
6017
|
-
let includeHtmlHeaderArg = includeHtmlHeader.asRubyArgument(name: "include_html_header", type: nil)
|
|
6018
|
-
let fromArg = RubyCommand.Argument(name: "from", value: from, type: nil)
|
|
6019
|
-
let array: [RubyCommand.Argument?] = [messageArg,
|
|
6020
|
-
channelArg,
|
|
6021
|
-
apiTokenArg,
|
|
6022
|
-
customColorArg,
|
|
6023
|
-
successArg,
|
|
6024
|
-
versionArg,
|
|
6025
|
-
notifyRoomArg,
|
|
6026
|
-
apiHostArg,
|
|
6027
|
-
messageFormatArg,
|
|
6028
|
-
includeHtmlHeaderArg,
|
|
6029
|
-
fromArg]
|
|
6030
|
-
let args: [RubyCommand.Argument] = array
|
|
6031
|
-
.filter { $0?.value != nil }
|
|
6032
|
-
.compactMap { $0 }
|
|
6033
|
-
let command = RubyCommand(commandID: "", methodName: "hipchat", className: nil, args: args)
|
|
6034
|
-
_ = runner.executeCommand(command)
|
|
6035
|
-
}
|
|
6036
|
-
|
|
6037
5978
|
/**
|
|
6038
5979
|
Refer to [App Center](https://github.com/Microsoft/fastlane-plugin-appcenter/)
|
|
6039
5980
|
|
|
@@ -6817,7 +6758,7 @@ public func makeChangelogFromJenkins(fallbackChangelog: String = "",
|
|
|
6817
6758
|
- skipDocs: Skip generation of a README.md for the created git repository
|
|
6818
6759
|
- platform: Set the provisioning profile's platform to work with (i.e. ios, tvos, macos, catalyst)
|
|
6819
6760
|
- deriveCatalystAppIdentifier: Enable this if you have the Mac Catalyst capability enabled and your project was created with Xcode 11.3 or earlier. Prepends 'maccatalyst.' to the app identifier for the provisioning profile mapping
|
|
6820
|
-
- templateName: The name of provisioning profile template. If the developer account has provisioning profile templates (aka: custom entitlements), the template name can be found by inspecting the Entitlements drop-down while creating/editing a provisioning profile (e.g. "Apple Pay Pass Suppression Development")
|
|
6761
|
+
- templateName: **DEPRECATED!** Removed since May 2025 on App Store Connect API OpenAPI v3.8.0 - Learn more: https://docs.fastlane.tools/actions/match/#managed-capabilities - The name of provisioning profile template. If the developer account has provisioning profile templates (aka: custom entitlements), the template name can be found by inspecting the Entitlements drop-down while creating/editing a provisioning profile (e.g. "Apple Pay Pass Suppression Development")
|
|
6821
6762
|
- profileName: A custom name for the provisioning profile. This will replace the default provisioning profile name if specified
|
|
6822
6763
|
- failOnNameTaken: Should the command fail if it was about to create a duplicate of an existing provisioning profile. It can happen due to issues on Apple Developer Portal, when profile to be recreated was not properly deleted first
|
|
6823
6764
|
- skipCertificateMatching: Set to true if there is no access to Apple developer portal but there are certificates, keys and profiles provided. Only works with match import action
|
|
@@ -7056,7 +6997,7 @@ public func match(type: String = matchfile.type,
|
|
|
7056
6997
|
- skipDocs: Skip generation of a README.md for the created git repository
|
|
7057
6998
|
- platform: Set the provisioning profile's platform to work with (i.e. ios, tvos, macos, catalyst)
|
|
7058
6999
|
- deriveCatalystAppIdentifier: Enable this if you have the Mac Catalyst capability enabled and your project was created with Xcode 11.3 or earlier. Prepends 'maccatalyst.' to the app identifier for the provisioning profile mapping
|
|
7059
|
-
- templateName: The name of provisioning profile template. If the developer account has provisioning profile templates (aka: custom entitlements), the template name can be found by inspecting the Entitlements drop-down while creating/editing a provisioning profile (e.g. "Apple Pay Pass Suppression Development")
|
|
7000
|
+
- templateName: **DEPRECATED!** Removed since May 2025 on App Store Connect API OpenAPI v3.8.0 - Learn more: https://docs.fastlane.tools/actions/match/#managed-capabilities - The name of provisioning profile template. If the developer account has provisioning profile templates (aka: custom entitlements), the template name can be found by inspecting the Entitlements drop-down while creating/editing a provisioning profile (e.g. "Apple Pay Pass Suppression Development")
|
|
7060
7001
|
- profileName: A custom name for the provisioning profile. This will replace the default provisioning profile name if specified
|
|
7061
7002
|
- failOnNameTaken: Should the command fail if it was about to create a duplicate of an existing provisioning profile. It can happen due to issues on Apple Developer Portal, when profile to be recreated was not properly deleted first
|
|
7062
7003
|
- skipCertificateMatching: Set to true if there is no access to Apple developer portal but there are certificates, keys and profiles provided. Only works with match import action
|
|
@@ -10126,7 +10067,7 @@ public func setupTravis(force: OptionalConfigValue<Bool> = .fastlaneDefault(fals
|
|
|
10126
10067
|
- skipCertificateVerification: Skips the verification of the certificates for every existing profiles. This will make sure the provisioning profile can be used on the local machine
|
|
10127
10068
|
- platform: Set the provisioning profile's platform (i.e. ios, tvos, macos, catalyst)
|
|
10128
10069
|
- readonly: Only fetch existing profile, don't generate new ones
|
|
10129
|
-
- templateName: The name of provisioning profile template. If the developer account has provisioning profile templates (aka: custom entitlements), the template name can be found by inspecting the Entitlements drop-down while creating/editing a provisioning profile (e.g. "Apple Pay Pass Suppression Development")
|
|
10070
|
+
- templateName: **DEPRECATED!** Removed since May 2025 on App Store Connect API OpenAPI v3.8.0 - Learn more: https://docs.fastlane.tools/actions/match/#managed-capabilities - The name of provisioning profile template. If the developer account has provisioning profile templates (aka: custom entitlements), the template name can be found by inspecting the Entitlements drop-down while creating/editing a provisioning profile (e.g. "Apple Pay Pass Suppression Development")
|
|
10130
10071
|
- failOnNameTaken: Should the command fail if it was about to create a duplicate of an existing provisioning profile. It can happen due to issues on Apple Developer Portal, when profile to be recreated was not properly deleted first
|
|
10131
10072
|
- cachedCertificates: A list of cached certificates
|
|
10132
10073
|
- cachedDevices: A list of cached devices
|
|
@@ -11386,7 +11327,7 @@ public func swiftlint(mode: String = "lint",
|
|
|
11386
11327
|
- skipDocs: Skip generation of a README.md for the created git repository
|
|
11387
11328
|
- platform: Set the provisioning profile's platform to work with (i.e. ios, tvos, macos, catalyst)
|
|
11388
11329
|
- deriveCatalystAppIdentifier: Enable this if you have the Mac Catalyst capability enabled and your project was created with Xcode 11.3 or earlier. Prepends 'maccatalyst.' to the app identifier for the provisioning profile mapping
|
|
11389
|
-
- templateName: The name of provisioning profile template. If the developer account has provisioning profile templates (aka: custom entitlements), the template name can be found by inspecting the Entitlements drop-down while creating/editing a provisioning profile (e.g. "Apple Pay Pass Suppression Development")
|
|
11330
|
+
- templateName: **DEPRECATED!** Removed since May 2025 on App Store Connect API OpenAPI v3.8.0 - Learn more: https://docs.fastlane.tools/actions/match/#managed-capabilities - The name of provisioning profile template. If the developer account has provisioning profile templates (aka: custom entitlements), the template name can be found by inspecting the Entitlements drop-down while creating/editing a provisioning profile (e.g. "Apple Pay Pass Suppression Development")
|
|
11390
11331
|
- profileName: A custom name for the provisioning profile. This will replace the default provisioning profile name if specified
|
|
11391
11332
|
- failOnNameTaken: Should the command fail if it was about to create a duplicate of an existing provisioning profile. It can happen due to issues on Apple Developer Portal, when profile to be recreated was not properly deleted first
|
|
11392
11333
|
- skipCertificateMatching: Set to true if there is no access to Apple developer portal but there are certificates, keys and profiles provided. Only works with match import action
|
|
@@ -13684,7 +13625,7 @@ public func xcov(workspace: OptionalConfigValue<String?> = .fastlaneDefault(nil)
|
|
|
13684
13625
|
coverallsServiceJobId: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
|
13685
13626
|
coverallsRepoToken: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
|
13686
13627
|
xcconfig: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
|
13687
|
-
ideFoundationPath: String = "/Applications/
|
|
13628
|
+
ideFoundationPath: String = "/Applications/Xcode_16.4.app/Contents/Developer/../Frameworks/IDEFoundation.framework/Versions/A/IDEFoundation",
|
|
13688
13629
|
legacySupport: OptionalConfigValue<Bool> = .fastlaneDefault(false))
|
|
13689
13630
|
{
|
|
13690
13631
|
let workspaceArg = workspace.asRubyArgument(name: "workspace", type: nil)
|
|
@@ -13887,4 +13828,4 @@ public let snapshotfile: Snapshotfile = .init()
|
|
|
13887
13828
|
|
|
13888
13829
|
// Please don't remove the lines below
|
|
13889
13830
|
// They are used to detect outdated files
|
|
13890
|
-
// FastlaneRunnerAPIVersion [0.9.
|
|
13831
|
+
// FastlaneRunnerAPIVersion [0.9.190]
|
|
@@ -146,7 +146,7 @@ public protocol MatchfileProtocol: AnyObject {
|
|
|
146
146
|
/// Enable this if you have the Mac Catalyst capability enabled and your project was created with Xcode 11.3 or earlier. Prepends 'maccatalyst.' to the app identifier for the provisioning profile mapping
|
|
147
147
|
var deriveCatalystAppIdentifier: Bool { get }
|
|
148
148
|
|
|
149
|
-
/// The name of provisioning profile template. If the developer account has provisioning profile templates (aka: custom entitlements), the template name can be found by inspecting the Entitlements drop-down while creating/editing a provisioning profile (e.g. "Apple Pay Pass Suppression Development")
|
|
149
|
+
/// **DEPRECATED!** Removed since May 2025 on App Store Connect API OpenAPI v3.8.0 - Learn more: https://docs.fastlane.tools/actions/match/#managed-capabilities - The name of provisioning profile template. If the developer account has provisioning profile templates (aka: custom entitlements), the template name can be found by inspecting the Entitlements drop-down while creating/editing a provisioning profile (e.g. "Apple Pay Pass Suppression Development")
|
|
150
150
|
var templateName: String? { get }
|
|
151
151
|
|
|
152
152
|
/// A custom name for the provisioning profile. This will replace the default provisioning profile name if specified
|
|
@@ -232,4 +232,4 @@ public extension MatchfileProtocol {
|
|
|
232
232
|
|
|
233
233
|
// Please don't remove the lines below
|
|
234
234
|
// They are used to detect outdated files
|
|
235
|
-
// FastlaneRunnerAPIVersion [0.9.
|
|
235
|
+
// FastlaneRunnerAPIVersion [0.9.134]
|
data/fastlane/swift/Runner.swift
CHANGED
|
@@ -51,7 +51,7 @@ class SocketClient: NSObject {
|
|
|
51
51
|
|
|
52
52
|
private(set) weak var socketDelegate: SocketClientDelegateProtocol?
|
|
53
53
|
|
|
54
|
-
|
|
54
|
+
private(set) var socketStatus: SocketStatus
|
|
55
55
|
|
|
56
56
|
// localhost only, this prevents other computers from connecting
|
|
57
57
|
init(host: String = "localhost", port: UInt32 = 2000, commandTimeoutSeconds: Int = defaultCommandTimeoutSeconds, socketDelegate: SocketClientDelegateProtocol) {
|
|
@@ -110,13 +110,13 @@ class SocketClient: NSObject {
|
|
|
110
110
|
socketDelegate?.connectionsOpened()
|
|
111
111
|
}
|
|
112
112
|
|
|
113
|
-
|
|
113
|
+
func send(rubyCommand: RubyCommandable) {
|
|
114
114
|
verbose(message: "sending: \(rubyCommand.json)")
|
|
115
115
|
send(string: rubyCommand.json)
|
|
116
116
|
writeSemaphore.signal()
|
|
117
117
|
}
|
|
118
118
|
|
|
119
|
-
|
|
119
|
+
func sendComplete() {
|
|
120
120
|
closeSession(sendAbort: true)
|
|
121
121
|
}
|
|
122
122
|
|
|
@@ -193,11 +193,11 @@ class SocketClient: NSObject {
|
|
|
193
193
|
socketDelegate?.connectionsClosed()
|
|
194
194
|
}
|
|
195
195
|
|
|
196
|
-
|
|
196
|
+
func enter() {
|
|
197
197
|
dispatchGroup.enter()
|
|
198
198
|
}
|
|
199
199
|
|
|
200
|
-
|
|
200
|
+
func leave() {
|
|
201
201
|
readSemaphore.signal()
|
|
202
202
|
writeSemaphore.signal()
|
|
203
203
|
}
|
data/match/lib/match/options.rb
CHANGED
|
@@ -327,6 +327,7 @@ module Match
|
|
|
327
327
|
env_name: "MATCH_PROVISIONING_PROFILE_TEMPLATE_NAME",
|
|
328
328
|
description: "The name of provisioning profile template. If the developer account has provisioning profile templates (aka: custom entitlements), the template name can be found by inspecting the Entitlements drop-down while creating/editing a provisioning profile (e.g. \"Apple Pay Pass Suppression Development\")",
|
|
329
329
|
optional: true,
|
|
330
|
+
deprecated: "Removed since May 2025 on App Store Connect API OpenAPI v3.8.0 - Learn more: https://docs.fastlane.tools/actions/match/#managed-capabilities",
|
|
330
331
|
default_value: nil),
|
|
331
332
|
FastlaneCore::ConfigItem.new(key: :profile_name,
|
|
332
333
|
env_name: "MATCH_PROVISIONING_PROFILE_NAME",
|
|
@@ -105,12 +105,9 @@ module Match
|
|
|
105
105
|
# so that we limit the download to only files that are specific to this team, and avoid downloads + decryption of unnecessary files.
|
|
106
106
|
key_prefix = team_id.nil? ? s3_object_prefix : File.join(s3_object_prefix, team_id, '').delete_prefix('/')
|
|
107
107
|
|
|
108
|
-
s3_client.find_bucket!(s3_bucket).objects(prefix: key_prefix).
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
# the string represent a remote location, not a local file in disk.
|
|
112
|
-
next if object.key.end_with?("/")
|
|
113
|
-
|
|
108
|
+
objects_to_download = s3_client.find_bucket!(s3_bucket).objects(prefix: key_prefix).reject { |object| object.key.end_with?("/") }
|
|
109
|
+
UI.message("Downloading #{objects_to_download.count} files from S3 bucket...")
|
|
110
|
+
objects_to_download.each do |object|
|
|
114
111
|
file_path = strip_s3_object_prefix(object.key) # :s3_object_prefix:team_id/path/to/file
|
|
115
112
|
|
|
116
113
|
# strip s3_prefix from file_path
|
|
@@ -119,7 +116,7 @@ module Match
|
|
|
119
116
|
FileUtils.mkdir_p(File.expand_path("..", download_path))
|
|
120
117
|
UI.verbose("Downloading file from S3 '#{file_path}' on bucket #{self.s3_bucket}")
|
|
121
118
|
|
|
122
|
-
|
|
119
|
+
s3_client.download_file(s3_bucket, object.key, download_path)
|
|
123
120
|
end
|
|
124
121
|
UI.verbose("Successfully downloaded files from S3 to #{self.working_directory}")
|
|
125
122
|
end
|
data/sigh/lib/sigh/options.rb
CHANGED
|
@@ -190,6 +190,7 @@ module Sigh
|
|
|
190
190
|
env_name: "SIGH_PROVISIONING_PROFILE_TEMPLATE_NAME",
|
|
191
191
|
description: "The name of provisioning profile template. If the developer account has provisioning profile templates (aka: custom entitlements), the template name can be found by inspecting the Entitlements drop-down while creating/editing a provisioning profile (e.g. \"Apple Pay Pass Suppression Development\")",
|
|
192
192
|
optional: true,
|
|
193
|
+
deprecated: "Removed since May 2025 on App Store Connect API OpenAPI v3.8.0 - Learn more: https://docs.fastlane.tools/actions/match/#managed-capabilities",
|
|
193
194
|
default_value: nil),
|
|
194
195
|
FastlaneCore::ConfigItem.new(key: :fail_on_name_taken,
|
|
195
196
|
env_name: "SIGH_FAIL_ON_NAME_TAKEN",
|
data/sigh/lib/sigh/runner.rb
CHANGED
|
@@ -174,13 +174,16 @@ module Sigh
|
|
|
174
174
|
|
|
175
175
|
UI.important("Creating new provisioning profile for '#{Sigh.config[:app_identifier]}' with name '#{name}' for '#{Sigh.config[:platform]}' platform")
|
|
176
176
|
|
|
177
|
+
unless Sigh.config[:template_name].nil?
|
|
178
|
+
UI.important("Template name is set to '#{Sigh.config[:template_name]}', however, this is not supported by the App Store Connect API anymore, since May 2025. The template name will be ignored. For more information: https://docs.fastlane.tools/actions/match/#managed-capabilities")
|
|
179
|
+
end
|
|
180
|
+
|
|
177
181
|
profile = Spaceship::ConnectAPI::Profile.create(
|
|
178
182
|
name: name,
|
|
179
183
|
profile_type: profile_type,
|
|
180
184
|
bundle_id_id: bundle_id.id,
|
|
181
185
|
certificate_ids: certificates_to_use.map(&:id),
|
|
182
|
-
device_ids: devices_to_use.map(&:id)
|
|
183
|
-
template_name: Sigh.config[:template_name]
|
|
186
|
+
device_ids: devices_to_use.map(&:id)
|
|
184
187
|
)
|
|
185
188
|
|
|
186
189
|
profile
|
|
@@ -8,6 +8,7 @@ module Spaceship
|
|
|
8
8
|
attr_accessor :alcohol_tobacco_or_drug_use_or_references
|
|
9
9
|
attr_accessor :contests
|
|
10
10
|
attr_accessor :gambling_simulated
|
|
11
|
+
attr_accessor :korea_age_rating_override
|
|
11
12
|
attr_accessor :medical_or_treatment_information
|
|
12
13
|
attr_accessor :profanity_or_crude_humor
|
|
13
14
|
attr_accessor :sexual_content_graphic_and_nudity
|
|
@@ -20,7 +21,7 @@ module Spaceship
|
|
|
20
21
|
|
|
21
22
|
# Boolean
|
|
22
23
|
attr_accessor :gambling
|
|
23
|
-
attr_accessor :
|
|
24
|
+
attr_accessor :loot_box
|
|
24
25
|
attr_accessor :unrestricted_web_access
|
|
25
26
|
|
|
26
27
|
# KidsAge
|
|
@@ -46,9 +47,10 @@ module Spaceship
|
|
|
46
47
|
"contests" => "contests",
|
|
47
48
|
"gambling" => "gambling",
|
|
48
49
|
"gamblingSimulated" => "gambling_simulated",
|
|
50
|
+
"koreaAgeRatingOverride" => "korea_age_rating_override",
|
|
51
|
+
"lootBox" => "loot_box",
|
|
49
52
|
"medicalOrTreatmentInformation" => "medical_or_treatment_information",
|
|
50
53
|
"profanityOrCrudeHumor" => "profanity_or_crude_humor",
|
|
51
|
-
"seventeenPlus" => "seventeen_plus",
|
|
52
54
|
"sexualContentGraphicAndNudity" => "sexual_content_graphic_and_nudity",
|
|
53
55
|
"sexualContentOrNudity" => "sexual_content_or_nudity",
|
|
54
56
|
"horrorOrFearThemes" => "horror_or_fear_themes",
|
|
@@ -84,7 +84,7 @@ module Spaceship
|
|
|
84
84
|
return resps.flat_map(&:to_models)
|
|
85
85
|
end
|
|
86
86
|
|
|
87
|
-
def self.create(client: nil, name: nil, profile_type: nil, bundle_id_id: nil, certificate_ids: nil, device_ids: nil
|
|
87
|
+
def self.create(client: nil, name: nil, profile_type: nil, bundle_id_id: nil, certificate_ids: nil, device_ids: nil)
|
|
88
88
|
client ||= Spaceship::ConnectAPI
|
|
89
89
|
resp = client.post_profiles(
|
|
90
90
|
bundle_id_id: bundle_id_id,
|
|
@@ -92,8 +92,7 @@ module Spaceship
|
|
|
92
92
|
devices: device_ids,
|
|
93
93
|
attributes: {
|
|
94
94
|
name: name,
|
|
95
|
-
profileType: profile_type
|
|
96
|
-
templateName: template_name
|
|
95
|
+
profileType: profile_type
|
|
97
96
|
}
|
|
98
97
|
)
|
|
99
98
|
return resp.to_models.first
|
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.229.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
|
-
- Satoshi Namai
|
|
8
|
-
- Manish Rathi
|
|
9
7
|
- Felix Krause
|
|
10
|
-
-
|
|
8
|
+
- Helmut Januschka
|
|
11
9
|
- Andrew McBurney
|
|
12
|
-
-
|
|
13
|
-
-
|
|
14
|
-
-
|
|
15
|
-
-
|
|
10
|
+
- Daniel Jankowski
|
|
11
|
+
- Iulian Onofrei
|
|
12
|
+
- Danielle Tomlinson
|
|
13
|
+
- Jérôme Lacoste
|
|
16
14
|
- Aaron Brager
|
|
17
15
|
- Maksym Grebenets
|
|
18
|
-
-
|
|
19
|
-
- Daniel Jankowski
|
|
16
|
+
- Max Ott
|
|
20
17
|
- Jorge Revuelta H
|
|
21
|
-
-
|
|
18
|
+
- Łukasz Grabowski
|
|
19
|
+
- Jimmy Dee
|
|
20
|
+
- Manu Wallner
|
|
21
|
+
- Kohki Miki
|
|
22
|
+
- Josh Holtz
|
|
23
|
+
- Satoshi Namai
|
|
22
24
|
- Olivier Halligon
|
|
23
25
|
- Luka Mirosevic
|
|
24
|
-
-
|
|
25
|
-
-
|
|
26
|
-
-
|
|
26
|
+
- Matthew Ellis
|
|
27
|
+
- Stefan Natchev
|
|
28
|
+
- Joshua Liebowitz
|
|
29
|
+
- Manish Rathi
|
|
27
30
|
- Jan Piotrowski
|
|
28
31
|
- Fumiya Nakamura
|
|
29
|
-
-
|
|
30
|
-
- Łukasz Grabowski
|
|
31
|
-
- Danielle Tomlinson
|
|
32
|
-
- Iulian Onofrei
|
|
32
|
+
- Roger Oba
|
|
33
33
|
autorequire:
|
|
34
34
|
bindir: bin
|
|
35
35
|
cert_chain: []
|
|
36
|
-
date: 2025-
|
|
36
|
+
date: 2025-11-21 00:00:00.000000000 Z
|
|
37
37
|
dependencies:
|
|
38
38
|
- !ruby/object:Gem::Dependency
|
|
39
39
|
name: addressable
|
|
@@ -735,6 +735,48 @@ dependencies:
|
|
|
735
735
|
- - "~>"
|
|
736
736
|
- !ruby/object:Gem::Version
|
|
737
737
|
version: 0.4.1
|
|
738
|
+
- !ruby/object:Gem::Dependency
|
|
739
|
+
name: mutex_m
|
|
740
|
+
requirement: !ruby/object:Gem::Requirement
|
|
741
|
+
requirements:
|
|
742
|
+
- - "~>"
|
|
743
|
+
- !ruby/object:Gem::Version
|
|
744
|
+
version: 0.3.0
|
|
745
|
+
type: :runtime
|
|
746
|
+
prerelease: false
|
|
747
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
748
|
+
requirements:
|
|
749
|
+
- - "~>"
|
|
750
|
+
- !ruby/object:Gem::Version
|
|
751
|
+
version: 0.3.0
|
|
752
|
+
- !ruby/object:Gem::Dependency
|
|
753
|
+
name: csv
|
|
754
|
+
requirement: !ruby/object:Gem::Requirement
|
|
755
|
+
requirements:
|
|
756
|
+
- - "~>"
|
|
757
|
+
- !ruby/object:Gem::Version
|
|
758
|
+
version: '3.3'
|
|
759
|
+
type: :runtime
|
|
760
|
+
prerelease: false
|
|
761
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
762
|
+
requirements:
|
|
763
|
+
- - "~>"
|
|
764
|
+
- !ruby/object:Gem::Version
|
|
765
|
+
version: '3.3'
|
|
766
|
+
- !ruby/object:Gem::Dependency
|
|
767
|
+
name: abbrev
|
|
768
|
+
requirement: !ruby/object:Gem::Requirement
|
|
769
|
+
requirements:
|
|
770
|
+
- - "~>"
|
|
771
|
+
- !ruby/object:Gem::Version
|
|
772
|
+
version: 0.1.2
|
|
773
|
+
type: :runtime
|
|
774
|
+
prerelease: false
|
|
775
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
776
|
+
requirements:
|
|
777
|
+
- - "~>"
|
|
778
|
+
- !ruby/object:Gem::Version
|
|
779
|
+
version: 0.1.2
|
|
738
780
|
description: The easiest way to automate beta deployments and releases for your iOS
|
|
739
781
|
and Android apps
|
|
740
782
|
email:
|
|
@@ -928,7 +970,6 @@ files:
|
|
|
928
970
|
- fastlane/lib/fastlane/actions/hg_commit_version_bump.rb
|
|
929
971
|
- fastlane/lib/fastlane/actions/hg_ensure_clean_status.rb
|
|
930
972
|
- fastlane/lib/fastlane/actions/hg_push.rb
|
|
931
|
-
- fastlane/lib/fastlane/actions/hipchat.rb
|
|
932
973
|
- fastlane/lib/fastlane/actions/hockey.rb
|
|
933
974
|
- fastlane/lib/fastlane/actions/ifttt.rb
|
|
934
975
|
- fastlane/lib/fastlane/actions/import.rb
|
|
@@ -1,200 +0,0 @@
|
|
|
1
|
-
module Fastlane
|
|
2
|
-
module Actions
|
|
3
|
-
module SharedValues
|
|
4
|
-
end
|
|
5
|
-
|
|
6
|
-
class HipchatAction < Action
|
|
7
|
-
def self.run(options)
|
|
8
|
-
require 'net/http'
|
|
9
|
-
require 'uri'
|
|
10
|
-
|
|
11
|
-
api_token = options[:api_token]
|
|
12
|
-
api_version = options[:version]
|
|
13
|
-
api_host = options[:api_host]
|
|
14
|
-
|
|
15
|
-
message_format = options[:message_format]
|
|
16
|
-
|
|
17
|
-
channel = options[:channel]
|
|
18
|
-
if ['yellow', 'red', 'green', 'purple', 'gray', 'random'].include?(options[:custom_color]) == true
|
|
19
|
-
color = options[:custom_color]
|
|
20
|
-
else
|
|
21
|
-
color = (options[:success] ? 'green' : 'red')
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
from = options[:from]
|
|
25
|
-
|
|
26
|
-
message = options[:message]
|
|
27
|
-
if (message_format == "html") && (options[:include_html_header] == true)
|
|
28
|
-
message = "<table><tr><td><img src='https://fastlane.tools/assets/img/fastlane_icon.png' width='50' height='50'></td><td>#{message[0..9999]}</td></tr></table>"
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
if api_version.to_i == 1
|
|
32
|
-
########## running on V1 ##########
|
|
33
|
-
if user?(channel)
|
|
34
|
-
UI.user_error!("HipChat private message not working with API V1 please use API V2 instead")
|
|
35
|
-
else
|
|
36
|
-
uri = URI.parse("https://#{api_host}/v1/rooms/message")
|
|
37
|
-
response = Net::HTTP.post_form(uri, { 'from' => from,
|
|
38
|
-
'auth_token' => api_token,
|
|
39
|
-
'color' => color,
|
|
40
|
-
'message_format' => message_format,
|
|
41
|
-
'room_id' => channel,
|
|
42
|
-
'message' => message,
|
|
43
|
-
'notify' => options[:notify_room] ? '1' : '0' })
|
|
44
|
-
|
|
45
|
-
check_response_code(response, channel)
|
|
46
|
-
end
|
|
47
|
-
else
|
|
48
|
-
########## running on V2 ##########
|
|
49
|
-
# Escape channel's name to guarantee it is a valid URL resource.
|
|
50
|
-
# First of all we verify that the value is not already escaped,
|
|
51
|
-
# escaping an escaped value will produce a wrong channel name.
|
|
52
|
-
require 'addressable/uri'
|
|
53
|
-
escaped_channel = Addressable::URI.encode(channel) == channel ? Addressable::URI.encode(channel) : channel
|
|
54
|
-
if user?(channel)
|
|
55
|
-
params = { 'message' => message, 'message_format' => message_format }
|
|
56
|
-
json_headers = { 'Content-Type' => 'application/json',
|
|
57
|
-
'Accept' => 'application/json', 'Authorization' => "Bearer #{api_token}" }
|
|
58
|
-
|
|
59
|
-
uri = URI.parse("https://#{api_host}/v2/user/#{escaped_channel}/message")
|
|
60
|
-
http = Net::HTTP.new(uri.host, uri.port)
|
|
61
|
-
http.use_ssl = true
|
|
62
|
-
|
|
63
|
-
response = http.post(uri.path, params.to_json, json_headers)
|
|
64
|
-
else
|
|
65
|
-
uri = URI.parse("https://#{api_host}/v2/room/#{escaped_channel}/notification")
|
|
66
|
-
response = Net::HTTP.post_form(uri, { 'from' => from,
|
|
67
|
-
'auth_token' => api_token,
|
|
68
|
-
'color' => color,
|
|
69
|
-
'message_format' => message_format,
|
|
70
|
-
'message' => message,
|
|
71
|
-
'notify' => options[:notify_room] ? 'true' : 'false' })
|
|
72
|
-
end
|
|
73
|
-
check_response_code(response, channel)
|
|
74
|
-
end
|
|
75
|
-
end
|
|
76
|
-
|
|
77
|
-
def self.user?(channel)
|
|
78
|
-
channel.to_s.start_with?('@')
|
|
79
|
-
end
|
|
80
|
-
|
|
81
|
-
def self.check_response_code(response, channel)
|
|
82
|
-
case response.code.to_i
|
|
83
|
-
when 200, 204
|
|
84
|
-
true
|
|
85
|
-
when 404
|
|
86
|
-
UI.user_error!("Channel `#{channel}` not found")
|
|
87
|
-
when 401
|
|
88
|
-
UI.user_error!("Access denied for channel `#{channel}`")
|
|
89
|
-
else
|
|
90
|
-
UI.user_error!("Unexpected #{response.code} for `#{channel}` with response: #{response.body}")
|
|
91
|
-
end
|
|
92
|
-
end
|
|
93
|
-
|
|
94
|
-
def self.description
|
|
95
|
-
"Send a error/success message to [HipChat](https://www.hipchat.com/)"
|
|
96
|
-
end
|
|
97
|
-
|
|
98
|
-
def self.available_options
|
|
99
|
-
[
|
|
100
|
-
FastlaneCore::ConfigItem.new(key: :message,
|
|
101
|
-
env_name: "FL_HIPCHAT_MESSAGE",
|
|
102
|
-
description: "The message to post on HipChat",
|
|
103
|
-
default_value: ''),
|
|
104
|
-
FastlaneCore::ConfigItem.new(key: :channel,
|
|
105
|
-
env_name: "FL_HIPCHAT_CHANNEL",
|
|
106
|
-
description: "The room or @username"),
|
|
107
|
-
FastlaneCore::ConfigItem.new(key: :api_token,
|
|
108
|
-
env_name: "HIPCHAT_API_TOKEN",
|
|
109
|
-
sensitive: true,
|
|
110
|
-
description: "Hipchat API Token",
|
|
111
|
-
verify_block: proc do |value|
|
|
112
|
-
unless value.to_s.length > 0
|
|
113
|
-
UI.error("Please add 'ENV[\"HIPCHAT_API_TOKEN\"] = \"your token\"' to your Fastfile's `before_all` section.")
|
|
114
|
-
UI.user_error!("No HIPCHAT_API_TOKEN given.")
|
|
115
|
-
end
|
|
116
|
-
end),
|
|
117
|
-
FastlaneCore::ConfigItem.new(key: :custom_color,
|
|
118
|
-
env_name: "FL_HIPCHAT_CUSTOM_COLOR",
|
|
119
|
-
description: "Specify a custom color, this overrides the success boolean. Can be one of 'yellow', 'red', 'green', 'purple', 'gray', or 'random'",
|
|
120
|
-
optional: true),
|
|
121
|
-
FastlaneCore::ConfigItem.new(key: :success,
|
|
122
|
-
env_name: "FL_HIPCHAT_SUCCESS",
|
|
123
|
-
description: "Was this build successful? (true/false)",
|
|
124
|
-
optional: true,
|
|
125
|
-
default_value: true,
|
|
126
|
-
type: Boolean),
|
|
127
|
-
FastlaneCore::ConfigItem.new(key: :version,
|
|
128
|
-
env_name: "HIPCHAT_API_VERSION",
|
|
129
|
-
description: "Version of the Hipchat API. Must be 1 or 2",
|
|
130
|
-
verify_block: proc do |value|
|
|
131
|
-
if value.nil? || ![1, 2].include?(value.to_i)
|
|
132
|
-
UI.error("Please add 'ENV[\"HIPCHAT_API_VERSION\"] = \"1 or 2\"' to your Fastfile's `before_all` section.")
|
|
133
|
-
UI.user_error!("No HIPCHAT_API_VERSION given.")
|
|
134
|
-
end
|
|
135
|
-
end),
|
|
136
|
-
FastlaneCore::ConfigItem.new(key: :notify_room,
|
|
137
|
-
env_name: "HIPCHAT_NOTIFY_ROOM",
|
|
138
|
-
description: "Should the people in the room be notified? (true/false)",
|
|
139
|
-
default_value: false,
|
|
140
|
-
optional: true,
|
|
141
|
-
type: Boolean),
|
|
142
|
-
FastlaneCore::ConfigItem.new(key: :api_host,
|
|
143
|
-
env_name: "HIPCHAT_API_HOST",
|
|
144
|
-
description: "The host of the HipChat-Server API",
|
|
145
|
-
default_value: "api.hipchat.com",
|
|
146
|
-
optional: true),
|
|
147
|
-
FastlaneCore::ConfigItem.new(key: :message_format,
|
|
148
|
-
env_name: "FL_HIPCHAT_MESSAGE_FORMAT",
|
|
149
|
-
description: "Format of the message to post. Must be either 'html' or 'text'",
|
|
150
|
-
default_value: "html",
|
|
151
|
-
optional: true,
|
|
152
|
-
verify_block: proc do |value|
|
|
153
|
-
unless ["html", "text"].include?(value.to_s)
|
|
154
|
-
UI.error("Please specify the message format as either 'html' or 'text'.")
|
|
155
|
-
UI.user_error!("Unrecognized message_format.")
|
|
156
|
-
end
|
|
157
|
-
end),
|
|
158
|
-
FastlaneCore::ConfigItem.new(key: :include_html_header,
|
|
159
|
-
env_name: "FL_HIPCHAT_INCLUDE_HTML_HEADER",
|
|
160
|
-
description: "Should html formatted messages include a preformatted header? (true/false)",
|
|
161
|
-
default_value: true,
|
|
162
|
-
optional: true,
|
|
163
|
-
type: Boolean),
|
|
164
|
-
FastlaneCore::ConfigItem.new(key: :from,
|
|
165
|
-
env_name: "FL_HIPCHAT_FROM",
|
|
166
|
-
description: "Name the message will appear to be sent from",
|
|
167
|
-
default_value: "fastlane",
|
|
168
|
-
optional: true)
|
|
169
|
-
]
|
|
170
|
-
end
|
|
171
|
-
|
|
172
|
-
def self.author
|
|
173
|
-
"jingx23"
|
|
174
|
-
end
|
|
175
|
-
|
|
176
|
-
def self.is_supported?(platform)
|
|
177
|
-
true
|
|
178
|
-
end
|
|
179
|
-
|
|
180
|
-
def self.details
|
|
181
|
-
"Send a message to **room** (by default) or a direct message to **@username** with success (green) or failure (red) status."
|
|
182
|
-
end
|
|
183
|
-
|
|
184
|
-
def self.example_code
|
|
185
|
-
[
|
|
186
|
-
'hipchat(
|
|
187
|
-
message: "App successfully released!",
|
|
188
|
-
message_format: "html", # or "text", defaults to "html"
|
|
189
|
-
channel: "Room or @username",
|
|
190
|
-
success: true
|
|
191
|
-
)'
|
|
192
|
-
]
|
|
193
|
-
end
|
|
194
|
-
|
|
195
|
-
def self.category
|
|
196
|
-
:notifications
|
|
197
|
-
end
|
|
198
|
-
end
|
|
199
|
-
end
|
|
200
|
-
end
|