fastlane 2.237.0 → 2.238.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 +111 -104
- data/deliver/lib/deliver/options.rb +1 -1
- data/fastlane/lib/fastlane/actions/deploygate.rb +3 -2
- data/fastlane/lib/fastlane/actions/docs/upload_to_app_store.md.erb +4 -2
- data/fastlane/lib/fastlane/actions/hockey.rb +3 -2
- data/fastlane/lib/fastlane/actions/installr.rb +3 -2
- data/fastlane/lib/fastlane/actions/mailgun.rb +1 -0
- data/fastlane/lib/fastlane/actions/notarize.rb +3 -18
- data/fastlane/lib/fastlane/actions/register_devices.rb +21 -5
- data/fastlane/lib/fastlane/actions/setup_ci.rb +7 -2
- data/fastlane/lib/fastlane/actions/spm.rb +6 -0
- data/fastlane/lib/fastlane/actions/testfairy.rb +5 -3
- data/fastlane/lib/fastlane/actions/tryouts.rb +3 -2
- data/fastlane/lib/fastlane/actions/update_project_team.rb +17 -9
- data/fastlane/lib/fastlane/actions/upload_symbols_to_crashlytics.rb +33 -7
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/fastlane/swift/Deliverfile.swift +1 -1
- data/fastlane/swift/DeliverfileProtocol.swift +2 -2
- data/fastlane/swift/Fastlane.swift +29 -19
- data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.pbxproj +1 -1
- 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_core/lib/fastlane_core/analytics/analytics_event_builder.rb +31 -5
- data/fastlane_core/lib/fastlane_core/analytics/analytics_ingester_client.rb +24 -12
- data/fastlane_core/lib/fastlane_core/analytics/analytics_session.rb +22 -12
- data/fastlane_core/lib/fastlane_core/cert_checker.rb +22 -9
- data/fastlane_core/lib/fastlane_core/helper.rb +4 -3
- data/fastlane_core/lib/fastlane_core/ipa_upload_package_builder.rb +6 -2
- data/fastlane_core/lib/fastlane_core/pkg_upload_package_builder.rb +1 -1
- data/fastlane_core/lib/fastlane_core/print_table.rb +0 -16
- data/fastlane_core/lib/fastlane_core/queue_worker.rb +10 -1
- data/fastlane_core/lib/fastlane_core/video_utils.rb +4 -2
- data/gym/lib/gym/module.rb +20 -2
- data/pilot/lib/pilot/build_manager.rb +2 -2
- data/pilot/lib/pilot/options.rb +2 -2
- data/pilot/lib/pilot/tester_manager.rb +2 -2
- data/precheck/lib/precheck/rules/copyright_date_rule.rb +1 -1
- data/precheck/lib/precheck/rules/unreachable_urls_rule.rb +2 -2
- data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher_base.rb +4 -1
- data/spaceship/lib/spaceship/client.rb +0 -1
- data/spaceship/lib/spaceship/connect_api/file_uploader.rb +1 -1
- data/spaceship/lib/spaceship/connect_api/models/age_rating_declaration.rb +6 -0
- data/spaceship/lib/spaceship/connect_api/models/beta_group.rb +5 -0
- data/spaceship/lib/spaceship/helper/plist_middleware.rb +37 -8
- metadata +71 -29
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: b83a11ad4335b1a3c678c4a6d0f1aea9f6eb7ccd2fdda1392621a24be1ebc1b9
|
|
4
|
+
data.tar.gz: 40445027ea32c6b0a7d7c761f3aaa148ada6ac0d868f9d1212e68b1c0ff99940
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 915bb8bfd75b4e65b00c6213c861261aaa0b7e3b4ec5aaadc2c4029d90386d8682240628434983ec8891f5399798e584be4410ed1f37a11deb22d24cf61549e4
|
|
7
|
+
data.tar.gz: 206b83080b67e0feadc08b65e59e577ee63be8972826a17dc80ac102aeede7da6b11fe67f9b9c53c2ec6052ded492ae2850b78baecb8faa321dbe8904d079e74
|
data/README.md
CHANGED
|
@@ -36,55 +36,55 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
|
36
36
|
<!-- This table is regenerated and resorted on each release -->
|
|
37
37
|
<table id='team'>
|
|
38
38
|
<tr>
|
|
39
|
-
<td id='
|
|
40
|
-
<a href='https://github.com/
|
|
41
|
-
<img src='https://github.com/
|
|
39
|
+
<td id='iulian-onofrei'>
|
|
40
|
+
<a href='https://github.com/revolter'>
|
|
41
|
+
<img src='https://github.com/revolter.png' width='140px;'>
|
|
42
42
|
</a>
|
|
43
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
43
|
+
<h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
|
|
44
44
|
</td>
|
|
45
|
-
<td id='
|
|
46
|
-
<a href='https://github.com/
|
|
47
|
-
<img src='https://github.com/
|
|
45
|
+
<td id='helmut-januschka'>
|
|
46
|
+
<a href='https://github.com/hjanuschka'>
|
|
47
|
+
<img src='https://github.com/hjanuschka.png' width='140px;'>
|
|
48
48
|
</a>
|
|
49
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
49
|
+
<h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
|
|
50
50
|
</td>
|
|
51
|
-
<td id='
|
|
52
|
-
<a href='https://github.com/
|
|
53
|
-
<img src='https://github.com/
|
|
51
|
+
<td id='kohki-miki'>
|
|
52
|
+
<a href='https://github.com/giginet'>
|
|
53
|
+
<img src='https://github.com/giginet.png' width='140px;'>
|
|
54
54
|
</a>
|
|
55
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
55
|
+
<h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
|
|
56
56
|
</td>
|
|
57
|
-
<td id='
|
|
58
|
-
<a href='https://github.com/
|
|
59
|
-
<img src='https://github.com/
|
|
57
|
+
<td id='felix-krause'>
|
|
58
|
+
<a href='https://github.com/KrauseFx'>
|
|
59
|
+
<img src='https://github.com/KrauseFx.png' width='140px;'>
|
|
60
60
|
</a>
|
|
61
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
61
|
+
<h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
|
|
62
62
|
</td>
|
|
63
|
-
<td id='
|
|
64
|
-
<a href='https://github.com/
|
|
65
|
-
<img src='https://github.com/
|
|
63
|
+
<td id='olivier-halligon'>
|
|
64
|
+
<a href='https://github.com/AliSoftware'>
|
|
65
|
+
<img src='https://github.com/AliSoftware.png' width='140px;'>
|
|
66
66
|
</a>
|
|
67
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
67
|
+
<h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
|
|
68
68
|
</td>
|
|
69
69
|
</tr>
|
|
70
70
|
<tr>
|
|
71
|
-
<td id='
|
|
72
|
-
<a href='https://github.com/
|
|
73
|
-
<img src='https://github.com/
|
|
71
|
+
<td id='stefan-natchev'>
|
|
72
|
+
<a href='https://github.com/snatchev'>
|
|
73
|
+
<img src='https://github.com/snatchev.png' width='140px;'>
|
|
74
74
|
</a>
|
|
75
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
75
|
+
<h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
|
|
76
76
|
</td>
|
|
77
|
-
<td id='
|
|
78
|
-
<a href='https://github.com/
|
|
79
|
-
<img src='https://github.com/
|
|
77
|
+
<td id='łukasz-grabowski'>
|
|
78
|
+
<a href='https://github.com/lucgrabowski'>
|
|
79
|
+
<img src='https://github.com/lucgrabowski.png' width='140px;'>
|
|
80
80
|
</a>
|
|
81
|
-
<h4 align='center'
|
|
81
|
+
<h4 align='center'>Łukasz Grabowski</h4>
|
|
82
82
|
</td>
|
|
83
|
-
<td id='
|
|
84
|
-
<a href='https://github.com/
|
|
85
|
-
<img src='https://github.com/
|
|
83
|
+
<td id='luka-mirosevic'>
|
|
84
|
+
<a href='https://github.com/lmirosevic'>
|
|
85
|
+
<img src='https://github.com/lmirosevic.png' width='140px;'>
|
|
86
86
|
</a>
|
|
87
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
87
|
+
<h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
|
|
88
88
|
</td>
|
|
89
89
|
<td id='joshua-liebowitz'>
|
|
90
90
|
<a href='https://github.com/taquitos'>
|
|
@@ -92,121 +92,121 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
|
92
92
|
</a>
|
|
93
93
|
<h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
|
|
94
94
|
</td>
|
|
95
|
-
<td id='
|
|
96
|
-
<a href='https://github.com/
|
|
97
|
-
<img src='https://github.com/
|
|
95
|
+
<td id='daniel-jankowski'>
|
|
96
|
+
<a href='https://github.com/mollyIV'>
|
|
97
|
+
<img src='https://github.com/mollyIV.png' width='140px;'>
|
|
98
98
|
</a>
|
|
99
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
99
|
+
<h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
|
|
100
100
|
</td>
|
|
101
101
|
</tr>
|
|
102
102
|
<tr>
|
|
103
|
-
<td id='
|
|
104
|
-
<a href='https://github.com/
|
|
105
|
-
<img src='https://github.com/
|
|
103
|
+
<td id='fumiya-nakamura'>
|
|
104
|
+
<a href='https://github.com/nafu'>
|
|
105
|
+
<img src='https://github.com/nafu.png' width='140px;'>
|
|
106
106
|
</a>
|
|
107
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
107
|
+
<h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
|
|
108
108
|
</td>
|
|
109
|
-
<td id='
|
|
110
|
-
<a href='https://github.com/
|
|
111
|
-
<img src='https://github.com/
|
|
109
|
+
<td id='manish-rathi'>
|
|
110
|
+
<a href='https://github.com/crazymanish'>
|
|
111
|
+
<img src='https://github.com/crazymanish.png' width='140px;'>
|
|
112
112
|
</a>
|
|
113
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
113
|
+
<h4 align='center'><a href='https://twitter.com/iammanishrathi'>Manish Rathi</a></h4>
|
|
114
114
|
</td>
|
|
115
|
-
<td id='
|
|
116
|
-
<a href='https://github.com/
|
|
117
|
-
<img src='https://github.com/
|
|
115
|
+
<td id='maksym-grebenets'>
|
|
116
|
+
<a href='https://github.com/mgrebenets'>
|
|
117
|
+
<img src='https://github.com/mgrebenets.png' width='140px;'>
|
|
118
118
|
</a>
|
|
119
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
119
|
+
<h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
|
|
120
120
|
</td>
|
|
121
|
-
<td id='
|
|
122
|
-
<a href='https://github.com/
|
|
123
|
-
<img src='https://github.com/
|
|
121
|
+
<td id='matthew-ellis'>
|
|
122
|
+
<a href='https://github.com/matthewellis'>
|
|
123
|
+
<img src='https://github.com/matthewellis.png' width='140px;'>
|
|
124
124
|
</a>
|
|
125
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
125
|
+
<h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
|
|
126
126
|
</td>
|
|
127
|
-
<td id='
|
|
128
|
-
<a href='https://github.com/
|
|
129
|
-
<img src='https://github.com/
|
|
127
|
+
<td id='satoshi-namai'>
|
|
128
|
+
<a href='https://github.com/ainame'>
|
|
129
|
+
<img src='https://github.com/ainame.png' width='140px;'>
|
|
130
130
|
</a>
|
|
131
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
131
|
+
<h4 align='center'><a href='https://twitter.com/ainame'>Satoshi Namai</a></h4>
|
|
132
132
|
</td>
|
|
133
133
|
</tr>
|
|
134
134
|
<tr>
|
|
135
|
-
<td id='
|
|
136
|
-
<a href='https://github.com/
|
|
137
|
-
<img src='https://github.com/
|
|
135
|
+
<td id='jimmy-dee'>
|
|
136
|
+
<a href='https://github.com/jdee'>
|
|
137
|
+
<img src='https://github.com/jdee.png' width='140px;'>
|
|
138
138
|
</a>
|
|
139
|
-
<h4 align='center'
|
|
139
|
+
<h4 align='center'>Jimmy Dee</h4>
|
|
140
140
|
</td>
|
|
141
|
-
<td id='
|
|
142
|
-
<a href='https://github.com/
|
|
143
|
-
<img src='https://github.com/
|
|
141
|
+
<td id='manu-wallner'>
|
|
142
|
+
<a href='https://github.com/milch'>
|
|
143
|
+
<img src='https://github.com/milch.png' width='140px;'>
|
|
144
144
|
</a>
|
|
145
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
145
|
+
<h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
|
|
146
146
|
</td>
|
|
147
|
-
<td id='
|
|
148
|
-
<a href='https://github.com/
|
|
149
|
-
<img src='https://github.com/
|
|
147
|
+
<td id='andrew-mcburney'>
|
|
148
|
+
<a href='https://github.com/armcburney'>
|
|
149
|
+
<img src='https://github.com/armcburney.png' width='140px;'>
|
|
150
150
|
</a>
|
|
151
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
151
|
+
<h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
|
|
152
152
|
</td>
|
|
153
|
-
<td id='
|
|
154
|
-
<a href='https://github.com/
|
|
155
|
-
<img src='https://github.com/
|
|
153
|
+
<td id='jan-piotrowski'>
|
|
154
|
+
<a href='https://github.com/janpio'>
|
|
155
|
+
<img src='https://github.com/janpio.png' width='140px;'>
|
|
156
156
|
</a>
|
|
157
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
157
|
+
<h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
|
|
158
158
|
</td>
|
|
159
|
-
<td id='
|
|
160
|
-
<a href='https://github.com/
|
|
161
|
-
<img src='https://github.com/
|
|
159
|
+
<td id='jorge-revuelta-h'>
|
|
160
|
+
<a href='https://github.com/minuscorp'>
|
|
161
|
+
<img src='https://github.com/minuscorp.png' width='140px;'>
|
|
162
162
|
</a>
|
|
163
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
163
|
+
<h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
|
|
164
164
|
</td>
|
|
165
165
|
</tr>
|
|
166
166
|
<tr>
|
|
167
|
-
<td id='
|
|
168
|
-
<a href='https://github.com/
|
|
169
|
-
<img src='https://github.com/
|
|
167
|
+
<td id='jérôme-lacoste'>
|
|
168
|
+
<a href='https://github.com/lacostej'>
|
|
169
|
+
<img src='https://github.com/lacostej.png' width='140px;'>
|
|
170
170
|
</a>
|
|
171
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
171
|
+
<h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
|
|
172
172
|
</td>
|
|
173
|
-
<td id='
|
|
174
|
-
<a href='https://github.com/
|
|
175
|
-
<img src='https://github.com/
|
|
173
|
+
<td id='connor-tumbleson'>
|
|
174
|
+
<a href='https://github.com/ibotpeaches'>
|
|
175
|
+
<img src='https://github.com/ibotpeaches.png' width='140px;'>
|
|
176
176
|
</a>
|
|
177
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
177
|
+
<h4 align='center'><a href='https://twitter.com/ibotpeaches'>Connor Tumbleson</a></h4>
|
|
178
178
|
</td>
|
|
179
|
-
<td id='
|
|
180
|
-
<a href='https://github.com/
|
|
181
|
-
<img src='https://github.com/
|
|
179
|
+
<td id='roger-oba'>
|
|
180
|
+
<a href='https://github.com/rogerluan'>
|
|
181
|
+
<img src='https://github.com/rogerluan.png' width='140px;'>
|
|
182
182
|
</a>
|
|
183
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
183
|
+
<h4 align='center'><a href='https://twitter.com/rogerluan_'>Roger Oba</a></h4>
|
|
184
184
|
</td>
|
|
185
|
-
<td id='
|
|
186
|
-
<a href='https://github.com/
|
|
187
|
-
<img src='https://github.com/
|
|
185
|
+
<td id='aaron-brager'>
|
|
186
|
+
<a href='https://github.com/getaaron'>
|
|
187
|
+
<img src='https://github.com/getaaron.png' width='140px;'>
|
|
188
188
|
</a>
|
|
189
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
189
|
+
<h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
|
|
190
190
|
</td>
|
|
191
|
-
<td id='
|
|
192
|
-
<a href='https://github.com/
|
|
193
|
-
<img src='https://github.com/
|
|
191
|
+
<td id='max-ott'>
|
|
192
|
+
<a href='https://github.com/max-ott'>
|
|
193
|
+
<img src='https://github.com/max-ott.png' width='140px;'>
|
|
194
194
|
</a>
|
|
195
|
-
<h4 align='center'>
|
|
195
|
+
<h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
|
|
196
196
|
</td>
|
|
197
197
|
</tr>
|
|
198
198
|
<tr>
|
|
199
|
-
<td id='
|
|
200
|
-
<a href='https://github.com/
|
|
201
|
-
<img src='https://github.com/
|
|
199
|
+
<td id='josh-holtz'>
|
|
200
|
+
<a href='https://github.com/joshdholtz'>
|
|
201
|
+
<img src='https://github.com/joshdholtz.png' width='140px;'>
|
|
202
202
|
</a>
|
|
203
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
203
|
+
<h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
|
|
204
204
|
</td>
|
|
205
|
-
<td id='
|
|
206
|
-
<a href='https://github.com/
|
|
207
|
-
<img src='https://github.com/
|
|
205
|
+
<td id='danielle-tomlinson'>
|
|
206
|
+
<a href='https://github.com/endocrimes'>
|
|
207
|
+
<img src='https://github.com/endocrimes.png' width='140px;'>
|
|
208
208
|
</a>
|
|
209
|
-
<h4 align='center'
|
|
209
|
+
<h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
|
|
210
210
|
</td>
|
|
211
211
|
</table>
|
|
212
212
|
|
|
@@ -226,6 +226,13 @@ _fastlane_ tracks a few key metrics to understand how developers are using the t
|
|
|
226
226
|
|
|
227
227
|
* The number of _fastlane_ runs
|
|
228
228
|
* A salted hash of the app identifier or package name, which helps us anonymously identify unique usage of _fastlane_
|
|
229
|
+
* How _fastlane_ is executed (Swift vs Ruby)
|
|
230
|
+
* The _fastlane_ version
|
|
231
|
+
* How _fastlane_ was installed (Homebrew, gem, bundler, etc)
|
|
232
|
+
* The Ruby version
|
|
233
|
+
* The Operating System in use
|
|
234
|
+
* The Xcode version
|
|
235
|
+
* Whether it was run in non-interactively or interactively
|
|
229
236
|
|
|
230
237
|
You can easily opt-out of metrics collection by adding `opt_out_usage` at the top of your `Fastfile` or by setting the environment variable `FASTLANE_OPT_OUT_USAGE`. [Check out the metrics code on GitHub](https://github.com/fastlane/fastlane/tree/master/fastlane_core/lib/fastlane_core/analytics)
|
|
231
238
|
|
|
@@ -326,7 +326,7 @@ module Deliver
|
|
|
326
326
|
# rubocop:disable Layout/LineLength
|
|
327
327
|
FastlaneCore::ConfigItem.new(key: :itc_provider,
|
|
328
328
|
env_name: "DELIVER_ITC_PROVIDER",
|
|
329
|
-
description: "The provider short name to be used with the iTMSTransporter to identify your team. This value will override the automatically detected provider short name. To get provider short name run `
|
|
329
|
+
description: "The provider short name to be used with the iTMSTransporter to identify your team. This value will override the automatically detected provider short name. To get provider short name run `xcrun iTMSTransporter -m provider -u 'USERNAME' -p 'PASSWORD' -account_type itunes_connect -v off`. The short names of providers should be listed in the second column",
|
|
330
330
|
optional: true,
|
|
331
331
|
code_gen_sensitive: true,
|
|
332
332
|
default_value: CredentialsManager::AppfileConfig.try_fetch_value(:itc_provider),
|
|
@@ -15,13 +15,14 @@ module Fastlane
|
|
|
15
15
|
|
|
16
16
|
def self.upload_build(api_token, user_name, binary, options)
|
|
17
17
|
require 'faraday'
|
|
18
|
-
require '
|
|
18
|
+
require 'faraday/multipart'
|
|
19
|
+
require 'faraday/follow_redirects'
|
|
19
20
|
|
|
20
21
|
connection = Faraday.new(url: DEPLOYGATE_URL_BASE, request: { timeout: 120 }) do |builder|
|
|
21
22
|
builder.request(:multipart)
|
|
22
23
|
builder.request(:json)
|
|
23
24
|
builder.response(:json, content_type: /\bjson$/)
|
|
24
|
-
builder.
|
|
25
|
+
builder.response(:follow_redirects)
|
|
25
26
|
builder.adapter(:net_http)
|
|
26
27
|
end
|
|
27
28
|
|
|
@@ -414,9 +414,9 @@ apple_watch_app_icon('./AppleWatchAppIcon.png')
|
|
|
414
414
|
|
|
415
415
|
The platform of your application (a.e. ios, osx).
|
|
416
416
|
|
|
417
|
-
This option is optional. The default value is "ios" and deliver
|
|
417
|
+
This option is optional. The default value is "ios" and deliver will ignore this option and figure out the platform from your binary if exactly one binary is present.
|
|
418
418
|
|
|
419
|
-
However, in the
|
|
419
|
+
However, in the cases of no binaries or multiple binaries being present, you can specify a platform which you want to deliver explicitly.
|
|
420
420
|
|
|
421
421
|
The available options:
|
|
422
422
|
|
|
@@ -697,6 +697,8 @@ Key | Editable While Live | Directory | Filename
|
|
|
697
697
|
- `profanityOrCrudeHumor`
|
|
698
698
|
- `sexualContentGraphicAndNudity`
|
|
699
699
|
- `sexualContentOrNudity`
|
|
700
|
+
- `socialMedia`
|
|
701
|
+
- `socialMediaAgeRestricted`
|
|
700
702
|
- `violenceCartoonOrFantasy`
|
|
701
703
|
- `violenceRealistic`
|
|
702
704
|
- `violenceRealisticProlongedGraphicOrSadistic`
|
|
@@ -9,7 +9,8 @@ module Fastlane
|
|
|
9
9
|
class HockeyAction < Action
|
|
10
10
|
def self.connection(options)
|
|
11
11
|
require 'faraday'
|
|
12
|
-
require '
|
|
12
|
+
require 'faraday/multipart'
|
|
13
|
+
require 'faraday/follow_redirects'
|
|
13
14
|
|
|
14
15
|
base_url = options.delete(:bypass_cdn) ? "https://rink.hockeyapp.net" : "https://upload.hockeyapp.net"
|
|
15
16
|
foptions = {
|
|
@@ -19,7 +20,7 @@ module Fastlane
|
|
|
19
20
|
builder.request(:multipart)
|
|
20
21
|
builder.request(:url_encoded)
|
|
21
22
|
builder.response(:json, content_type: /\bjson$/)
|
|
22
|
-
builder.
|
|
23
|
+
builder.response(:follow_redirects)
|
|
23
24
|
builder.adapter(:net_http)
|
|
24
25
|
end
|
|
25
26
|
end
|
|
@@ -23,14 +23,15 @@ module Fastlane
|
|
|
23
23
|
|
|
24
24
|
def self.upload_build(params)
|
|
25
25
|
require 'faraday'
|
|
26
|
-
require '
|
|
26
|
+
require 'faraday/multipart'
|
|
27
|
+
require 'faraday/follow_redirects'
|
|
27
28
|
|
|
28
29
|
url = INSTALLR_API
|
|
29
30
|
connection = Faraday.new(url) do |builder|
|
|
30
31
|
builder.request(:multipart)
|
|
31
32
|
builder.request(:url_encoded)
|
|
32
33
|
builder.response(:json, content_type: /\bjson$/)
|
|
33
|
-
builder.
|
|
34
|
+
builder.response(:follow_redirects)
|
|
34
35
|
builder.adapter(:net_http)
|
|
35
36
|
end
|
|
36
37
|
|
|
@@ -4,7 +4,6 @@ module Fastlane
|
|
|
4
4
|
# rubocop:disable Metrics/PerceivedComplexity
|
|
5
5
|
def self.run(params)
|
|
6
6
|
package_path = params[:package]
|
|
7
|
-
bundle_id = params[:bundle_id]
|
|
8
7
|
skip_stapling = params[:skip_stapling]
|
|
9
8
|
print_log = params[:print_log]
|
|
10
9
|
verbose = params[:verbose]
|
|
@@ -15,7 +14,7 @@ module Fastlane
|
|
|
15
14
|
end
|
|
16
15
|
api_key = Spaceship::ConnectAPI::Token.from(hash: params[:api_key], filepath: params[:api_key_path])
|
|
17
16
|
|
|
18
|
-
# Compress
|
|
17
|
+
# Compress only if .app bundle
|
|
19
18
|
compressed_package_path = nil
|
|
20
19
|
if File.extname(package_path) == '.app'
|
|
21
20
|
compressed_package_path = "#{package_path}.zip"
|
|
@@ -23,22 +22,12 @@ module Fastlane
|
|
|
23
22
|
"ditto -c -k --rsrc --keepParent \"#{package_path}\" \"#{compressed_package_path}\"",
|
|
24
23
|
log: verbose
|
|
25
24
|
)
|
|
26
|
-
|
|
27
|
-
unless bundle_id
|
|
28
|
-
info_plist_path = File.join(package_path, 'Contents', 'Info.plist')
|
|
29
|
-
bundle_id = Actions.sh(
|
|
30
|
-
"/usr/libexec/PlistBuddy -c \"Print :CFBundleIdentifier\" \"#{info_plist_path}\"",
|
|
31
|
-
log: verbose
|
|
32
|
-
).strip
|
|
33
|
-
end
|
|
34
25
|
end
|
|
35
26
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
notarytool(params, package_path, bundle_id, skip_stapling, print_log, verbose, api_key, compressed_package_path)
|
|
27
|
+
notarytool(params, package_path, skip_stapling, print_log, verbose, api_key, compressed_package_path)
|
|
39
28
|
end
|
|
40
29
|
|
|
41
|
-
def self.notarytool(params, package_path,
|
|
30
|
+
def self.notarytool(params, package_path, skip_stapling, print_log, verbose, api_key, compressed_package_path)
|
|
42
31
|
temp_file = nil
|
|
43
32
|
|
|
44
33
|
# Create authorization part of command with either API Key or Apple ID
|
|
@@ -154,10 +143,6 @@ module Fastlane
|
|
|
154
143
|
optional: true,
|
|
155
144
|
default_value: false,
|
|
156
145
|
type: Boolean),
|
|
157
|
-
FastlaneCore::ConfigItem.new(key: :bundle_id,
|
|
158
|
-
env_name: 'FL_NOTARIZE_BUNDLE_ID',
|
|
159
|
-
description: 'Bundle identifier to uniquely identify the package',
|
|
160
|
-
optional: true),
|
|
161
146
|
FastlaneCore::ConfigItem.new(key: :username,
|
|
162
147
|
env_name: 'FL_NOTARIZE_USERNAME',
|
|
163
148
|
description: 'Apple ID username',
|
|
@@ -11,6 +11,10 @@ module Fastlane
|
|
|
11
11
|
['Device ID', 'Device Name', 'Device Platform']
|
|
12
12
|
end
|
|
13
13
|
|
|
14
|
+
def self.ignored_line?(row)
|
|
15
|
+
row.all? { |value| value.to_s.strip.empty? } || row.first.to_s.strip.start_with?('#')
|
|
16
|
+
end
|
|
17
|
+
|
|
14
18
|
def self.run(params)
|
|
15
19
|
platform = Spaceship::ConnectAPI::BundleIdPlatform.map(params[:platform])
|
|
16
20
|
|
|
@@ -22,6 +26,7 @@ module Fastlane
|
|
|
22
26
|
require 'csv'
|
|
23
27
|
|
|
24
28
|
devices_file = CSV.read(File.expand_path(File.join(params[:devices_file])), col_sep: "\t")
|
|
29
|
+
devices_file = devices_file.reject { |row| ignored_line?(row) }
|
|
25
30
|
unless devices_file.first == file_column_headers.first(2) || devices_file.first == file_column_headers
|
|
26
31
|
UI.user_error!("Please provide a file according to the Apple Sample UDID file (https://developer.apple.com/account/resources/downloads/Multiple-Upload-Samples.zip)")
|
|
27
32
|
end
|
|
@@ -55,8 +60,14 @@ module Fastlane
|
|
|
55
60
|
existing_devices = Spaceship::ConnectAPI::Device.all
|
|
56
61
|
|
|
57
62
|
device_objs = new_devices.map do |device|
|
|
58
|
-
|
|
59
|
-
|
|
63
|
+
normalized_udid = device[0].tr("-", "")
|
|
64
|
+
existing_device = existing_devices.find do |ed|
|
|
65
|
+
ed.udid.tr("-", "").casecmp(normalized_udid).zero?
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
if existing_device
|
|
69
|
+
UI.verbose("UDID #{existing_device.udid} already exists - Skipping...")
|
|
70
|
+
|
|
60
71
|
next
|
|
61
72
|
end
|
|
62
73
|
|
|
@@ -74,8 +85,12 @@ module Fastlane
|
|
|
74
85
|
try_create_device(name: device[1], platform: device_platform, udid: device[0])
|
|
75
86
|
end
|
|
76
87
|
|
|
77
|
-
|
|
78
|
-
|
|
88
|
+
if device_objs.compact.empty?
|
|
89
|
+
UI.success("No new devices to register")
|
|
90
|
+
else
|
|
91
|
+
UI.success("Successfully registered new devices.")
|
|
92
|
+
end
|
|
93
|
+
return device_objs.compact
|
|
79
94
|
end
|
|
80
95
|
|
|
81
96
|
def self.try_create_device(name: nil, platform: nil, udid: nil)
|
|
@@ -169,7 +184,8 @@ module Fastlane
|
|
|
169
184
|
[
|
|
170
185
|
"This will register iOS/Mac devices with the Developer Portal so that you can include them in your provisioning profiles.",
|
|
171
186
|
"This is an optimistic action, in that it will only ever add new devices to the member center, and never remove devices. If a device which has already been registered within the member center is not passed to this action, it will be left alone in the member center and continue to work.",
|
|
172
|
-
"The action will connect to the Apple Developer Portal using the username you specified in your `Appfile` with `apple_id`, but you can override it using the `username` option, or by setting the env variable `ENV['DELIVER_USER']`."
|
|
187
|
+
"The action will connect to the Apple Developer Portal using the username you specified in your `Appfile` with `apple_id`, but you can override it using the `username` option, or by setting the env variable `ENV['DELIVER_USER']`.",
|
|
188
|
+
"When using `devices_file`, blank lines and lines starting with `#` are ignored, so you can group devices, add notes, or comment out a device row without removing it."
|
|
173
189
|
].join("\n")
|
|
174
190
|
end
|
|
175
191
|
|
|
@@ -41,7 +41,7 @@ module Fastlane
|
|
|
41
41
|
UI.message("Creating temporary keychain: \"#{keychain_name}\".")
|
|
42
42
|
Actions::CreateKeychainAction.run(
|
|
43
43
|
name: keychain_name,
|
|
44
|
-
default_keychain:
|
|
44
|
+
default_keychain: params[:set_default_keychain],
|
|
45
45
|
unlock: true,
|
|
46
46
|
timeout: params[:timeout],
|
|
47
47
|
lock_when_sleeps: true,
|
|
@@ -113,7 +113,12 @@ module Fastlane
|
|
|
113
113
|
env_name: "FL_SETUP_CI_KEYCHAIN_NAME",
|
|
114
114
|
description: "Set a custom keychain name",
|
|
115
115
|
type: String,
|
|
116
|
-
default_value: "fastlane_tmp_keychain")
|
|
116
|
+
default_value: "fastlane_tmp_keychain"),
|
|
117
|
+
FastlaneCore::ConfigItem.new(key: :set_default_keychain,
|
|
118
|
+
env_name: "FL_SETUP_CI_SET_DEFAULT_KEYCHAIN",
|
|
119
|
+
description: "Set the temporary keychain as the system default",
|
|
120
|
+
type: Boolean,
|
|
121
|
+
default_value: true)
|
|
117
122
|
]
|
|
118
123
|
end
|
|
119
124
|
|
|
@@ -10,6 +10,7 @@ module Fastlane
|
|
|
10
10
|
cmd << "--package-path #{params[:package_path]}" if params[:package_path]
|
|
11
11
|
cmd << "--configuration #{params[:configuration]}" if params[:configuration]
|
|
12
12
|
cmd << "--disable-sandbox" if params[:disable_sandbox]
|
|
13
|
+
cmd << "--skip-update" if params[:skip_update]
|
|
13
14
|
cmd << "--verbose" if params[:verbose]
|
|
14
15
|
cmd << "--very-verbose" if params[:very_verbose]
|
|
15
16
|
if params[:simulator]
|
|
@@ -113,6 +114,11 @@ module Fastlane
|
|
|
113
114
|
description: "Pass in xcpretty additional command line arguments (e.g. '--test --no-color' or '--tap --no-utf'), requires xcpretty_output to be specified also",
|
|
114
115
|
type: String,
|
|
115
116
|
optional: true),
|
|
117
|
+
FastlaneCore::ConfigItem.new(key: :skip_update,
|
|
118
|
+
env_name: "FL_SPM_SKIP_UPDATE",
|
|
119
|
+
description: "Skip updating dependencies from their remote during a resolution",
|
|
120
|
+
type: Boolean,
|
|
121
|
+
default_value: false),
|
|
116
122
|
FastlaneCore::ConfigItem.new(key: :verbose,
|
|
117
123
|
short_option: "-v",
|
|
118
124
|
env_name: "FL_SPM_VERBOSE",
|
|
@@ -9,16 +9,18 @@ module Fastlane
|
|
|
9
9
|
class TestfairyAction < Action
|
|
10
10
|
def self.upload_build(upload_url, ipa, options, timeout)
|
|
11
11
|
require 'faraday'
|
|
12
|
-
require '
|
|
12
|
+
require 'faraday/multipart'
|
|
13
|
+
require 'faraday/retry'
|
|
14
|
+
require 'faraday/follow_redirects'
|
|
13
15
|
|
|
14
16
|
UI.success("Uploading to #{upload_url}...")
|
|
15
17
|
|
|
16
18
|
connection = Faraday.new(url: upload_url) do |builder|
|
|
17
19
|
builder.request(:multipart)
|
|
18
20
|
builder.request(:url_encoded)
|
|
19
|
-
builder.request(:retry, max: 3, interval: 5)
|
|
21
|
+
builder.request(:retry, { max: 3, interval: 5 })
|
|
20
22
|
builder.response(:json, content_type: /\bjson$/)
|
|
21
|
-
builder.
|
|
23
|
+
builder.response(:follow_redirects)
|
|
22
24
|
builder.adapter(:net_http)
|
|
23
25
|
end
|
|
24
26
|
|
|
@@ -24,14 +24,15 @@ module Fastlane
|
|
|
24
24
|
|
|
25
25
|
def self.upload_build(params)
|
|
26
26
|
require 'faraday'
|
|
27
|
-
require '
|
|
27
|
+
require 'faraday/multipart'
|
|
28
|
+
require 'faraday/follow_redirects'
|
|
28
29
|
|
|
29
30
|
url = TRYOUTS_API_BUILD_RELEASE_TEMPLATE % params[:app_id]
|
|
30
31
|
connection = Faraday.new(url) do |builder|
|
|
31
32
|
builder.request(:multipart)
|
|
32
33
|
builder.request(:url_encoded)
|
|
33
34
|
builder.response(:json, content_type: /\bjson$/)
|
|
34
|
-
builder.
|
|
35
|
+
builder.response(:follow_redirects)
|
|
35
36
|
builder.adapter(:net_http)
|
|
36
37
|
end
|
|
37
38
|
|