Skip to content

Add validation for required fields during xcodebuild#187772

Merged
auto-submit[bot] merged 12 commits into
flutter:masterfrom
Hari-07:flutter-build-dir-bug
Jul 17, 2026
Merged

Add validation for required fields during xcodebuild#187772
auto-submit[bot] merged 12 commits into
flutter:masterfrom
Hari-07:flutter-build-dir-bug

Conversation

@Hari-07

@Hari-07 Hari-07 commented Jun 10, 2026

Copy link
Copy Markdown
Contributor
  • If the xcconfig is broken, flutter builds either fail or misbuild with unexpected values such as missing version numbers

Fixes #140845
Fixes #12748

If you had to change anything in the flutter/tests repo, include a link to the migration guide as per the breaking change policy.

Pre-launch Checklist

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

If this change needs to override an active code freeze, provide a comment explaining why. The code freeze workflow can be overridden by code reviewers. See pinned issues for any active code freezes with guidance.

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.

@Hari-07
Hari-07 requested review from a team as code owners June 10, 2026 07:36
@flutter-dashboard flutter-dashboard Bot added the CICD Run CI/CD label Jun 10, 2026
@github-actions github-actions Bot added tool Affects the "flutter" command-line tool. See also t: labels. team-ios Owned by iOS platform team team-macos Owned by the macOS platform team labels Jun 10, 2026

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

Copy link
Copy Markdown
Contributor

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 introduces validation for required Flutter build settings (FLUTTER_ROOT, FLUTTER_BUILD_DIR, FLUTTER_BUILD_NAME, and FLUTTER_BUILD_NUMBER) during Xcode builds, failing with an actionable error message if any are missing. The corresponding tests have been updated to include these environment variables, and new tests have been added to verify the validation behavior. The review feedback suggests refactoring the local commandsRequiringGeneratedSettings set into a private class-level static constant to improve code organization and adhere to logical ordering guidelines.

Comment thread packages/flutter_tools/bin/xcode_backend.dart Outdated
Comment thread packages/flutter_tools/bin/xcode_backend.dart
@Hari-07

Hari-07 commented Jun 10, 2026

Copy link
Copy Markdown
Contributor Author

This fix is based on the suggestion here #180251 (comment) to hard fail if we can detect the generated xcconfig is not attached properly rather than trying to setup fallbacks

@github-actions github-actions Bot removed the CICD Run CI/CD label Jun 10, 2026
@Hari-07 Hari-07 added the CICD Run CI/CD label Jun 10, 2026
@github-actions github-actions Bot removed the CICD Run CI/CD label Jun 10, 2026
@Hari-07 Hari-07 added the CICD Run CI/CD label Jun 10, 2026
@github-actions github-actions Bot removed the CICD Run CI/CD label Jun 10, 2026
@Hari-07 Hari-07 added the CICD Run CI/CD label Jun 10, 2026
@github-actions github-actions Bot removed the CICD Run CI/CD label Jun 10, 2026
@Hari-07 Hari-07 added the CICD Run CI/CD label Jun 10, 2026
@LouiseHsu
LouiseHsu requested a review from vashworth June 11, 2026 21:37
Comment thread packages/flutter_tools/bin/xcode_backend.dart Outdated
Comment thread packages/flutter_tools/bin/xcode_backend.dart
Comment thread packages/flutter_tools/bin/xcode_backend.dart Outdated
@okorohelijah okorohelijah added the waiting for response The Flutter team cannot make further progress on this issue until the original reporter responds label Jun 25, 2026
@github-actions github-actions Bot removed the waiting for response The Flutter team cannot make further progress on this issue until the original reporter responds label Jun 28, 2026
'configuration contains $includeDirective. '
'Missing settings: ${missingSettings.join(', ')}. '
'See https://docs.flutter.dev/deployment/flavors-ios#configure-xcode-schemes '
'for an example of correctly configured build configurations.',

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This doesn't teach user how to fix the configs tho. The proper fix should be to use flutter tool to regenerate the xcconfig file (we probably don't want them to manually edit this file which can be error prone)

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

