Repository navigation
[various] Update iOS example apps to the 15.0 deployment target - #13223
Conversation
Xcode 27 only supports iOS deployment targets 15.0 and up. The "xcode analyze deprecation" CI step passes IPHONEOS_DEPLOYMENT_TARGET=14.0 on the xcodebuild command line (via --ios-min-version=14.0), which overrides the deployment target of every target in the build and now fails on every iOS plugin example: error: The iOS Simulator deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 14.0, but the range of supported deployment target versions is 15.0 to 27.0.x. Flutter's own minimum (stable and master) is already iOS 15, so this also updates the example apps' project files and Podfiles from 13.0/14.0 to 15.0. The Flutter tool already rewrites these to 15.0 in place during `flutter build ios`, so checking in the migrated values just keeps the tree clean and matches what CI actually builds. No plugin minimums (podspec / Package.swift) change in this PR. Part of flutter/flutter#194019
jmagman
left a comment
There was a problem hiding this comment.
Flutter's minimum on both stable and master is already iOS 15, so the deprecation check keeps the same meaning it had: "don't use anything deprecated at or below the lowest version we support".
I think this first needs the packages to support a minimum of 3.47? Right now they are on 3.41, as of #12959.
flutter/flutter@5ead723 was first available on 3.47.
Ah I see you're addressing that, this is only touching examples. |
|
autosubmit label was removed for flutter/packages/13223, because This PR has not met approval requirements for merging. Changes were requested by {jmagman}, please make the needed changes and resubmit this PR.
|
|
autosubmit label was removed for flutter/packages/13223, because - The status or check suite Dashboard Checks has failed. Please fix the issues identified (or deflake) before re-applying this label. |
|
Blocked on flutter/flutter#194407 |
`pendingFonts waits for fonts to be loaded` fails on roughly 3 out of 10 runs of `Windows_x64 dart_unit_tests_shard_1`, and only for PRs that make the tool run every package (`.ci/`, `script/`, Flutter rolls, ...), so it never shows up in postsubmit and blocks exactly the PRs that can't avoid it. The history and the analysis are in flutter/flutter#194407; the short version: - The three `expect`s in the test pass on every platform. The failure is a late error that flips an already-passed test to failed (the CI log shows the pass counter dropping from `+92` to `+91 -1` with no `[E]` block). - After the mock HTTP fetch, `_httpFetchFontAndSaveToDevice` writes the font to the application support directory without awaiting the result. The test does not fake `PathProviderPlatform`, so under `flutter test` that write fails with `MissingPluginException` inside the dropped future, after the test body has returned. This file has a single test, so whether the runner is still attached when the error lands is a timing question; Linux consistently loses the error, Windows regularly does not. - Keeping the test alive for two seconds after its last `expect` reproduces the error on Linux every time. This change installs the same `FakePathProviderPlatform` pointing at a temp directory that `load_font_if_necessary_test.dart` already uses, so the background write succeeds and there is no straggler error. With the change, the "wait two seconds" variant passes. Test-only change, so no version or CHANGELOG update (exempt category: PRs that only affect tests). Fixes flutter/flutter#194407 Unblocks #13223 ## Pre-Review Checklist [^1]: Regular contributors who have demonstrated familiarity with the repository guidelines only need to comment if the PR is not auto-exempted by repo tooling.
…yment-target # Conflicts: # .ci/targets/ios_platform_tests.yaml
|
autosubmit label was removed for flutter/packages/13223, because - The status or check suite Dashboard Checks has failed. Please fix the issues identified (or deflake) before re-applying this label. |
…r#194564) flutter/packages@da40eaf...93eede7 2026-10-16 41930132+hellohuanlin@users.noreply.github.com [camera]fix a crash when switching camera while recording due to disconnected capturePhotoOputput (flutter/packages#13248) 2026-10-16 okorohelijah@google.com [various] Update iOS example apps to the 15.0 deployment target (flutter/packages#13223) 2026-10-16 36861262+QuncCccccc@users.noreply.github.com [material_ui] Add M3E `IconButton` example (flutter/packages#13085) 2026-10-15 magder@google.com [ci] Increase deprecation check minimum to iOS 16 (flutter/packages#13211) 2026-10-15 victor.orozco@cloudsufi.com [google_sign_in] Remove the public iOS handleOpen helper (flutter/packages#13273) 2026-10-15 okorohelijah@google.com [google_fonts] Make the pendingFonts test deterministic (flutter/packages#13262) 2026-10-15 48776784+mackings@users.noreply.github.com [vector_graphics_compiler] Fix tspan transform applied twice (flutter/packages#13129) 2026-10-15 engine-flutter-autoroll@skia.org Roll Flutter from 426be96 to 5c7e45a (21 revisions) (flutter/packages#13270) 2026-10-15 37883572+edwin-hollen@users.noreply.github.com [flutter_svg] Add golden widget tests for SVG alpha masks (flutter/packages#13245) If this roll has caused a breakage, revert this CL and set the roller to dry run mode using the controls here: https://autoroll.skia.org/r/flutter-packages-flutter-autoroll Please CC flutter-ecosystem@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
…r#194564) flutter/packages@da40eaf...93eede7 2026-10-16 41930132+hellohuanlin@users.noreply.github.com [camera]fix a crash when switching camera while recording due to disconnected capturePhotoOputput (flutter/packages#13248) 2026-10-16 okorohelijah@google.com [various] Update iOS example apps to the 15.0 deployment target (flutter/packages#13223) 2026-10-16 36861262+QuncCccccc@users.noreply.github.com [material_ui] Add M3E `IconButton` example (flutter/packages#13085) 2026-10-15 magder@google.com [ci] Increase deprecation check minimum to iOS 16 (flutter/packages#13211) 2026-10-15 victor.orozco@cloudsufi.com [google_sign_in] Remove the public iOS handleOpen helper (flutter/packages#13273) 2026-10-15 okorohelijah@google.com [google_fonts] Make the pendingFonts test deterministic (flutter/packages#13262) 2026-10-15 48776784+mackings@users.noreply.github.com [vector_graphics_compiler] Fix tspan transform applied twice (flutter/packages#13129) 2026-10-15 engine-flutter-autoroll@skia.org Roll Flutter from 426be96 to 5c7e45a (21 revisions) (flutter/packages#13270) 2026-10-15 37883572+edwin-hollen@users.noreply.github.com [flutter_svg] Add golden widget tests for SVG alpha masks (flutter/packages#13245) If this roll has caused a breakage, revert this CL and set the roller to dry run mode using the controls here: https://autoroll.skia.org/r/flutter-packages-flutter-autoroll Please CC flutter-ecosystem@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Checks in the iOS 15.0 deployment target for the example apps, so the tree matches what CI actually builds.
Xcode 27 only accepts iOS deployment targets of 15.0 and up. The CI side of that — the
--ios-min-versionflag on thexcode analyze deprecationstep, which was the actual failure in the issue — has already landed in #13211 (it went to 16.0), so that file is no longer part of this PR.What's left here is the example projects: 44
example/ios/Runner.xcodeproj/project.pbxprojfiles and the three remaining Podfiles still said 13.0 or 14.0.flutter build iosalready rewrites these to 15.0 in place duringbuild examples(the migration logsUpdating minimum iOS deployment target to 15.0.), so CI was never building at 13.0; checking in the migrated values stops the files showing up as modified after a local build and makes the checked-in projects match Flutter's minimum. The stale "only supports back to iOS 14" comment in the google_maps_flutter example Podfile is replaced with the template's standard line.Plugin minimums (podspec /
Package.swift) are not changed here; that is a per-package decision like #13224 made for image_picker_ios.Verified on Xcode 27 before #13211 landed, with this branch plus the Xcode 27 CI experiment config: shard 1 https://ci.chromium.org/b/8668096608488894433 and shards 2–5 https://ci.chromium.org/b/8668086846834062161, https://ci.chromium.org/b/8668086845504323249, https://ci.chromium.org/b/8668086844011129681, https://ci.chromium.org/b/8668086842838050321 —
build examplesno longer prints any migration lines and the analyze steps pass; the remainingnative testfailures in three of those are unrelated Xcode 27 issues (flutter/flutter#194284, flutter/flutter#194285).Part of flutter/flutter#194019
Pre-Review Checklist
[shared_preferences]///).Version/CHANGELOG: CI configuration and unpublished example project files only; no package code or published files change, so no version bumps (same as #11227).
Tests: CI config and project-file change only; no testable code.
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-assistbot 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.Footnotes
Regular contributors who have demonstrated familiarity with the repository guidelines only need to comment if the PR is not auto-exempted by repo tooling. ↩ ↩2