Skip to content

Conversation

@vashworth
Copy link
Contributor

@vashworth vashworth commented Nov 11, 2025

Updates create templates for both iOS app and module to be migrated to UIScene. Can be tested with:

flutter create --platforms=ios my_app
flutter create --template module my_module

Module is integration tested in module_test_ios.

Also, enables the UIScene tool migration to be enabled by default.

Fixes #170293.
Fixes #177266.
Fixes #177265.
Fixes #167267.

Pre-launch Checklist

If you need help, consider asking for advice on the #hackers-new channel on Discord.

Note: The Flutter team is currently trialing the use of Gemini Code Assist for GitHub. Comments from the gemini-code-assist bot should not be taken as authoritative feedback from the Flutter team. If you find its comments useful you can update your code accordingly, but if you are unsure or disagree with the feedback, please feel free to wait for a Flutter team member's review for guidance on which automated comments should be addressed.

@vashworth vashworth requested a review from a team as a code owner November 11, 2025 20:30
@github-actions github-actions bot added the tool Affects the "flutter" command-line tool. See also t: labels. label Nov 11, 2025
@vashworth vashworth changed the title Enable UIScene Migration and create templates Enable UIScene Migration and update create templates Nov 11, 2025
Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request enables the UIScene migration by default and updates the iOS project templates to be compliant with the UIScene lifecycle. This includes adding SceneDelegate files, updating Info.plist with the UIApplicationSceneManifest, and moving plugin registration to the didInitializeImplicitFlutterEngine delegate method. The changes are applied consistently across app and module templates for both Swift and Objective-C. The integration tests have also been updated to reflect these changes. The implementation looks solid. I've only found a couple of minor style issues in the new Objective-C template files.

@github-actions github-actions bot added the team-ios Owned by iOS platform team label Nov 11, 2025
@vashworth vashworth added the autosubmit Merge PR when tree becomes green via auto submit App label Nov 17, 2025
@auto-submit auto-submit bot added this pull request to the merge queue Nov 17, 2025
Merged via the queue into flutter:master with commit f5e6491 Nov 17, 2025
147 of 148 checks passed
@flutter-dashboard flutter-dashboard bot removed the autosubmit Merge PR when tree becomes green via auto submit App label Nov 17, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Nov 17, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Nov 17, 2025
@gaaclarke
Copy link
Member

reason for revert: causing failures in post submit tests

example: https://ci.chromium.org/ui/p/flutter/builders/prod/Mac_ios%20platform_channels_benchmarks_ios/24421/overview

[2025-11-17 09:10:06.660248] [STDOUT] [STDOUT] [   +7 ms] Checking for advertised Dart VM Services...
[2025-11-17 09:10:06.671607] [STDOUT] [STDOUT] [  +11 ms] #0      _NativeSocket.send (dart:io-patch/socket_patch.dart:1524:34)
[2025-11-17 09:10:06.671636] [STDOUT] [STDOUT]            #1      _RawDatagramSocket.send (dart:io-patch/socket_patch.dart:3043:15)
[2025-11-17 09:10:06.671643] [STDOUT] [STDOUT]            #2      MDnsClient.lookup (package:multicast_dns/multicast_dns.dart:227:22)
[2025-11-17 09:10:06.671648] [STDOUT] [STDOUT]            #3      MDnsVmServiceDiscovery._doPollingVmService (package:flutter_tools/src/mdns_discovery.dart:308:66)
[2025-11-17 09:10:06.671652] [STDOUT] [STDOUT]            <asynchronous suspension>
[2025-11-17 09:10:06.671656] [STDOUT] [STDOUT]            #4      MDnsVmServiceDiscovery._pollingVmService.<anonymous closure> (package:flutter_tools/src/mdns_discovery.dart:241:62)
[2025-11-17 09:10:06.671660] [STDOUT] [STDOUT]            <asynchronous suspension>
[2025-11-17 09:10:06.671663] [STDOUT] [STDOUT] 
[2025-11-17 09:10:06.675643] [STDERR] [STDERR] [        ] Flutter could not access the local network.
[2025-11-17 09:10:06.675692] [STDERR] [STDERR] 
[2025-11-17 09:10:06.675697] [STDERR] [STDERR]            Please ensure your IDE or terminal app has permission to access devices on the local network. This allows Flutter to connect to the Dart VM.
[2025-11-17 09:10:06.675821] [STDERR] [STDERR] 
[2025-11-17 09:10:06.675841] [STDERR] [STDERR]            You can grant this permission in System Settings > Privacy & Security > Local Network.
[2025-11-17 09:10:06.675848] [STDERR] [STDERR] 
[2025-11-17 09:10:06.675853] [STDERR] [STDERR]            SocketException: Send failed (OS Error: No route to host, errno = 65), address = 0.0.0.0, port = 5353
[2025-11-17 09:10:06.675858] [STDERR] [STDERR] 
[2025-11-17 09:10:06.675886] [STDOUT] [STDOUT] [        ] mDNS query failed. Checking for an interface with a ipv4 link local address.
[2025-11-17 09:10:06.675895] [STDOUT] [STDOUT] [        ] Found interface "en9":
[2025-11-17 09:10:06.675922] [STDOUT] [STDOUT] [        ] 	Bound address: "169.254.178.22" link local
[2025-11-17 09:10:06.675930] [STDOUT] [STDOUT] [        ] Found interface "en0":
[2025-11-17 09:10:06.675934] [STDOUT] [STDOUT] [        ] 	Bound address: "100.127.108.108" 
[2025-11-17 09:10:06.675949] [STDOUT] [STDOUT] [        ] An interface with an ipv4 link local address was found.
[2025-11-17 09:10:18.919302] [STDOUT] [STDOUT] [+12245 ms] VM Service URL on device: http://127.0.0.1:65053/YjYg2LtViS8=/