My assumption was that people who run into this would be folks trying to do something custom or some upgrade path or something, so wouldn't knowing what fields need to be there the solution?

(I assume if regenerated it'd override anything else added by the user)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This file is not supposed to be edited by user, since it will be overwritten by flutter.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Generated.xcconfig is what we overwrite right? Afaik Release.xcconfig is created during flutter create but not overwritten then.

I think there are use cases where users edit Release.xcconfig they just need to make sure to also include generated xcconfig

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Oh you are right, Release.xcconfig is not overridden.

@hellohuanlin
hellohuanlin self-requested a review July 9, 2026 21:40
@okorohelijah

Copy link
Copy Markdown
Contributor

from triage: cc @hellohuanlin

@hellohuanlin hellohuanlin added the autosubmit Merge PR when tree becomes green via auto submit App label Jul 17, 2026
@auto-submit auto-submit Bot removed the autosubmit Merge PR when tree becomes green via auto submit App label Jul 17, 2026
@auto-submit

auto-submit Bot commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

autosubmit label was removed for flutter/flutter/187772, because The base commit of the PR is older than 7 days and can not be merged. Please merge the latest changes from the main into this branch and resubmit the PR.

@Hari-07 Hari-07 added the autosubmit Merge PR when tree becomes green via auto submit App label Jul 17, 2026
@auto-submit
auto-submit Bot added this pull request to the merge queue Jul 17, 2026
Merged via the queue into flutter:master with commit 51e5ec2 Jul 17, 2026
21 checks passed
@flutter-dashboard flutter-dashboard Bot removed the autosubmit Merge PR when tree becomes green via auto submit App label Jul 17, 2026
auto-submit Bot pushed a commit to flutter/packages that referenced this pull request Jul 18, 2026
Roll Flutter from fc1ad955f164 to 8005793c3562 (40 revisions)

flutter/flutter@fc1ad95...8005793

2026-07-18 [email protected] Remove `LineContents ` experimental AA line shader that is no longer used (flutter/flutter#189619)
2026-07-18 [email protected] Roll Skia from 9468e96cc40f to ba90f98535de (8 revisions) (flutter/flutter#189680)
2026-07-17 [email protected] Roll Dart SDK from 33e4b71e984b to 666e1e2133b7 (2 revisions) (flutter/flutter#189673)
2026-07-17 [email protected] [iOS] Fix potential use-after-free in a11y bridge channel handler (flutter/flutter#189637)
2026-07-17 [email protected] Migrate dev/tools skill validation to new dart_skills_lint API (flutter/flutter#189626)
2026-07-17 [email protected] Add validation for required fields during xcodebuild (flutter/flutter#187772)
2026-07-17 [email protected] Upgrade android_hardware_smoke_test CI to run instrumented tests (flutter/flutter#189390)
2026-07-17 [email protected] Roll Dart SDK from 0867cb1897b5 to 33e4b71e984b (1 revision) (flutter/flutter#189661)
2026-07-17 [email protected] Roll Skia from 702c3e790232 to 9468e96cc40f (1 revision) (flutter/flutter#189660)
2026-07-17 [email protected] Roll Packages from 9f95026 to 4fdc766 (11 revisions) (flutter/flutter#189659)
2026-07-17 [email protected] Roll Skia from 2e4a3ae035cd to 702c3e790232 (1 revision) (flutter/flutter#189655)
2026-07-17 [email protected] [macOS] Add FlutterPluginRegistrar.valuePublished(byPlugin:) just like iOS (flutter/flutter#189614)
2026-07-17 [email protected] Roll Dart SDK from c69d138c9646 to 0867cb1897b5 (2 revisions) (flutter/flutter#189649)
2026-07-17 [email protected] Roll Skia from 4f5aca109c87 to 2e4a3ae035cd (3 revisions) (flutter/flutter#189646)
2026-07-17 [email protected] [iOS] Fix missing nil checks and improve SemanticsObject bridge API (flutter/flutter#189630)
2026-07-17 [email protected] Roll Skia from 37c5e6b26aee to 4f5aca109c87 (19 revisions) (flutter/flutter#189638)
2026-07-17 [email protected] Roll Fuchsia Linux SDK from lLFbh5kFWbUGgC9Ek... to NL8xtzr8cxr5E8r8E... (flutter/flutter#189632)
2026-07-17 [email protected] Add blendMode parameter to RawImage and RenderImage (flutter/flutter#185938)
2026-07-17 [email protected] [web] Cache WASM network requests in flutter test (flutter/flutter#189623)
2026-07-17 [email protected] android_hardware_smoke_tests: Apply semantic line breaks to readme (flutter/flutter#189613)
2026-07-16 [email protected] ci(github-actions): resolve zizmor github-env findings in composite flutter actions (flutter/flutter#189602)
2026-07-16 [email protected] Remove obsolete packages analysis flag (flutter/flutter#189525)
2026-07-16 [email protected] Roll Dart SDK from e24870ff15bc to c69d138c9646 (2 revisions) (flutter/flutter#189597)
2026-07-16 [email protected] [fuchsia][iwyu] Remove transitive include of fuchsia.input.report. (flutter/flutter#188891)
2026-07-16 [email protected] Remove unnecessary value key hack in `key.dart`  (flutter/flutter#189291)
2026-07-16 [email protected] Roll Dart SDK from 81306a2ed317 to e24870ff15bc (1 revision) (flutter/flutter#189569)
2026-07-16 [email protected] [Impeller] Fix atlas growth test (flutter/flutter#189533)
2026-07-16 [email protected] Roll Dart SDK from d402ff7c9c84 to 81306a2ed317 (4 revisions) (flutter/flutter#189558)
2026-07-16 [email protected] Move shared darwin plugin tests into own builder (flutter/flutter#189411)
2026-07-16 [email protected] Roll Skia from ab2410bc857c to 37c5e6b26aee (19 revisions) (flutter/flutter#189549)
2026-07-16 [email protected] [ios] Fix //flutter:unittests build for physical devices (flutter/flutter#189543)
2026-07-16 [email protected] Fix lower DragTarget not being recognized in overlapping targets (flutter/flutter#188979)
2026-07-16 [email protected] Relocate cupertino samples that were under widgets/ (flutter/flutter#188876)
2026-07-15 [email protected] [iOS] Migrate DisplayLinkManager to a shared instance (flutter/flutter#189492)
2026-07-15 [email protected] [Impeller] Call glfwTerminate during global test environment teardown if a playground test called glfwInit (flutter/flutter#189523)
2026-07-15 [email protected] Roll pub packages (flutter/flutter#189515)
2026-07-15 [email protected] Roll Packages from ad2eab1 to 9f95026 (8 revisions) (flutter/flutter#189509)
2026-07-15 [email protected] add `@nonVirtual` to `RenderObject.attached`, fix `WidgetTester.hasRunningAnimations` (flutter/flutter#186832)
2026-07-15 [email protected] Roll vulkan-deps to 0582f446e54a (flutter/flutter#188524)
2026-07-15 [email protected] Roll Dart SDK from 0c408ff6dce9 to d402ff7c9c84 (1 revision) (flutter/flutter#189497)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-packages
Please CC [email protected],[email protected] on the revert to ensure that a human
is aware of the problem.
...
@Hari-07
Hari-07 deleted the flutter-build-dir-bug branch July 19, 2026 07:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CICD Run CI/CD team-ios Owned by iOS platform team team-macos Owned by the macOS 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.

Descriptive log on Flutter build when FLUTTER_BUILD_DIR environment variable isn't configured. Add warning comment to Debug/Release.xcconfig files

4 participants