Skip to content

Commit 00a5e71

Browse files
authored
[stable] Update tests to use Xcode 16.2 and iOS 18.2 Simulator (flutter#166789)
Impacted Users: Flutter Release team, no external users impacted Impact Description: Runs tests on Xcode 16 and iOS 18 Simulator Workaround: N/A Risk: Low Test Coverage: Yes Validation Steps: N/A
1 parent 1248314 commit 00a5e71

File tree

113 files changed

+346
-470
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

113 files changed

+346
-470
lines changed

.ci.yaml

Lines changed: 22 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -129,11 +129,11 @@ platform_properties:
129129
[
130130
{"dependency": "apple_signing", "version": "version:to_2025"}
131131
]
132-
os: Mac-13|Mac-14
132+
os: Mac-14
133133
device_type: none
134134
$flutter/osx_sdk : >-
135135
{
136-
"sdk_version": "15a240d"
136+
"sdk_version": "16c5032a"
137137
}
138138
mac_arm64:
139139
properties:
@@ -145,12 +145,12 @@ platform_properties:
145145
[
146146
{"dependency": "apple_signing", "version": "version:to_2025"}
147147
]
148-
os: Mac-13|Mac-14
148+
os: Mac-14
149149
device_type: none
150150
cpu: arm64
151151
$flutter/osx_sdk : >-
152152
{
153-
"sdk_version": "15a240d"
153+
"sdk_version": "16c5032a"
154154
}
155155
mac_benchmark:
156156
properties:
@@ -164,12 +164,12 @@ platform_properties:
164164
]
165165
device_type: none
166166
mac_model: "Macmini8,1"
167-
os: Mac-13|Mac-14
167+
os: Mac-14
168168
tags: >
169169
["devicelab", "hostonly", "mac"]
170170
$flutter/osx_sdk : >-
171171
{
172-
"sdk_version": "15a240d"
172+
"sdk_version": "16c5032a"
173173
}
174174
mac_x64:
175175
properties:
@@ -181,12 +181,12 @@ platform_properties:
181181
[
182182
{"dependency": "apple_signing", "version": "version:to_2025"}
183183
]
184-
os: Mac-13|Mac-14
184+
os: Mac-14
185185
device_type: none
186186
cpu: x86
187187
$flutter/osx_sdk : >-
188188
{
189-
"sdk_version": "15a240d"
189+
"sdk_version": "16c5032a"
190190
}
191191
mac_build_test:
192192
properties:
@@ -199,12 +199,12 @@ platform_properties:
199199
{"dependency": "ruby", "version": "ruby_3.1-pod_1.13"},
200200
{"dependency": "apple_signing", "version": "version:to_2025"}
201201
]
202-
os: Mac-13|Mac-14
202+
os: Mac-14
203203
device_type: none
204204
cpu: x86
205205
$flutter/osx_sdk : >-
206206
{
207-
"sdk_version": "15a240d"
207+
"sdk_version": "16c5032a"
208208
}
209209
mac_android:
210210
properties:
@@ -214,7 +214,7 @@ platform_properties:
214214
{"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"},
215215
{"dependency": "open_jdk", "version": "version:17"}
216216
]
217-
os: Mac-13|Mac-14
217+
os: Mac-14
218218
cpu: x86
219219
device_type: "msm8952"
220220
mac_arm64_android:
@@ -224,7 +224,7 @@ platform_properties:
224224
{"dependency": "android_sdk", "version": "version:35v1"},
225225
{"dependency": "open_jdk", "version": "version:17"}
226226
]
227-
os: Mac-13|Mac-14
227+
os: Mac-14
228228
cpu: arm64
229229
device_type: "msm8952"
230230

@@ -236,7 +236,7 @@ platform_properties:
236236
{"dependency": "chrome_and_driver", "version": "version:125.0.6422.141"},
237237
{"dependency": "open_jdk", "version": "version:17"}
238238
]
239-
os: Mac-13|Mac-14
239+
os: Mac-14
240240
cpu: x86
241241
device_type: "mokey"
242242
mac_arm64_mokey:
@@ -246,7 +246,7 @@ platform_properties:
246246
{"dependency": "android_sdk", "version": "version:35v1"},
247247
{"dependency": "open_jdk", "version": "version:17"}
248248
]
249-
os: Mac-13|Mac-14
249+
os: Mac-14
250250
cpu: arm64
251251
device_type: "mokey"
252252