@gaaclarke gaaclarke added the revert Autorevert PR (with "Reason for revert:" comment) label Nov 17, 2025
auto-submit bot pushed a commit that referenced this pull request Nov 17, 2025
@auto-submit auto-submit bot removed the revert Autorevert PR (with "Reason for revert:" comment) label Nov 17, 2025
github-merge-queue bot pushed a commit that referenced this pull request Nov 17, 2025
…" (#178665)

<!-- start_original_pr_link -->
Reverts: #178328
<!-- end_original_pr_link -->
<!-- start_initiating_author -->
Initiated by: gaaclarke
<!-- end_initiating_author -->
<!-- start_revert_reason -->
Reason for reverting: causing failures in post submit tests

example:
https://ci.chromium.org/ui/p/flutter/builders/prod/Mac_ios%20platform_channels_benchmarks_ios/24421/overview

```
[2025-11-17 09:10:06.660248] [STDOUT] [STDOUT] [   +7 ms] Checking for advertised Dart VM Services...
[2025-11-17 09:10:06.671607] [STDOUT] [STDOUT] [  +11 ms] #0      _NativeSocket.send (dart:io-patch/socket_patch.dart:1524:34)
[2
<!-- end_revert_reason -->
<!-- start_original_pr_author -->
Original PR Author: vashworth
<!-- end_original_pr_author -->

<!-- start_reviewers -->
Reviewed By: {LongCatIsLooong}
<!-- end_reviewers -->

<!-- start_revert_body -->
This change reverts the following previous change:
Updates create templates for both iOS app and module to be migrated to UIScene. Can be tested with:

```
flutter create --platforms=ios my_app
flutter create --template module my_module
```

Module is integration tested in [module_test_ios](https://github.com/flutter/flutter/blob/b1d5f03351590a0954d19c7584186f0722323169/dev/devicelab/bin/tasks/module_test_ios.dart#L187-L191).

Also, enables the UIScene tool migration to be enabled by default.

Fixes #170293.
Fixes #177266.
Fixes #177265.
Fixes #167267.

## Pre-launch Checklist

- [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs.
- [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities.
- [x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement].
- [x] I signed the [CLA].
- [x] I listed at least one issue that this PR fixes in the description above.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [x] I added new tests to check the change I am making, or this PR is [test-exempt].
- [x] I followed the [breaking change policy] and added [Data Driven Fixes] where supported.
- [x] All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel on [Discord].

**Note**: The Flutter team is currently trialing the use of [Gemini Code Assist for GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code). Comments from the `gemini-code-assist` bot should not be taken as authoritative feedback from the Flutter team. If you find its comments useful you can update your code accordingly, but if you are unsure or disagree with the feedback, please feel free to wait for a Flutter team member's review for guidance on which automated comments should be addressed.

<!-- Links -->
[Contributor Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]: https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]: https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md

<!-- end_revert_body -->

Co-authored-by: auto-submit[bot] <flutter-engprod-team@google.com>
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Nov 17, 2025
auto-submit bot pushed a commit to flutter/packages that referenced this pull request Nov 18, 2025
…#10455)

Manual roll Flutter from 9b5ad8031646 to cc14ef529014 (143 revisions)

Manual roll requested by tarrinneal@google.com

flutter/flutter@9b5ad80...cc14ef5

2025-11-17 bkonyi@google.com [ Widget Preview ] Fix crash when `widget_preview_scaffold/.dart_tool` doesn't exist (flutter/flutter#178662)
2025-11-17 william.oprandi@gmail.com Dev proxy correctly copy query parameters from original request (flutter/flutter#178162)
2025-11-17 engine-flutter-autoroll@skia.org Roll Dart SDK from ac5942fe75d0 to cf94632d94a1 (1 revision) (flutter/flutter#178664)
2025-11-17 116356835+AbdeMohlbi@users.noreply.github.com Improve code quality `FlutterViewTest.java`  (flutter/flutter#178594)
2025-11-17 katelovett@google.com Roll customer tests (flutter/flutter#178652)
2025-11-17 42980667+srivats22@users.noreply.github.com Corrects invalid Flutter wiki links (flutter/flutter#178158)
2025-11-17 sokolovskyi.konstantin@gmail.com Fix LateInitializationError in didChangeTextScaleFactor code example. (flutter/flutter#178375)
2025-11-17 engine-flutter-autoroll@skia.org Roll Skia from d877de9fc23e to 84c83c0dfb4a (3 revisions) (flutter/flutter#178653)
2025-11-17 116356835+AbdeMohlbi@users.noreply.github.com Small refactor in `DartMessenger.java` to use method reference (flutter/flutter#178584)
2025-11-17 116356835+AbdeMohlbi@users.noreply.github.com fix typos in `PlatformChannel.java‎` docs (flutter/flutter#178589)
2025-11-17 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Enable UIScene Migration and update create templates (#178328)" (flutter/flutter#178665)
2025-11-17 116356835+AbdeMohlbi@users.noreply.github.com Remove unnecessary `String.valueOf` in `‎ListenableEditingState.java‎` (flutter/flutter#178597)
2025-11-17 116356835+AbdeMohlbi@users.noreply.github.com Update `Metadata.java‎` to use `getBytes` in a static context (flutter/flutter#178587)
2025-11-17 jason-simmons@users.noreply.github.com Reduce the data copying in CanvasPath related to the SkPathBuilder API migration (flutter/flutter#178512)
2025-11-17 engine-flutter-autoroll@skia.org Roll Packages from 799b62c to ce44ebb (10 revisions) (flutter/flutter#178649)
2025-11-17 15619084+vashworth@users.noreply.github.com Enable UIScene Migration and update create templates (flutter/flutter#178328)
2025-11-17 engine-flutter-autoroll@skia.org Roll Skia from 5fb44352b232 to d877de9fc23e (1 revision) (flutter/flutter#178647)
2025-11-17 15619084+vashworth@users.noreply.github.com Revert "Separate copying dsym into its own target (#178261)" (flutter/flutter#178545)
2025-11-17 mdebbar@google.com [web] Reduce Skwasm test shards to 2 (flutter/flutter#178239)
2025-11-17 engine-flutter-autoroll@skia.org Roll Dart SDK from ee793f732959 to ac5942fe75d0 (1 revision) (flutter/flutter#178637)
2025-11-17 engine-flutter-autoroll@skia.org Roll Skia from b30859d35b89 to 5fb44352b232 (1 revision) (flutter/flutter#178636)
2025-11-17 engine-flutter-autoroll@skia.org Roll Skia from 5b7f8f61528e to b30859d35b89 (1 revision) (flutter/flutter#178634)
2025-11-17 engine-flutter-autoroll@skia.org Roll Skia from aad0515710a9 to 5b7f8f61528e (7 revisions) (flutter/flutter#178631)
2025-11-17 engine-flutter-autoroll@skia.org Roll Skia from 761e1fe67e15 to aad0515710a9 (1 revision) (flutter/flutter#178624)
2025-11-16 engine-flutter-autoroll@skia.org Roll Skia from 5f9157717150 to 761e1fe67e15 (1 revision) (flutter/flutter#178614)
2025-11-16 engine-flutter-autoroll@skia.org Roll Skia from 1b435b65e754 to 5f9157717150 (1 revision) (flutter/flutter#178612)
2025-11-16 engine-flutter-autoroll@skia.org Roll Dart SDK from dffc5f3f9be6 to ee793f732959 (1 revision) (flutter/flutter#178607)
2025-11-16 engine-flutter-autoroll@skia.org Roll Skia from ce2168cf2b6c to 1b435b65e754 (1 revision) (flutter/flutter#178604)
2025-11-15 engine-flutter-autoroll@skia.org Roll Dart SDK from 50eca21d80c4 to dffc5f3f9be6 (1 revision) (flutter/flutter#178603)
2025-11-15 matej.knopp@gmail.com [macOS] Implement dialog window (flutter/flutter#176893)
2025-11-15 engine-flutter-autoroll@skia.org Roll Dart SDK from f6f88ed5e5a1 to 50eca21d80c4 (1 revision) (flutter/flutter#178599)
2025-11-15 engine-flutter-autoroll@skia.org Roll Dart SDK from 9eda5b525ca9 to f6f88ed5e5a1 (1 revision) (flutter/flutter#178576)
2025-11-15 engine-flutter-autoroll@skia.org Roll Skia from c5c3399b3a84 to ce2168cf2b6c (1 revision) (flutter/flutter#178577)
2025-11-15 bernaferrari2@gmail.com Add a `RepeatingAnimationBuilder` API (flutter/flutter#174014)
2025-11-15 engine-flutter-autoroll@skia.org Roll Dart SDK from 486be9c17488 to 9eda5b525ca9 (1 revision) (flutter/flutter#178562)
2025-11-15 engine-flutter-autoroll@skia.org Roll Skia from f5d29842bf45 to c5c3399b3a84 (1 revision) (flutter/flutter#178559)
2025-11-14 engine-flutter-autoroll@skia.org Roll Skia from f58b1b8052a2 to f5d29842bf45 (3 revisions) (flutter/flutter#178556)
2025-11-14 engine-flutter-autoroll@skia.org Roll Dart SDK from c6c5f6c169a9 to 486be9c17488 (1 revision) (flutter/flutter#178555)
2025-11-14 bkonyi@google.com [ Widget Preview ] Gracefully handle unexpected analysis context disposal (flutter/flutter#178550)
2025-11-14 codefu@google.com docs: Add documentation for running devicelab tests in a PR (flutter/flutter#178554)
2025-11-14 matt.boetger@gmail.com [Reland] Generate new Gradle lockfiles and delete ignore files (flutter/flutter#178553)
2025-11-14 flar@google.com Fix crash when doing a SaveLayer under a non-invertible transform (flutter/flutter#178507)
2025-11-14 matt.boetger@gmail.com [Reland] Generate ignore lockfiles and Update Android Embedder Dependencies (flutter/flutter#178538)
2025-11-14 engine-flutter-autoroll@skia.org Roll Skia from 4c02d9fc79c1 to f58b1b8052a2 (1 revision) (flutter/flutter#178543)
...
github-merge-queue bot pushed a commit that referenced this pull request Nov 18, 2025
Reland #178328.

## Pre-launch Checklist

- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [x] I signed the [CLA].
- [x] I listed at least one issue that this PR fixes in the description
above.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [x] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [x] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [x] All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel
on [Discord].

**Note**: The Flutter team is currently trialing the use of [Gemini Code
Assist for
GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code).
Comments from the `gemini-code-assist` bot should not be taken as
authoritative feedback from the Flutter team. If you find its comments
useful you can update your code accordingly, but if you are unsure or
disagree with the feedback, please feel free to wait for a Flutter team
member's review for guidance on which automated comments should be
addressed.

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

team-ios Owned by iOS platform team tool Affects the "flutter" command-line tool. See also t: labels.

Projects

None yet

3 participants