fastlane 2.210.1 → 2.211.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +84 -84
- data/deliver/lib/deliver/app_screenshot.rb +17 -0
- data/fastlane/lib/fastlane/actions/docs/build_app.md +5 -5
- data/fastlane/lib/fastlane/actions/docs/run_tests.md +1 -1
- data/fastlane/lib/fastlane/actions/update_code_signing_settings.rb +14 -4
- data/fastlane/lib/fastlane/actions/xcode_install.rb +5 -1
- data/fastlane/lib/fastlane/actions/xcode_select.rb +1 -1
- data/fastlane/lib/fastlane/actions/xcodes.rb +137 -0
- data/fastlane/lib/fastlane/actions/xcversion.rb +10 -15
- data/fastlane/lib/fastlane/helper/xcodes_helper.rb +28 -0
- data/fastlane/lib/fastlane/helper/xcversion_helper.rb +0 -9
- 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 +66 -3
- 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 +5 -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 +20 -15
- data/fastlane_core/lib/fastlane_core/cert_checker.rb +2 -2
- data/fastlane_core/lib/fastlane_core/itunes_transporter.rb +1 -1
- data/frameit/lib/frameit/device.rb +1 -1
- data/match/lib/match/change_password.rb +2 -0
- data/match/lib/match/commands_generator.rb +2 -1
- data/match/lib/match/generator.rb +1 -0
- data/match/lib/match/importer.rb +2 -0
- data/match/lib/match/migrate.rb +4 -3
- data/match/lib/match/nuke.rb +2 -0
- data/match/lib/match/options.rb +5 -0
- data/match/lib/match/runner.rb +5 -2
- data/sigh/lib/sigh/options.rb +5 -0
- data/sigh/lib/sigh/runner.rb +3 -1
- data/snapshot/lib/assets/SnapshotHelper.swift +2 -2
- data/spaceship/lib/spaceship/connect_api/models/actor.rb +26 -0
- data/spaceship/lib/spaceship/connect_api/models/app_screenshot_set.rb +5 -0
- data/spaceship/lib/spaceship/connect_api/models/app_store_version.rb +1 -1
- data/spaceship/lib/spaceship/connect_api/models/app_store_version_localization.rb +10 -10
- data/spaceship/lib/spaceship/connect_api/models/device.rb +3 -0
- data/spaceship/lib/spaceship/connect_api/models/resolution_center_message.rb +29 -0
- data/spaceship/lib/spaceship/connect_api/models/resolution_center_thread.rb +67 -0
- data/spaceship/lib/spaceship/connect_api/models/review_rejection.rb +19 -0
- data/spaceship/lib/spaceship/connect_api/models/review_submission.rb +12 -0
- data/spaceship/lib/spaceship/connect_api/tunes/tunes.rb +23 -0
- data/spaceship/lib/spaceship/connect_api.rb +5 -0
- metadata +28 -22
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9109ddee20194fc927133f3885a6a460d09ea8ccf81d865822c1c7c028b428c2
|
4
|
+
data.tar.gz: 5f6fe9b0094d3fb6582e88c44ac8e4e2a0830d2f5f556628744e67f26b307f17
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: '08db10e18729135ecebec8ac1735e9ab79a4e878b1ab249b4011c086072c945f0024f4d95a241335bb8807da7a1402c98f70183f0cd45c2985d87c5de6188d03'
|
7
|
+
data.tar.gz: 20c188c9ad9a9b270d64f0dbb8011861f79a2932e7665df511401be49e0d6f8ecb03cbfb8c5ce81274e239930084c535fc2735fc3997d185545ef4460aa12d99
|
data/README.md
CHANGED
@@ -41,55 +41,43 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
41
41
|
</a>
|
42
42
|
<h4 align='center'>Łukasz Grabowski</h4>
|
43
43
|
</td>
|
44
|
-
<td id='fumiya-nakamura'>
|
45
|
-
<a href='https://github.com/nafu'>
|
46
|
-
<img src='https://github.com/nafu.png' width='140px;'>
|
47
|
-
</a>
|
48
|
-
<h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
|
49
|
-
</td>
|
50
44
|
<td id='luka-mirosevic'>
|
51
45
|
<a href='https://github.com/lmirosevic'>
|
52
46
|
<img src='https://github.com/lmirosevic.png' width='140px;'>
|
53
47
|
</a>
|
54
48
|
<h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
|
55
49
|
</td>
|
50
|
+
<td id='satoshi-namai'>
|
51
|
+
<a href='https://github.com/ainame'>
|
52
|
+
<img src='https://github.com/ainame.png' width='140px;'>
|
53
|
+
</a>
|
54
|
+
<h4 align='center'><a href='https://twitter.com/ainame'>Satoshi Namai</a></h4>
|
55
|
+
</td>
|
56
56
|
<td id='olivier-halligon'>
|
57
57
|
<a href='https://github.com/AliSoftware'>
|
58
58
|
<img src='https://github.com/AliSoftware.png' width='140px;'>
|
59
59
|
</a>
|
60
60
|
<h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
|
61
61
|
</td>
|
62
|
-
<td id='
|
63
|
-
<a href='https://github.com/
|
64
|
-
<img src='https://github.com/
|
62
|
+
<td id='daniel-jankowski'>
|
63
|
+
<a href='https://github.com/mollyIV'>
|
64
|
+
<img src='https://github.com/mollyIV.png' width='140px;'>
|
65
65
|
</a>
|
66
|
-
<h4 align='center'><a href='https://twitter.com/
|
66
|
+
<h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
|
67
67
|
</td>
|
68
68
|
</tr>
|
69
69
|
<tr>
|
70
|
-
<td id='joshua-liebowitz'>
|
71
|
-
<a href='https://github.com/taquitos'>
|
72
|
-
<img src='https://github.com/taquitos.png' width='140px;'>
|
73
|
-
</a>
|
74
|
-
<h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
|
75
|
-
</td>
|
76
|
-
<td id='stefan-natchev'>
|
77
|
-
<a href='https://github.com/snatchev'>
|
78
|
-
<img src='https://github.com/snatchev.png' width='140px;'>
|
79
|
-
</a>
|
80
|
-
<h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
|
81
|
-
</td>
|
82
70
|
<td id='kohki-miki'>
|
83
71
|
<a href='https://github.com/giginet'>
|
84
72
|
<img src='https://github.com/giginet.png' width='140px;'>
|
85
73
|
</a>
|
86
74
|
<h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
|
87
75
|
</td>
|
88
|
-
<td id='
|
89
|
-
<a href='https://github.com/
|
90
|
-
<img src='https://github.com/
|
76
|
+
<td id='stefan-natchev'>
|
77
|
+
<a href='https://github.com/snatchev'>
|
78
|
+
<img src='https://github.com/snatchev.png' width='140px;'>
|
91
79
|
</a>
|
92
|
-
<h4 align='center'>
|
80
|
+
<h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
|
93
81
|
</td>
|
94
82
|
<td id='felix-krause'>
|
95
83
|
<a href='https://github.com/KrauseFx'>
|
@@ -97,51 +85,31 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
97
85
|
</a>
|
98
86
|
<h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
|
99
87
|
</td>
|
100
|
-
|
101
|
-
<
|
102
|
-
<
|
103
|
-
<a href='https://github.com/rogerluan'>
|
104
|
-
<img src='https://github.com/rogerluan.png' width='140px;'>
|
105
|
-
</a>
|
106
|
-
<h4 align='center'><a href='https://twitter.com/rogerluan_'>Roger Oba</a></h4>
|
107
|
-
</td>
|
108
|
-
<td id='max-ott'>
|
109
|
-
<a href='https://github.com/max-ott'>
|
110
|
-
<img src='https://github.com/max-ott.png' width='140px;'>
|
111
|
-
</a>
|
112
|
-
<h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
|
113
|
-
</td>
|
114
|
-
<td id='satoshi-namai'>
|
115
|
-
<a href='https://github.com/ainame'>
|
116
|
-
<img src='https://github.com/ainame.png' width='140px;'>
|
117
|
-
</a>
|
118
|
-
<h4 align='center'><a href='https://twitter.com/ainame'>Satoshi Namai</a></h4>
|
119
|
-
</td>
|
120
|
-
<td id='daniel-jankowski'>
|
121
|
-
<a href='https://github.com/mollyIV'>
|
122
|
-
<img src='https://github.com/mollyIV.png' width='140px;'>
|
88
|
+
<td id='danielle-tomlinson'>
|
89
|
+
<a href='https://github.com/endocrimes'>
|
90
|
+
<img src='https://github.com/endocrimes.png' width='140px;'>
|
123
91
|
</a>
|
124
|
-
<h4 align='center'><a href='https://twitter.com/
|
92
|
+
<h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
|
125
93
|
</td>
|
126
|
-
<td id='
|
127
|
-
<a href='https://github.com/
|
128
|
-
<img src='https://github.com/
|
94
|
+
<td id='jimmy-dee'>
|
95
|
+
<a href='https://github.com/jdee'>
|
96
|
+
<img src='https://github.com/jdee.png' width='140px;'>
|
129
97
|
</a>
|
130
|
-
<h4 align='center'
|
98
|
+
<h4 align='center'>Jimmy Dee</h4>
|
131
99
|
</td>
|
132
100
|
</tr>
|
133
101
|
<tr>
|
134
|
-
<td id='
|
135
|
-
<a href='https://github.com/
|
136
|
-
<img src='https://github.com/
|
102
|
+
<td id='matthew-ellis'>
|
103
|
+
<a href='https://github.com/matthewellis'>
|
104
|
+
<img src='https://github.com/matthewellis.png' width='140px;'>
|
137
105
|
</a>
|
138
|
-
<h4 align='center'><a href='https://twitter.com/
|
106
|
+
<h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
|
139
107
|
</td>
|
140
|
-
<td id='
|
141
|
-
<a href='https://github.com/
|
142
|
-
<img src='https://github.com/
|
108
|
+
<td id='jérôme-lacoste'>
|
109
|
+
<a href='https://github.com/lacostej'>
|
110
|
+
<img src='https://github.com/lacostej.png' width='140px;'>
|
143
111
|
</a>
|
144
|
-
<h4 align='center'><a href='https://twitter.com/
|
112
|
+
<h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
|
145
113
|
</td>
|
146
114
|
<td id='andrew-mcburney'>
|
147
115
|
<a href='https://github.com/armcburney'>
|
@@ -149,43 +117,63 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
149
117
|
</a>
|
150
118
|
<h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
|
151
119
|
</td>
|
152
|
-
<td id='
|
153
|
-
<a href='https://github.com/
|
154
|
-
<img src='https://github.com/
|
120
|
+
<td id='manu-wallner'>
|
121
|
+
<a href='https://github.com/milch'>
|
122
|
+
<img src='https://github.com/milch.png' width='140px;'>
|
155
123
|
</a>
|
156
|
-
<h4 align='center'><a href='https://twitter.com/
|
124
|
+
<h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
|
125
|
+
</td>
|
126
|
+
<td id='max-ott'>
|
127
|
+
<a href='https://github.com/max-ott'>
|
128
|
+
<img src='https://github.com/max-ott.png' width='140px;'>
|
129
|
+
</a>
|
130
|
+
<h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
|
157
131
|
</td>
|
132
|
+
</tr>
|
133
|
+
<tr>
|
158
134
|
<td id='jorge-revuelta-h'>
|
159
135
|
<a href='https://github.com/minuscorp'>
|
160
136
|
<img src='https://github.com/minuscorp.png' width='140px;'>
|
161
137
|
</a>
|
162
138
|
<h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
|
163
139
|
</td>
|
164
|
-
</tr>
|
165
|
-
<tr>
|
166
140
|
<td id='manish-rathi'>
|
167
141
|
<a href='https://github.com/crazymanish'>
|
168
142
|
<img src='https://github.com/crazymanish.png' width='140px;'>
|
169
143
|
</a>
|
170
144
|
<h4 align='center'><a href='https://twitter.com/iammanishrathi'>Manish Rathi</a></h4>
|
171
145
|
</td>
|
172
|
-
<td id='
|
173
|
-
<a href='https://github.com/
|
174
|
-
<img src='https://github.com/
|
146
|
+
<td id='joshua-liebowitz'>
|
147
|
+
<a href='https://github.com/taquitos'>
|
148
|
+
<img src='https://github.com/taquitos.png' width='140px;'>
|
175
149
|
</a>
|
176
|
-
<h4 align='center'><a href='https://twitter.com/
|
150
|
+
<h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
|
177
151
|
</td>
|
178
|
-
<td id='
|
179
|
-
<a href='https://github.com/
|
180
|
-
<img src='https://github.com/
|
152
|
+
<td id='iulian-onofrei'>
|
153
|
+
<a href='https://github.com/revolter'>
|
154
|
+
<img src='https://github.com/revolter.png' width='140px;'>
|
181
155
|
</a>
|
182
|
-
<h4 align='center'><a href='https://twitter.com/
|
156
|
+
<h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
|
183
157
|
</td>
|
184
|
-
<td id='
|
185
|
-
<a href='https://github.com/
|
186
|
-
<img src='https://github.com/
|
158
|
+
<td id='maksym-grebenets'>
|
159
|
+
<a href='https://github.com/mgrebenets'>
|
160
|
+
<img src='https://github.com/mgrebenets.png' width='140px;'>
|
187
161
|
</a>
|
188
|
-
<h4 align='center'><a href='https://twitter.com/
|
162
|
+
<h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</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='aaron-brager'>
|
173
|
+
<a href='https://github.com/getaaron'>
|
174
|
+
<img src='https://github.com/getaaron.png' width='140px;'>
|
175
|
+
</a>
|
176
|
+
<h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
|
189
177
|
</td>
|
190
178
|
<td id='josh-holtz'>
|
191
179
|
<a href='https://github.com/joshdholtz'>
|
@@ -193,13 +181,25 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
193
181
|
</a>
|
194
182
|
<h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
|
195
183
|
</td>
|
184
|
+
<td id='fumiya-nakamura'>
|
185
|
+
<a href='https://github.com/nafu'>
|
186
|
+
<img src='https://github.com/nafu.png' width='140px;'>
|
187
|
+
</a>
|
188
|
+
<h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
|
189
|
+
</td>
|
190
|
+
<td id='jan-piotrowski'>
|
191
|
+
<a href='https://github.com/janpio'>
|
192
|
+
<img src='https://github.com/janpio.png' width='140px;'>
|
193
|
+
</a>
|
194
|
+
<h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
|
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='helmut-januschka'>
|
199
|
+
<a href='https://github.com/hjanuschka'>
|
200
|
+
<img src='https://github.com/hjanuschka.png' width='140px;'>
|
201
201
|
</a>
|
202
|
-
<h4 align='center'><a href='https://twitter.com/
|
202
|
+
<h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
|
203
203
|
</td>
|
204
204
|
</table>
|
205
205
|
|
@@ -23,6 +23,8 @@ module Deliver
|
|
23
23
|
IOS_61 = "iOS-6.1-in"
|
24
24
|
# iPhone XS Max
|
25
25
|
IOS_65 = "iOS-6.5-in"
|
26
|
+
# iPhone 14 Pro Max
|
27
|
+
IOS_67 = "iOS-6.7-in"
|
26
28
|
|
27
29
|
# iPad
|
28
30
|
IOS_IPAD = "iOS-iPad"
|
@@ -47,6 +49,8 @@ module Deliver
|
|
47
49
|
IOS_61_MESSAGES = "iOS-6.1-in-messages"
|
48
50
|
# iPhone XS Max iMessage
|
49
51
|
IOS_65_MESSAGES = "iOS-6.5-in-messages"
|
52
|
+
# iPhone 14 Pro Max iMessage
|
53
|
+
IOS_67_MESSAGES = "iOS-6.7-in-messages"
|
50
54
|
|
51
55
|
# iPad iMessage
|
52
56
|
IOS_IPAD_MESSAGES = "iOS-iPad-messages"
|
@@ -101,6 +105,7 @@ module Deliver
|
|
101
105
|
ScreenSize::IOS_55 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPHONE_55, # also 7 Plus & 8 Plus
|
102
106
|
ScreenSize::IOS_58 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPHONE_58,
|
103
107
|
ScreenSize::IOS_65 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPHONE_65,
|
108
|
+
ScreenSize::IOS_67 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPHONE_67,
|
104
109
|
ScreenSize::IOS_IPAD => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPAD_97,
|
105
110
|
ScreenSize::IOS_IPAD_10_5 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPAD_105,
|
106
111
|
ScreenSize::IOS_IPAD_11 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPAD_PRO_3GEN_11,
|
@@ -111,6 +116,7 @@ module Deliver
|
|
111
116
|
ScreenSize::IOS_55_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPHONE_55, # also 7 Plus & 8 Plus
|
112
117
|
ScreenSize::IOS_58_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPHONE_58,
|
113
118
|
ScreenSize::IOS_65_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPHONE_65,
|
119
|
+
ScreenSize::IOS_67_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPHONE_67,
|
114
120
|
ScreenSize::IOS_IPAD_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPAD_97,
|
115
121
|
ScreenSize::IOS_IPAD_PRO_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPAD_PRO_129,
|
116
122
|
ScreenSize::IOS_IPAD_PRO_12_9_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPAD_PRO_3GEN_129,
|
@@ -135,6 +141,7 @@ module Deliver
|
|
135
141
|
ScreenSize::IOS_58 => "iPhone XS",
|
136
142
|
ScreenSize::IOS_61 => "iPhone XR",
|
137
143
|
ScreenSize::IOS_65 => "iPhone XS Max",
|
144
|
+
ScreenSize::IOS_67 => "iPhone 14 Pro Max",
|
138
145
|
ScreenSize::IOS_IPAD => "iPad",
|
139
146
|
ScreenSize::IOS_IPAD_10_5 => "iPad 10.5",
|
140
147
|
ScreenSize::IOS_IPAD_11 => "iPad 11",
|
@@ -146,6 +153,7 @@ module Deliver
|
|
146
153
|
ScreenSize::IOS_58_MESSAGES => "iPhone XS (iMessage)",
|
147
154
|
ScreenSize::IOS_61_MESSAGES => "iPhone XR (iMessage)",
|
148
155
|
ScreenSize::IOS_65_MESSAGES => "iPhone XS Max (iMessage)",
|
156
|
+
ScreenSize::IOS_67_MESSAGES => "iPhone 14 Pro Max (iMessage)",
|
149
157
|
ScreenSize::IOS_IPAD_MESSAGES => "iPad (iMessage)",
|
150
158
|
ScreenSize::IOS_IPAD_PRO_MESSAGES => "iPad Pro (iMessage)",
|
151
159
|
ScreenSize::IOS_IPAD_PRO_12_9_MESSAGES => "iPad Pro (12.9-inch) (3rd generation) (iMessage)",
|
@@ -175,6 +183,7 @@ module Deliver
|
|
175
183
|
ScreenSize::IOS_55_MESSAGES,
|
176
184
|
ScreenSize::IOS_58_MESSAGES,
|
177
185
|
ScreenSize::IOS_65_MESSAGES,
|
186
|
+
ScreenSize::IOS_67_MESSAGES,
|
178
187
|
ScreenSize::IOS_IPAD_MESSAGES,
|
179
188
|
ScreenSize::IOS_IPAD_PRO_MESSAGES,
|
180
189
|
ScreenSize::IOS_IPAD_PRO_12_9_MESSAGES,
|
@@ -187,6 +196,10 @@ module Deliver
|
|
187
196
|
# This list does not include iPad Pro 12.9-inch (3rd generation)
|
188
197
|
# because it has same resoluation as IOS_IPAD_PRO and will clobber
|
189
198
|
return {
|
199
|
+
ScreenSize::IOS_67_MESSAGES => [
|
200
|
+
[1290, 2796],
|
201
|
+
[2796, 1290]
|
202
|
+
],
|
190
203
|
ScreenSize::IOS_65_MESSAGES => [
|
191
204
|
[1242, 2688],
|
192
205
|
[2688, 1242],
|
@@ -247,6 +260,10 @@ module Deliver
|
|
247
260
|
# This list does not include iPad Pro 12.9-inch (3rd generation)
|
248
261
|
# because it has same resoluation as IOS_IPAD_PRO and will clobber
|
249
262
|
return {
|
263
|
+
ScreenSize::IOS_67 => [
|
264
|
+
[1290, 2796],
|
265
|
+
[2796, 1290]
|
266
|
+
],
|
250
267
|
ScreenSize::IOS_65 => [
|
251
268
|
[1242, 2688],
|
252
269
|
[2688, 1242],
|
@@ -74,7 +74,7 @@ That's all you need to build your application. If you want more control, here ar
|
|
74
74
|
fastlane gym --workspace "Example.xcworkspace" --scheme "AppName" --clean
|
75
75
|
```
|
76
76
|
|
77
|
-
If you need to use a different Xcode installation, use `
|
77
|
+
If you need to use a different Xcode installation, use `[xcodes](https://docs.fastlane.tools/actions/xcodes)` or define `DEVELOPER_DIR`:
|
78
78
|
|
79
79
|
```no-highlight
|
80
80
|
DEVELOPER_DIR="/Applications/Xcode6.2.app" fastlane gym
|
@@ -150,7 +150,7 @@ build_app(
|
|
150
150
|
scheme: "Release",
|
151
151
|
export_method: "app-store",
|
152
152
|
export_options: {
|
153
|
-
provisioningProfiles: {
|
153
|
+
provisioningProfiles: {
|
154
154
|
"com.example.bundleid" => "Provisioning Profile Name",
|
155
155
|
"com.example.bundleid2" => "Provisioning Profile Name 2"
|
156
156
|
}
|
@@ -184,10 +184,10 @@ end
|
|
184
184
|
error do |lane, exception|
|
185
185
|
slack(
|
186
186
|
# message with short human friendly message
|
187
|
-
message: exception.to_s,
|
188
|
-
success: false,
|
187
|
+
message: exception.to_s,
|
188
|
+
success: false,
|
189
189
|
# Output containing extended log output
|
190
|
-
payload: { "Output" => exception.error_info.to_s }
|
190
|
+
payload: { "Output" => exception.error_info.to_s }
|
191
191
|
)
|
192
192
|
end
|
193
193
|
```
|
@@ -100,7 +100,7 @@ That's all you need to run your tests. If you want more control, here are some a
|
|
100
100
|
fastlane scan --workspace "Example.xcworkspace" --scheme "AppName" --device "iPhone 6" --clean
|
101
101
|
```
|
102
102
|
|
103
|
-
If you need to use a different Xcode install, use `
|
103
|
+
If you need to use a different Xcode install, use `[xcodes](https://docs.fastlane.tools/actions/xcodes)` or define `DEVELOPER_DIR`:
|
104
104
|
|
105
105
|
```no-highlight
|
106
106
|
DEVELOPER_DIR="/Applications/Xcode6.2.app" scan
|
@@ -36,18 +36,22 @@ module Fastlane
|
|
36
36
|
end
|
37
37
|
|
38
38
|
style_value = params[:use_automatic_signing] ? 'Automatic' : 'Manual'
|
39
|
+
development_team_setting = params[:sdk] ? "DEVELOPMENT_TEAM[sdk=#{params[:sdk]}]" : "DEVELOPMENT_TEAM"
|
40
|
+
code_sign_identity_setting = params[:sdk] ? "CODE_SIGN_IDENTITY[sdk=#{params[:sdk]}]" : "CODE_SIGN_IDENTITY"
|
41
|
+
provisioning_profile_setting = params[:sdk] ? "PROVISIONING_PROFILE_SPECIFIER[sdk=#{params[:sdk]}]" : "PROVISIONING_PROFILE_SPECIFIER"
|
42
|
+
|
39
43
|
set_build_setting(config, "CODE_SIGN_STYLE", style_value)
|
40
44
|
|
41
45
|
if params[:team_id]
|
42
|
-
set_build_setting(config,
|
46
|
+
set_build_setting(config, development_team_setting, params[:team_id])
|
43
47
|
UI.important("Set Team id to: #{params[:team_id]} for target: #{target.name} for build configuration: #{config.name}")
|
44
48
|
end
|
45
49
|
if params[:code_sign_identity]
|
46
|
-
set_build_setting(config,
|
50
|
+
set_build_setting(config, code_sign_identity_setting, params[:code_sign_identity])
|
47
51
|
UI.important("Set Code Sign identity to: #{params[:code_sign_identity]} for target: #{target.name} for build configuration: #{config.name}")
|
48
52
|
end
|
49
53
|
if params[:profile_name]
|
50
|
-
set_build_setting(config,
|
54
|
+
set_build_setting(config, provisioning_profile_setting, params[:profile_name])
|
51
55
|
UI.important("Set Provisioning Profile name to: #{params[:profile_name]} for target: #{target.name} for build configuration: #{config.name}")
|
52
56
|
end
|
53
57
|
if params[:entitlements_file_path]
|
@@ -129,6 +133,10 @@ module Fastlane
|
|
129
133
|
description: "Defines if project should use automatic signing",
|
130
134
|
type: Boolean,
|
131
135
|
default_value: false),
|
136
|
+
FastlaneCore::ConfigItem.new(key: :sdk,
|
137
|
+
env_name: "FASTLANE_BUILD_SDK",
|
138
|
+
optional: true,
|
139
|
+
description: "Build target SDKs (iphoneos*, macosx*, iphonesimulator*)"),
|
132
140
|
FastlaneCore::ConfigItem.new(key: :team_id,
|
133
141
|
env_name: "FASTLANE_TEAM_ID",
|
134
142
|
optional: true,
|
@@ -183,10 +191,12 @@ module Fastlane
|
|
183
191
|
)',
|
184
192
|
' # more advanced manual code signing
|
185
193
|
update_code_signing_settings(
|
186
|
-
use_automatic_signing:
|
194
|
+
use_automatic_signing: false,
|
187
195
|
path: "demo-project/demo/demo.xcodeproj",
|
188
196
|
team_id: "QABC123DEV",
|
189
197
|
bundle_identifier: "com.demoapp.QABC123DEV",
|
198
|
+
code_sign_identity: "iPhone Distribution",
|
199
|
+
sdk: "iphoneos*",
|
190
200
|
profile_name: "Demo App Deployment Profile",
|
191
201
|
entitlements_file_path: "Demo App/generated/New.entitlements"
|
192
202
|
)'
|
@@ -101,7 +101,11 @@ module Fastlane
|
|
101
101
|
end
|
102
102
|
|
103
103
|
def self.category
|
104
|
-
:
|
104
|
+
:deprecated
|
105
|
+
end
|
106
|
+
|
107
|
+
def self.deprecated_notes
|
108
|
+
"The xcode-install gem, which this action depends on, has been sunset. Please migrate to [xcodes](https://docs.fastlane.tools/actions/xcodes). You can find a migration guide here: [xcpretty/xcode-install/MIGRATION.md](https://github.com/xcpretty/xcode-install/blob/master/MIGRATION.md)"
|
105
109
|
end
|
106
110
|
end
|
107
111
|
end
|
@@ -40,7 +40,7 @@ module Fastlane
|
|
40
40
|
def self.details
|
41
41
|
[
|
42
42
|
"Select and build with the Xcode installed at the provided path.",
|
43
|
-
"Use the `
|
43
|
+
"Use the `xcodes` action if you want to select an Xcode:",
|
44
44
|
"- Based on a version specifier or",
|
45
45
|
"- You don't have known, stable paths, as may happen in a CI environment."
|
46
46
|
].join("\n")
|
@@ -0,0 +1,137 @@
|
|
1
|
+
module Fastlane
|
2
|
+
module Actions
|
3
|
+
module SharedValues
|
4
|
+
XCODES_XCODE_PATH = :XCODES_XCODE_PATH
|
5
|
+
end
|
6
|
+
|
7
|
+
class XcodesAction < Action
|
8
|
+
def self.run(params)
|
9
|
+
binary = params[:binary_path]
|
10
|
+
xcodes_raw_version = Actions.sh("#{binary} version", log: false)
|
11
|
+
xcodes_version = Gem::Version.new(xcodes_raw_version)
|
12
|
+
UI.message("Running xcodes version #{xcodes_version}")
|
13
|
+
if xcodes_version < Gem::Version.new("1.1.0")
|
14
|
+
UI.user_error!([
|
15
|
+
"xcodes action requires the minimum version of xcodes binary to be v1.1.0.",
|
16
|
+
"Please update xcodes. If you installed it via Homebrew, this can be done via 'brew upgrade xcodes'"
|
17
|
+
].join(" "))
|
18
|
+
end
|
19
|
+
|
20
|
+
version = params[:version]
|
21
|
+
command = []
|
22
|
+
command << binary
|
23
|
+
|
24
|
+
if (xcodes_args = params[:xcodes_args])
|
25
|
+
command << xcodes_args
|
26
|
+
Actions.sh(command.join(" "))
|
27
|
+
elsif !params[:select_for_current_build_only]
|
28
|
+
command << "install"
|
29
|
+
command << "'#{version}'"
|
30
|
+
command << "--update" if params[:update_list]
|
31
|
+
command << "--select"
|
32
|
+
Actions.sh(command.join(" "))
|
33
|
+
end
|
34
|
+
|
35
|
+
command = []
|
36
|
+
command << binary
|
37
|
+
command << "installed"
|
38
|
+
command << "'#{version}'"
|
39
|
+
# Prints something like /Applications/Xcode-14.app
|
40
|
+
xcode_path = Actions.sh(command.join(" ")).strip
|
41
|
+
xcode_developer_path = File.join(xcode_path, "/Contents/Developer")
|
42
|
+
|
43
|
+
UI.message("Setting Xcode version '#{version}' at '#{xcode_path}' for all build steps")
|
44
|
+
ENV["DEVELOPER_DIR"] = xcode_developer_path
|
45
|
+
Actions.lane_context[SharedValues::XCODES_XCODE_PATH] = xcode_developer_path
|
46
|
+
return xcode_path
|
47
|
+
end
|
48
|
+
|
49
|
+
#####################################################
|
50
|
+
# @!group Documentation
|
51
|
+
#####################################################
|
52
|
+
|
53
|
+
def self.description
|
54
|
+
"Make sure a certain version of Xcode is installed, installing it only if needed"
|
55
|
+
end
|
56
|
+
|
57
|
+
def self.details
|
58
|
+
[
|
59
|
+
"Makes sure a specific version of Xcode is installed. If that's not the case, it will automatically be downloaded by [xcodes](https://github.com/RobotsAndPencils/xcodes).",
|
60
|
+
"This will make sure to use the correct Xcode version for later actions.",
|
61
|
+
"Note that this action depends on [xcodes](https://github.com/RobotsAndPencils/xcodes) CLI, so make sure you have it installed in your environment. For the installation guide, see: https://github.com/RobotsAndPencils/xcodes#installation"
|
62
|
+
].join("\n")
|
63
|
+
end
|
64
|
+
|
65
|
+
def self.available_options
|
66
|
+
[
|
67
|
+
FastlaneCore::ConfigItem.new(key: :version,
|
68
|
+
env_name: "FL_XCODE_VERSION",
|
69
|
+
description: "The version number of the version of Xcode to install. Defaults to the value specified in the .xcode-version file",
|
70
|
+
default_value: Helper::XcodesHelper.read_xcode_version_file,
|
71
|
+
default_value_dynamic: true,
|
72
|
+
verify_block: Helper::XcodesHelper::Verify.method(:requirement)),
|
73
|
+
FastlaneCore::ConfigItem.new(key: :update_list,
|
74
|
+
env_name: "FL_XCODES_UPDATE_LIST",
|
75
|
+
description: "Whether the list of available Xcode versions should be updated before running the install command",
|
76
|
+
type: Boolean,
|
77
|
+
default_value: true),
|
78
|
+
FastlaneCore::ConfigItem.new(key: :select_for_current_build_only,
|
79
|
+
env_name: "FL_XCODES_SELECT_FOR_CURRENT_BUILD_ONLY",
|
80
|
+
description: [
|
81
|
+
"When true, it won't attempt to install an Xcode version, just find the installed Xcode version that best matches the passed version argument, and select it for the current build steps.",
|
82
|
+
"It doesn't change the global Xcode version (e.g. via 'xcrun xcode-select'), which would require sudo permissions — when this option is true, this action doesn't require sudo permissions"
|
83
|
+
].join(" "),
|
84
|
+
type: Boolean,
|
85
|
+
default_value: false),
|
86
|
+
FastlaneCore::ConfigItem.new(key: :binary_path,
|
87
|
+
env_name: "FL_XCODES_BINARY_PATH",
|
88
|
+
description: "Where the xcodes binary lives on your system (full path)",
|
89
|
+
default_value: Helper::XcodesHelper.find_xcodes_binary_path,
|
90
|
+
default_value_dynamic: true,
|
91
|
+
verify_block: proc do |value|
|
92
|
+
UI.user_error!("'xcodes' doesn't seem to be installed. Please follow the installation guide at https://github.com/RobotsAndPencils/xcodes#installation before proceeding") if value.empty?
|
93
|
+
UI.user_error!("Couldn't find xcodes binary at path '#{value}'") unless File.exist?(value)
|
94
|
+
end),
|
95
|
+
FastlaneCore::ConfigItem.new(key: :xcodes_args,
|
96
|
+
env_name: "FL_XCODES_ARGS",
|
97
|
+
description: "Pass in xcodes command line arguments directly. When present, other parameters are ignored and only this parameter is used to build the command to be executed",
|
98
|
+
type: :shell_string,
|
99
|
+
optional: true)
|
100
|
+
]
|
101
|
+
end
|
102
|
+
|
103
|
+
def self.output
|
104
|
+
[
|
105
|
+
['XCODES_XCODE_PATH', 'The path to the newly installed Xcode version']
|
106
|
+
]
|
107
|
+
end
|
108
|
+
|
109
|
+
def self.return_value
|
110
|
+
"The path to the newly installed Xcode version"
|
111
|
+
end
|
112
|
+
|
113
|
+
def self.return_type
|
114
|
+
:string
|
115
|
+
end
|
116
|
+
|
117
|
+
def self.authors
|
118
|
+
["rogerluan"]
|
119
|
+
end
|
120
|
+
|
121
|
+
def self.is_supported?(platform)
|
122
|
+
[:ios, :mac].include?(platform)
|
123
|
+
end
|
124
|
+
|
125
|
+
def self.example_code
|
126
|
+
[
|
127
|
+
'xcodes(version: "14.1")',
|
128
|
+
'xcodes # When missing, the version value defaults to the value specified in the .xcode-version file'
|
129
|
+
]
|
130
|
+
end
|
131
|
+
|
132
|
+
def self.category
|
133
|
+
:building
|
134
|
+
end
|
135
|
+
end
|
136
|
+
end
|
137
|
+
end
|
@@ -15,16 +15,6 @@ module Fastlane
|
|
15
15
|
ENV["DEVELOPER_DIR"] = File.join(xcode.path, "/Contents/Developer")
|
16
16
|
end
|
17
17
|
|
18
|
-
def self.read_xcode_version_file
|
19
|
-
xcode_version_paths = Dir.glob(".xcode-version")
|
20
|
-
|
21
|
-
if xcode_version_paths.first
|
22
|
-
return File.read(xcode_version_paths.first).strip
|
23
|
-
end
|
24
|
-
|
25
|
-
return nil
|
26
|
-
end
|
27
|
-
|
28
18
|
def self.description
|
29
19
|
"Select an Xcode to use by version specifier"
|
30
20
|
end
|
@@ -44,10 +34,10 @@ module Fastlane
|
|
44
34
|
[
|
45
35
|
FastlaneCore::ConfigItem.new(key: :version,
|
46
36
|
env_name: "FL_XCODE_VERSION",
|
47
|
-
description: "The version of Xcode to select specified as a Gem::Version requirement string (e.g. '~> 7.1.0')",
|
48
|
-
default_value:
|
37
|
+
description: "The version of Xcode to select specified as a Gem::Version requirement string (e.g. '~> 7.1.0'). Defaults to the value specified in the .xcode-version file ",
|
38
|
+
default_value: Helper::XcodesHelper.read_xcode_version_file,
|
49
39
|
default_value_dynamic: true,
|
50
|
-
verify_block: Helper::
|
40
|
+
verify_block: Helper::XcodesHelper::Verify.method(:requirement))
|
51
41
|
]
|
52
42
|
end
|
53
43
|
|
@@ -58,12 +48,17 @@ module Fastlane
|
|
58
48
|
def self.example_code
|
59
49
|
[
|
60
50
|
'xcversion(version: "8.1") # Selects Xcode 8.1.0',
|
61
|
-
'xcversion(version: "~> 8.1.0") # Selects the latest installed version from the 8.1.x set'
|
51
|
+
'xcversion(version: "~> 8.1.0") # Selects the latest installed version from the 8.1.x set',
|
52
|
+
'xcversion # When missing, the version value defaults to the value specified in the .xcode-version file'
|
62
53
|
]
|
63
54
|
end
|
64
55
|
|
65
56
|
def self.category
|
66
|
-
:
|
57
|
+
:deprecated
|
58
|
+
end
|
59
|
+
|
60
|
+
def self.deprecated_notes
|
61
|
+
"The xcode-install gem, which this action depends on, has been sunset. Please migrate to [xcodes](https://docs.fastlane.tools/actions/xcodes). You can find a migration guide here: [xcpretty/xcode-install/MIGRATION.md](https://github.com/xcpretty/xcode-install/blob/master/MIGRATION.md)"
|
67
62
|
end
|
68
63
|
end
|
69
64
|
end
|