@@ -257,7 +257,7 @@ platform_properties:
257257
{"dependency": "android_sdk", "version": "version:35v1"},
258258
{"dependency": "open_jdk", "version": "version:17"}
259259
]
260-
os: Mac-13|Mac-14
260+
os: Mac-14
261261
cpu: x86
262262
device_type: "Pixel 7 Pro"
263263
mac_ios:
@@ -271,12 +271,12 @@ platform_properties:
271271
{"dependency": "ruby", "version": "ruby_3.1-pod_1.13"},
272272
{"dependency": "apple_signing", "version": "version:to_2025"}
273273
]
274-
os: Mac-13|Mac-14
274+
os: Mac-14
275275
cpu: x86
276276
device_os: iOS-17
277277
$flutter/osx_sdk : >-
278278
{
279-
"sdk_version": "15a240d"
279+
"sdk_version": "16c5032a"
280280
}
281281
mac_x64_ios:
282282
properties:
@@ -289,12 +289,12 @@ platform_properties:
289289
{"dependency": "ruby", "version": "ruby_3.1-pod_1.13"},
290290
{"dependency": "apple_signing", "version": "version:to_2025"}
291291
]
292-
os: Mac-13|Mac-14
292+
os: Mac-14
293293
cpu: x86
294294
device_os: iOS-17
295295
$flutter/osx_sdk : >-
296296
{
297-
"sdk_version": "15a240d"
297+
"sdk_version": "16c5032a"
298298
}
299299
mac_arm64_ios:
300300
properties:
@@ -307,12 +307,12 @@ platform_properties:
307307
{"dependency": "ruby", "version": "ruby_3.1-pod_1.13"},
308308
{"dependency": "apple_signing", "version": "none"}
309309
]
310-
os: Mac-13|Mac-14
310+
os: Mac-14
311311
cpu: arm64
312312
device_os: iOS-17
313313
$flutter/osx_sdk : >-
314314
{
315-
"sdk_version": "15a240d"
315+
"sdk_version": "16c5032a"
316316
}
317317
windows:
318318
properties:
@@ -4157,19 +4157,13 @@ targets:
41574157
recipe: flutter/flutter_drone
41584158
timeout: 60
41594159
properties:
4160-
os: Mac-14
41614160
dependencies: >-
41624161
[
41634162
{"dependency": "goldctl", "version": "git_revision:2387d6fff449587eecbb7e45b2692ca0710b63b9"},
41644163
{"dependency": "ruby", "version": "ruby_3.1-pod_1.13"},
41654164
{"dependency": "open_jdk", "version": "version:17"},
41664165
{"dependency": "android_sdk", "version": "version:35v1"}
41674166
]
4168-
# TODO(vashworth): Remove once Xcode 16 is used by all tests
4169-
$flutter/osx_sdk : >-
4170-
{
4171-
"sdk_version": "16c5032a"
4172-
}
41734167
shard: framework_tests
41744168
subshard: misc
41754169
tags: >
@@ -5484,7 +5478,7 @@ targets:
54845478
["devicelab", "ios", "mac"]
54855479
task_name: flutter_gallery__transition_perf_e2e_ios
54865480
drone_dimensions: >
5487-
["device_os=iOS-17","os=Mac-13|Mac-14", "cpu=x86"]
5481+
["device_os=iOS-17","os=Mac-14", "cpu=x86"]
54885482
54895483
- name: Mac_ios animated_blur_backdrop_filter_perf_ios__timeline_summary
54905484
recipe: devicelab/devicelab_drone

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ INTERNAL NOTE
3232
blurs.
3333
- [flutter/165166](https://github.com/flutter/flutter/pull/165166) - Impeller,
3434
All platforms, Text that is scaled over 48x renders incorrectly.
35+
- [flutter/165166](https://github.com/flutter/flutter/pull/165166) - Update CI configurations and tests to use Xcode 16 and iOS 18 simulator.
3536

3637
### [3.29.2](https://github.com/flutter/flutter/releases/tag/3.29.2)
3738

dev/devicelab/lib/framework/ios.dart

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,14 +63,16 @@ Future<void> testWithNewIOSSimulator(
6363
'--json',
6464
], workingDirectory: flutterDirectory.path);
6565

66-
// Get the preferred runtime build for the selected Xcode version. Preferred
66+
// First check for userOverriddenBuild, which may be set in CI by mac_toolchain.
67+
// Next, get the preferred runtime build for the selected Xcode version. Preferred
6768
// means the runtime was either bundled with Xcode, exactly matched your SDK
6869
// version, or it's indicated a better match for your SDK.
6970
final Map<String, Object?> decodeResult =
7071
json.decode(runtimesForSelectedXcode) as Map<String, Object?>;
7172
final String? iosKey =
7273
decodeResult.keys.where((String key) => key.contains('iphoneos')).firstOrNull;
7374
final String? runtimeBuildForSelectedXcode = switch (decodeResult[iosKey]) {
75+
{'userOverriddenBuild': final String build} => build,
7476
{'preferredBuild': final String build} => build,
7577
_ => null,
7678
};
@@ -142,7 +144,32 @@ Future<bool> runXcodeTests({
142144
required String platformDirectory,
143145
required String destination,
144146
required String testName,
147+
List<String> actions = const <String>['test'],
145148
String configuration = 'Release',
149+
List<String> extraOptions = const <String>[],
150+
String scheme = 'Runner',
151+
bool skipCodesign = false,
152+
}) {
153+
return runXcodeBuild(
154+
platformDirectory: platformDirectory,
155+
destination: destination,
156+
testName: testName,
157+
actions: actions,
158+
configuration: configuration,
159+
extraOptions: extraOptions,
160+
scheme: scheme,
161+
skipCodesign: skipCodesign,
162+
);
163+
}
164+
165+
Future<bool> runXcodeBuild({
166+
required String platformDirectory,
167+
required String destination,
168+
required String testName,
169+
List<String> actions = const <String>['build'],
170+
String configuration = 'Release',
171+
List<String> extraOptions = const <String>[],
172+
String scheme = 'Runner',
146173
bool skipCodesign = false,
147174
}) async {
148175
final Map<String, String> environment = Platform.environment;
@@ -170,14 +197,15 @@ Future<bool> runXcodeTests({
170197
'-workspace',
171198
'Runner.xcworkspace',
172199
'-scheme',
173-
'Runner',
200+
scheme,
174201
'-configuration',
175202
configuration,
176203
'-destination',
177204
destination,
178205
'-resultBundlePath',
179206
resultBundlePath,
180-
'test',
207+
...actions,
208+
...extraOptions,
181209
'COMPILER_INDEX_STORE_ENABLE=NO',
182210
if (developmentTeam != null) 'DEVELOPMENT_TEAM=$developmentTeam',
183211
if (codeSignStyle != null) 'CODE_SIGN_STYLE=$codeSignStyle',

dev/devicelab/lib/tasks/plugin_tests.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -370,6 +370,7 @@ public class $pluginClass: NSObject, FlutterPlugin {
370370
destination: 'platform=macOS',
371371
configuration: 'Debug',
372372
testName: 'native_plugin_unit_tests_macos',
373+
extraOptions: <String>['-parallel-testing-enabled', 'NO'],
373374
skipCodesign: true,
374375
)) {
375376
throw TaskResult.failure('Platform unit tests failed');

engine/src/flutter/.ci.yaml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,10 @@ platform_properties:
3030
{"dependency": "open_jdk", "version": "version:17"}
3131
]
3232
device_type: none
33-
os: Mac-13|Mac-14
33+
os: Mac-14
3434
$flutter/osx_sdk : >-
3535
{
36-
"sdk_version": "15a240d"
36+
"sdk_version": "16c5032a"
3737
}
3838
windows:
3939
properties:
@@ -493,12 +493,12 @@ targets:
493493
]
494494
$flutter/osx_sdk : >-
495495
{
496-
"sdk_version": "15a240d"
496+
"sdk_version": "16c5032a"
497497
}
498498
# Do not remove(https://github.com/flutter/flutter/issues/144644)
499499
# Scheduler will fail to get the platform
500500
drone_dimensions:
501-
- os=Mac-13|Mac-14
501+
- os=Mac-14
502502

503503
- name: Mac clangd
504504
recipe: engine_v2/builder
@@ -524,12 +524,12 @@ targets:
524524
config_name: mac_ios_engine
525525
$flutter/osx_sdk : >-
526526
{
527-
"sdk_version": "15a240d"
527+
"sdk_version": "16c5032a"
528528
}
529529
# Do not remove(https://github.com/flutter/flutter/issues/144644)
530530
# Scheduler will fail to get the platform
531531
drone_dimensions:
532-
- os=Mac-13|Mac-14
532+
- os=Mac-14
533533
- cpu=x86
534534

535535
- name: Windows windows_android_aot_engine

engine/src/flutter/ci/builders/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ in the `config_name` under `properties`:
5252
properties:
5353
config_name: mac_android_aot_engine
5454
$flutter/osx_sdk : >-
55-
{ "sdk_version": "15a240d" }
55+
{ "sdk_version": "16c5032a" }
5656
5757
```
5858

engine/src/flutter/ci/builders/linux_web_engine_test.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -519,7 +519,7 @@
519519
"recipe": "engine_v2/tester_engine",
520520
"drone_dimensions": [
521521
"device_type=none",
522-
"os=Mac-13|Mac-14",
522+
"os=Mac-14",
523523
"cpu=arm64"
524524
],
525525
"gclient_variables": {

0 commit comments

Comments
 (0)