Skip to content

Fix macOS relative plugin Xcode file path#183593

Merged
auto-submit[bot] merged 1 commit intoflutter:masterfrom
vashworth:macos_plugin_xcode_file_path
Mar 12, 2026
Merged

Fix macOS relative plugin Xcode file path#183593
auto-submit[bot] merged 1 commit intoflutter:masterfrom
vashworth:macos_plugin_xcode_file_path

Conversation

@vashworth
Copy link
Contributor

Fixes #183591.

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 the tool Affects the "flutter" command-line tool. See also t: labels. label Mar 12, 2026
@vashworth vashworth added the CICD Run CI/CD label Mar 12, 2026
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 modifies the Swift Package Manager integration migration to correctly calculate relative plugin paths for macOS. It introduces platform-specific logic to use a different base directory for path calculation on macOS versus iOS. The corresponding tests are updated to reflect this change, including adding a managedDirectory property to the fake Xcode project for testing purposes.

"sourceTree": "<group>"
}''';
if (includePlugin) {
final pluginLeadingPath = platform == FlutterDarwinPlatform.ios ? '../../' : '../../../';
Copy link
Contributor

Choose a reason for hiding this comment

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

medium

The logic for determining pluginLeadingPath is also present on line 3595. To adhere to the style guide principle of avoiding duplication, consider extracting this logic into a private top-level helper function. For example:

String _getPluginLeadingPath(FlutterDarwinPlatform platform) {
  return platform == FlutterDarwinPlatform.ios ? '../../' : '../../../';
}

You could then call this function here and on line 3595.

References
  1. The style guide recommends avoiding duplication of state or logic to maintain a single source of truth. This logic for determining the plugin path is duplicated in two places within this test file. (link)

Copy link
Contributor

@stuartmorgan-g stuartmorgan-g left a comment

Choose a reason for hiding this comment

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

LGTM

I'm curious why the group on iOS doesn't use its path, but I guess at this point trying to change it would be a nightmare.

@vashworth
Copy link
Contributor Author

LGTM

I'm curious why the group on iOS doesn't use its path, but I guess at this point trying to change it would be a nightmare.

I think it's because iOS uses name:

and macOS uses path:

@stuartmorgan-g
Copy link
Contributor

Right, I'm just curious why Flutter in the iOS project was set up as a named group that's not actually connected to the Flutter directory.

@vashworth vashworth added the autosubmit Merge PR when tree becomes green via auto submit App label Mar 12, 2026
@vashworth
Copy link
Contributor Author

Right, I'm just curious why Flutter in the iOS project was set up as a named group that's not actually connected to the Flutter directory.

Oh yeah that I'm not sure about

@auto-submit auto-submit bot added this pull request to the merge queue Mar 12, 2026
Merged via the queue into flutter:master with commit 209a86e Mar 12, 2026
146 of 147 checks passed
@flutter-dashboard flutter-dashboard bot removed the autosubmit Merge PR when tree becomes green via auto submit App label Mar 12, 2026
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Mar 13, 2026
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Mar 13, 2026
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Mar 13, 2026
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Mar 14, 2026
auto-submit bot pushed a commit to flutter/packages that referenced this pull request Mar 14, 2026
flutter/flutter@9e36adb...732e05d

2026-03-13 [email protected] Roll Dart SDK from 330b797abd09 to d5f6d3c17499 (1 revision) (flutter/flutter#183640)
2026-03-13 [email protected] Roll Skia from 9eb5598e1b2c to 029229d8be91 (3 revisions) (flutter/flutter#183638)
2026-03-13 [email protected] Roll Skia from 9be8fdf31ff4 to 9eb5598e1b2c (2 revisions) (flutter/flutter#183630)
2026-03-13 [email protected] Add awaits to flutter/test callsites (flutter/flutter#183487)
2026-03-13 [email protected] Add await to more flutter/flutter callsites (flutter/flutter#183413)
2026-03-13 [email protected] Roll Dart SDK from d1d84ab7ef0d to 330b797abd09 (2 revisions) (flutter/flutter#183624)
2026-03-13 [email protected] refactor: remove material import from sliver_resizing_header_test and sliver_prototype_item_extent_test (flutter/flutter#183562)
2026-03-13 [email protected] Fix reselection issue after the text is cleared (flutter/flutter#183545)
2026-03-13 [email protected] Roll Skia from 255bd243276b to 9be8fdf31ff4 (5 revisions) (flutter/flutter#183616)
2026-03-12 [email protected] ci: Remove `bringup` from orchestrator for windows_arm_host_engine on Linux (flutter/flutter#183574)
2026-03-12 [email protected] Use operator<=> instead of std::less for UniqueID. (flutter/flutter#183600)
2026-03-12 [email protected] Specified the repo the cp label will be removed from (flutter/flutter#183611)
2026-03-12 [email protected] [web] Fix Web SDK build on macOS (flutter/flutter#183549)
2026-03-12 [email protected] Roll Skia from 38761e1803d0 to 255bd243276b (3 revisions) (flutter/flutter#183603)
2026-03-12 [email protected] Roll Dart SDK from 2e1e7a09fce6 to d1d84ab7ef0d (1 revision) (flutter/flutter#183604)
2026-03-12 [email protected] Fix macOS relative plugin Xcode file path (flutter/flutter#183593)
2026-03-12 [email protected] Made cp labels get rejected on issues. (flutter/flutter#183595)
2026-03-12 [email protected] Roll Packages from ecace66 to 02f231f (4 revisions) (flutter/flutter#183594)
2026-03-12 [email protected] Roll Dart SDK from 59be21f25f2d to 2e1e7a09fce6 (1 revision) (flutter/flutter#183577)
2026-03-12 [email protected] Roll Skia from 46f41493ebf4 to 38761e1803d0 (6 revisions) (flutter/flutter#183590)

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] on the revert to ensure that a human
is aware of the problem.

To file a bug in Packages: 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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CICD Run CI/CD tool Affects the "flutter" command-line tool. See also t: labels.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Swift Package Manager local packages overrides have the wrong path on macOS

2 participants