Skip to content

Conversation

@okorohelijah
Copy link
Contributor

@okorohelijah okorohelijah commented Jan 5, 2026

This PR updates the Flutter tool's Xcode version requirements:

  • Minimum required version: 14 → 15
  • Recommended version: 15 → 16

List which issues are fixed by this PR. You must list at least one issue. An issue is not required if the PR fixes something trivial like a typo.

Fixes #144582

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.

@github-actions github-actions bot added tool Affects the "flutter" command-line tool. See also t: labels. a: desktop Running on desktop team-ios Owned by iOS platform team labels Jan 5, 2026
@okorohelijah
Copy link
Contributor Author

I used 16.2 as the recommended version since the ci hasnt been fully upgraded to 26

@okorohelijah okorohelijah marked this pull request as ready for review January 6, 2026 17:30
@okorohelijah okorohelijah requested a review from a team as a code owner January 6, 2026 17:30
@jmagman
Copy link
Member

jmagman commented Jan 6, 2026

I used 16.2 as the recommended version since the ci hasnt been fully upgraded to 26

Can you explain why you picked 16.2?

@okorohelijah
Copy link
Contributor Author

okorohelijah commented Jan 6, 2026

I used 16.2 as the recommended version since the ci hasnt been fully upgraded to 26

Can you explain why you picked 16.2?

I used 16.2 because that seems to be the current xcode version in ci but i agree we should be encouraging users to be using 26.2(the latest) since we're in the process of upgrading anyway. wdyt?

command: <String>['xcrun', '--sdk', 'iphonesimulator', '--show-sdk-platform-version'],
stdout: '17.0',
),
]);
Copy link
Contributor

Choose a reason for hiding this comment

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

Why is this required?

Copy link
Contributor Author

@okorohelijah okorohelijah Jan 7, 2026

Choose a reason for hiding this comment

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

I added the mock commands because subsequent validation checks e.g EULA, simctl, SDK version
run after the version check and could append their messages to the result because FakeProcessManager.any()
allows these commands to execute and they may return unexpected results, causing some checks to fail
and add error messages.

Since the test asserts on result.messages.last, we need to ensure all
subsequent checks pass so that the last message remains the expected hint about the recommended
Xcode version.

@github-actions github-actions bot added the platform-ios iOS applications specifically label Jan 7, 2026
@okorohelijah okorohelijah requested a review from vashworth January 7, 2026 20:15
@jmagman
Copy link
Member

jmagman commented Jan 7, 2026

I used 16.2 because that seems to be the current xcode version in ci but i agree we should be encouraging users to be using 26.2(the latest) since we're in the process of upgrading anyway. wdyt?

Generally we keep the minimum required and minimum suggested as low (not high) as possible and only bump it up if Apple/Xcode/features we need require.

I think you can make both the required and recommended 16, unless there's actually something special about 16.2.

You can use Version get xcodeRecommendedVersion => xcodeRequiredVersion; as is done in #97746.
Note you'll have to explicitly skip the "Emits partial status when Xcode below recommended version" test like this:

}, skip: false); // [intended] Skip this test when minimum and required check versions converge.

-    }, skip: false); // [intended] Skip this test when minimum and required check versions converge.
+    }, skip: true); // [intended] Skip this test when minimum and required check versions converge.

@jmagman
Copy link
Member

jmagman commented Jan 8, 2026

Actually the issue is to update to Xcode 15, not 16.

@github-actions github-actions bot removed the platform-ios iOS applications specifically label Jan 12, 2026
Copy link
Contributor

@vashworth vashworth left a comment

Choose a reason for hiding this comment

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

Couple tweaks to tests

@vashworth vashworth changed the title Bump minimum required Xcode version to 16 and recommended to 16.2 Bump minimum required Xcode version to 15 and recommended to 16 Jan 14, 2026
Copy link
Member

@jmagman jmagman left a comment

Choose a reason for hiding this comment

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

LGTM once @vashworth is happy with the comment thread.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Update tool minimum version to Xcode 15

3 participants