Skip to content

Conversation

@matanlurey
Copy link
Contributor

Closes #162704.

/cc @loic-sharma.

I expect I'll have to update some iOS/macOS unit and possibly integration tests due to this change, but wanted something concrete to talk about during our 1:1. Feel free to leave comments or questions even if this PR is in "draft".

@matanlurey matanlurey requested a review from vashworth February 6, 2025 21:25
@github-actions github-actions bot added tool Affects the "flutter" command-line tool. See also t: labels. a: desktop Running on desktop labels Feb 6, 2025
@vashworth
Copy link
Contributor

@matanlurey

So the purpose of build-ios-framework is for Add to App, which builds the flutter app into an xcframework to be embedded into a native iOS app.

The purpose of dev dependencies is to have dependencies only for testing flutter apps, right?

You can’t test a flutter app that’s been exported as an xcframework, so I would think there’s no reason to have dev dependencies ever in this scenario.

So hypothetically, should only need to do regeneratePlatformSpecificToolingIfApplicable once, outside of the loop. Also, looks like processPodsIfNeeded doesn’t even use the buildInfo.mode so that can be moved out of the loop as well. We should also remove buildMode as an argument of processPodsIfNeeded since it's not used.

@matanlurey
Copy link
Contributor Author

matanlurey commented Feb 6, 2025

@vashworth thanks for the review. Responses inline below:

The purpose of dev dependencies is to have dependencies only for testing flutter apps, right?

Sort of. I can't assume why or why not you'd want to use this feature, but it could be things like:

  • You have a plugin that provides support for testing only (this is the integration_test) case
  • You have a plugin in development that you don't want shipped in release mode, but you want enabled for testing

You can’t test a flutter app that’s been exported as an xcframework

Even with something like XCUITest? Test here can be very broad, it could mean literally "I hand this device to a QA person" (I suppose), and they open up a "secret" QA panel to do things. This use case isn't important to me, but it would probably be confusing for flutter build ipa --debug to enable dev plugins, but flutter build ios-framework's debug mode not to?

I can be talked out (easily) of this being important, but trying to make the matrix harder on you all to understand.

So hypothetically, should only need to do regeneratePlatformSpecificToolingIfApplicable once, outside of the loop.

Good to know. I tried moving it higher and locally it passes, but let's talk about it f2f tomorrow

Also, looks like processPodsIfNeeded doesn’t even use the buildInfo.mode so that can be moved out of the loop as well. We should also remove buildMode as an argument of processPodsIfNeeded since it's not used.

Well... post my PR, it will use it, here:

... because otherwise you'll replace the plugin list (i.e. .flutter-plugins-dependencies) with one that includes dev plugins.

@matanlurey matanlurey marked this pull request as ready for review February 7, 2025 02:43
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.

LGTM

@matanlurey
Copy link
Contributor Author

I am going to merge #162892 first so we can double check these indeed work with this change.

@matanlurey
Copy link
Contributor Author

Merged. Merging against main.

@github-actions github-actions bot added the team-ios Owned by iOS platform team label Feb 10, 2025
@matanlurey matanlurey added the autosubmit Merge PR when tree becomes green via auto submit App label Feb 10, 2025
@matanlurey
Copy link
Contributor Author

854f8cb opts-in the module tests to the flag, so that this change is more thoroughly tested (hopefully without a post-submit breakage since these tests now run on pre-submit again).

@auto-submit
Copy link
Contributor

auto-submit bot commented Feb 10, 2025

autosubmit label was removed for flutter/flutter/162834, because - The status or check suite Mac build_ios_framework_module_test has failed. Please fix the issues identified (or deflake) before re-applying this label.

@auto-submit auto-submit bot removed the autosubmit Merge PR when tree becomes green via auto submit App label Feb 10, 2025
@matanlurey
Copy link
Contributor Author

The integration tests now pass.

I looked into adding a unit test, but there is no existing commands.shard/permeable like there is for iOS/macOS, and the build_darwin_framework_test.dart is too specific; it would bypass (miss) all of the logic that changed in this particular PR, so we'll have to rely on the integration test coverage for now.

@matanlurey matanlurey added the autosubmit Merge PR when tree becomes green via auto submit App label Feb 12, 2025
@auto-submit auto-submit bot added this pull request to the merge queue Feb 12, 2025
Merged via the queue into flutter:master with commit d0a2c02 Feb 12, 2025
150 checks passed
@flutter-dashboard flutter-dashboard bot removed the autosubmit Merge PR when tree becomes green via auto submit App label Feb 12, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 12, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 12, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 12, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 12, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 13, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 13, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 13, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 14, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 14, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 14, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 14, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 14, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 15, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 15, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 16, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 16, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 17, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 17, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 17, 2025
auto-submit bot pushed a commit to flutter/packages that referenced this pull request Feb 17, 2025
Roll Flutter from 892f9c1 to e8f34a9 (71 revisions)

flutter/flutter@892f9c1...e8f34a9

2025-02-12 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Roll Skia from f31c733c86c4 to 25937c31f153 (2 revisions) (#163127)" (flutter/flutter#163133)
2025-02-12 [email protected] Roll Skia from f31c733c86c4 to 25937c31f153 (2 revisions) (flutter/flutter#163127)
2025-02-12 [email protected] Update .ci.yaml to support Fuchsia cherrypick branches (flutter/flutter#163000)
2025-02-12 [email protected] Roll Skia from 6f17f2ebb2e5 to f31c733c86c4 (1 revision) (flutter/flutter#163112)
2025-02-12 [email protected] Roll Skia from a9dbb2479c26 to 6f17f2ebb2e5 (2 revisions) (flutter/flutter#163109)
2025-02-12 [email protected] [devicelab] dont strip symbols in platform views layout test. (flutter/flutter#163101)
2025-02-12 [email protected] [Impeller] mirror tile mode requires highp for Adreno. (flutter/flutter#163066)
2025-02-12 [email protected] Roll Skia from 5b56d9a91633 to a9dbb2479c26 (6 revisions) (flutter/flutter#163100)
2025-02-12 [email protected] Roll Dart SDK from d9d7f103b6b7 to fcef25f18e4d (3 revisions) (flutter/flutter#163098)
2025-02-12 [email protected] Generate a correct `.flutter-plugin-dependencies` file for iOS/macOS projects (flutter/flutter#162834)
2025-02-12 [email protected] Remove unsound artifacts, remove `*Sound` qualifier. (flutter/flutter#163015)
2025-02-12 [email protected] [Impeller] libImpeller: Add support for Metal and Vulkan rendering. (flutter/flutter#161547)
2025-02-11 [email protected] Marks Mac_benchmark basic_material_app_macos__compile to be flaky (flutter/flutter#162365)
2025-02-11 [email protected] Roll pub packages (flutter/flutter#163083)
2025-02-11 [email protected] Adds hasSelectedState parameter to matchesSemantics for migration (flutter/flutter#163014)
2025-02-11 [email protected] fix: Dispose codec after completing frame creation (flutter/flutter#159945)
2025-02-11 [email protected] [ios][secure_paste]show menu item based on info sent from framework (flutter/flutter#161103)
2025-02-11 [email protected] Update conductor to support monorepos (flutter/flutter#161704)
2025-02-11 [email protected] [Android] fix hcpp tapping, again, and add test. (flutter/flutter#163035)
2025-02-11 [email protected] Add new builder for experiment with dynamic modules. (flutter/flutter#162855)
2025-02-11 [email protected] Roll vulkan-deps to 9edf248c597b (flutter/flutter#162549)
2025-02-11 [email protected] Adds dialog and alertdialog role (flutter/flutter#162692)
2025-02-11 [email protected] Roll Dart SDK from 99789828cc95 to d9d7f103b6b7 (12 revisions) (flutter/flutter#163060)
2025-02-11 [email protected] [ Widget Preview ] Cleanup PreviewDetector code (flutter/flutter#163050)
2025-02-11 [email protected] Fix `SkiaException` -> `TestFailure`, add tests. (flutter/flutter#163054)
2025-02-11 [email protected] [Android] fix hcpp overlay layer intersection. (flutter/flutter#163024)
2025-02-11 [email protected] [ Widget Preview ] Update generated scaffold project to include early preview rendering (flutter/flutter#162847)
2025-02-11 [email protected] [Embedder] Implement merged platform and UI thread (flutter/flutter#162944)
2025-02-11 [email protected] [Android] Remove overlay when platform views are removed from screen. (flutter/flutter#162908)
2025-02-11 [email protected] Roll Dart to 3.8.0-76.0.dev (flutter/flutter#162913)
2025-02-11 [email protected] [Android] add HCPP platform views benchmark and integration test. (flutter/flutter#163018)
2025-02-11 [email protected] Roll Skia from 8c377e8bedd2 to 5b56d9a91633 (9 revisions) (flutter/flutter#163021)
2025-02-11 [email protected] Try golden-testing on a Mokey (`bringup: true`), retry on an emulator (flutter/flutter#163029)
2025-02-11 [email protected] Fix Linux keyboard support for AltGr (flutter/flutter#162495)
2025-02-11 [email protected] Update gen_keycodes output to new engine location. (flutter/flutter#162479)
2025-02-10 [email protected] [Android] add runtime flag to determine if HCPP is supported. (flutter/flutter#163004)
2025-02-10 [email protected] [iOS][Engine] Fix view removal process for AutofillContextAction.cancel (flutter/flutter#160653)
2025-02-10 [email protected] Re-land #162644: Remove `--verbose` from devicelab task executions. (flutter/flutter#163017)
2025-02-10 [email protected] Include device lab version for how to run test (flutter/flutter#163010)
2025-02-10 [email protected] Change the default optimization level to `-O2` for wasm in release mode. (flutter/flutter#162917)
2025-02-10 [email protected] [web] robustify safaridriver launch sequence (flutter/flutter#162919)
2025-02-10 [email protected] Return more eagerly when toggling service extensions (flutter/flutter#162774)
2025-02-10 [email protected] Fix doc reference typos (flutter/flutter#162893)
2025-02-10 [email protected] Roll Skia from 180ed4fc263d to 8c377e8bedd2 (4 revisions) (flutter/flutter#162998)
2025-02-10 [email protected] FYI matanlurey (does not require review, but probably should) on dev/test infra. (flutter/flutter#162642)
2025-02-10 [email protected] [Impeller] rrect_blur: scale max radius clamp by transform (flutter/flutter#161238)
...
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 20, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 20, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 21, 2025
androidseb pushed a commit to androidseb/packages that referenced this pull request Jun 8, 2025
Roll Flutter from 892f9c1 to e8f34a9 (71 revisions)

flutter/flutter@892f9c1...e8f34a9

2025-02-12 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Roll Skia from f31c733c86c4 to 25937c31f153 (2 revisions) (#163127)" (flutter/flutter#163133)
2025-02-12 [email protected] Roll Skia from f31c733c86c4 to 25937c31f153 (2 revisions) (flutter/flutter#163127)
2025-02-12 [email protected] Update .ci.yaml to support Fuchsia cherrypick branches (flutter/flutter#163000)
2025-02-12 [email protected] Roll Skia from 6f17f2ebb2e5 to f31c733c86c4 (1 revision) (flutter/flutter#163112)
2025-02-12 [email protected] Roll Skia from a9dbb2479c26 to 6f17f2ebb2e5 (2 revisions) (flutter/flutter#163109)
2025-02-12 [email protected] [devicelab] dont strip symbols in platform views layout test. (flutter/flutter#163101)
2025-02-12 [email protected] [Impeller] mirror tile mode requires highp for Adreno. (flutter/flutter#163066)
2025-02-12 [email protected] Roll Skia from 5b56d9a91633 to a9dbb2479c26 (6 revisions) (flutter/flutter#163100)
2025-02-12 [email protected] Roll Dart SDK from d9d7f103b6b7 to fcef25f18e4d (3 revisions) (flutter/flutter#163098)
2025-02-12 [email protected] Generate a correct `.flutter-plugin-dependencies` file for iOS/macOS projects (flutter/flutter#162834)
2025-02-12 [email protected] Remove unsound artifacts, remove `*Sound` qualifier. (flutter/flutter#163015)
2025-02-12 [email protected] [Impeller] libImpeller: Add support for Metal and Vulkan rendering. (flutter/flutter#161547)
2025-02-11 [email protected] Marks Mac_benchmark basic_material_app_macos__compile to be flaky (flutter/flutter#162365)
2025-02-11 [email protected] Roll pub packages (flutter/flutter#163083)
2025-02-11 [email protected] Adds hasSelectedState parameter to matchesSemantics for migration (flutter/flutter#163014)
2025-02-11 [email protected] fix: Dispose codec after completing frame creation (flutter/flutter#159945)
2025-02-11 [email protected] [ios][secure_paste]show menu item based on info sent from framework (flutter/flutter#161103)
2025-02-11 [email protected] Update conductor to support monorepos (flutter/flutter#161704)
2025-02-11 [email protected] [Android] fix hcpp tapping, again, and add test. (flutter/flutter#163035)
2025-02-11 [email protected] Add new builder for experiment with dynamic modules. (flutter/flutter#162855)
2025-02-11 [email protected] Roll vulkan-deps to 9edf248c597b (flutter/flutter#162549)
2025-02-11 [email protected] Adds dialog and alertdialog role (flutter/flutter#162692)
2025-02-11 [email protected] Roll Dart SDK from 99789828cc95 to d9d7f103b6b7 (12 revisions) (flutter/flutter#163060)
2025-02-11 [email protected] [ Widget Preview ] Cleanup PreviewDetector code (flutter/flutter#163050)
2025-02-11 [email protected] Fix `SkiaException` -> `TestFailure`, add tests. (flutter/flutter#163054)
2025-02-11 [email protected] [Android] fix hcpp overlay layer intersection. (flutter/flutter#163024)
2025-02-11 [email protected] [ Widget Preview ] Update generated scaffold project to include early preview rendering (flutter/flutter#162847)
2025-02-11 [email protected] [Embedder] Implement merged platform and UI thread (flutter/flutter#162944)
2025-02-11 [email protected] [Android] Remove overlay when platform views are removed from screen. (flutter/flutter#162908)
2025-02-11 [email protected] Roll Dart to 3.8.0-76.0.dev (flutter/flutter#162913)
2025-02-11 [email protected] [Android] add HCPP platform views benchmark and integration test. (flutter/flutter#163018)
2025-02-11 [email protected] Roll Skia from 8c377e8bedd2 to 5b56d9a91633 (9 revisions) (flutter/flutter#163021)
2025-02-11 [email protected] Try golden-testing on a Mokey (`bringup: true`), retry on an emulator (flutter/flutter#163029)
2025-02-11 [email protected] Fix Linux keyboard support for AltGr (flutter/flutter#162495)
2025-02-11 [email protected] Update gen_keycodes output to new engine location. (flutter/flutter#162479)
2025-02-10 [email protected] [Android] add runtime flag to determine if HCPP is supported. (flutter/flutter#163004)
2025-02-10 [email protected] [iOS][Engine] Fix view removal process for AutofillContextAction.cancel (flutter/flutter#160653)
2025-02-10 [email protected] Re-land #162644: Remove `--verbose` from devicelab task executions. (flutter/flutter#163017)
2025-02-10 [email protected] Include device lab version for how to run test (flutter/flutter#163010)
2025-02-10 [email protected] Change the default optimization level to `-O2` for wasm in release mode. (flutter/flutter#162917)
2025-02-10 [email protected] [web] robustify safaridriver launch sequence (flutter/flutter#162919)
2025-02-10 [email protected] Return more eagerly when toggling service extensions (flutter/flutter#162774)
2025-02-10 [email protected] Fix doc reference typos (flutter/flutter#162893)
2025-02-10 [email protected] Roll Skia from 180ed4fc263d to 8c377e8bedd2 (4 revisions) (flutter/flutter#162998)
2025-02-10 [email protected] FYI matanlurey (does not require review, but probably should) on dev/test infra. (flutter/flutter#162642)
2025-02-10 [email protected] [Impeller] rrect_blur: scale max radius clamp by transform (flutter/flutter#161238)
...
FMorschel pushed a commit to FMorschel/packages that referenced this pull request Jun 9, 2025
Roll Flutter from 892f9c1 to e8f34a9 (71 revisions)

flutter/flutter@892f9c1...e8f34a9

2025-02-12 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Roll Skia from f31c733c86c4 to 25937c31f153 (2 revisions) (#163127)" (flutter/flutter#163133)
2025-02-12 [email protected] Roll Skia from f31c733c86c4 to 25937c31f153 (2 revisions) (flutter/flutter#163127)
2025-02-12 [email protected] Update .ci.yaml to support Fuchsia cherrypick branches (flutter/flutter#163000)
2025-02-12 [email protected] Roll Skia from 6f17f2ebb2e5 to f31c733c86c4 (1 revision) (flutter/flutter#163112)
2025-02-12 [email protected] Roll Skia from a9dbb2479c26 to 6f17f2ebb2e5 (2 revisions) (flutter/flutter#163109)
2025-02-12 [email protected] [devicelab] dont strip symbols in platform views layout test. (flutter/flutter#163101)
2025-02-12 [email protected] [Impeller] mirror tile mode requires highp for Adreno. (flutter/flutter#163066)
2025-02-12 [email protected] Roll Skia from 5b56d9a91633 to a9dbb2479c26 (6 revisions) (flutter/flutter#163100)
2025-02-12 [email protected] Roll Dart SDK from d9d7f103b6b7 to fcef25f18e4d (3 revisions) (flutter/flutter#163098)
2025-02-12 [email protected] Generate a correct `.flutter-plugin-dependencies` file for iOS/macOS projects (flutter/flutter#162834)
2025-02-12 [email protected] Remove unsound artifacts, remove `*Sound` qualifier. (flutter/flutter#163015)
2025-02-12 [email protected] [Impeller] libImpeller: Add support for Metal and Vulkan rendering. (flutter/flutter#161547)
2025-02-11 [email protected] Marks Mac_benchmark basic_material_app_macos__compile to be flaky (flutter/flutter#162365)
2025-02-11 [email protected] Roll pub packages (flutter/flutter#163083)
2025-02-11 [email protected] Adds hasSelectedState parameter to matchesSemantics for migration (flutter/flutter#163014)
2025-02-11 [email protected] fix: Dispose codec after completing frame creation (flutter/flutter#159945)
2025-02-11 [email protected] [ios][secure_paste]show menu item based on info sent from framework (flutter/flutter#161103)
2025-02-11 [email protected] Update conductor to support monorepos (flutter/flutter#161704)
2025-02-11 [email protected] [Android] fix hcpp tapping, again, and add test. (flutter/flutter#163035)
2025-02-11 [email protected] Add new builder for experiment with dynamic modules. (flutter/flutter#162855)
2025-02-11 [email protected] Roll vulkan-deps to 9edf248c597b (flutter/flutter#162549)
2025-02-11 [email protected] Adds dialog and alertdialog role (flutter/flutter#162692)
2025-02-11 [email protected] Roll Dart SDK from 99789828cc95 to d9d7f103b6b7 (12 revisions) (flutter/flutter#163060)
2025-02-11 [email protected] [ Widget Preview ] Cleanup PreviewDetector code (flutter/flutter#163050)
2025-02-11 [email protected] Fix `SkiaException` -> `TestFailure`, add tests. (flutter/flutter#163054)
2025-02-11 [email protected] [Android] fix hcpp overlay layer intersection. (flutter/flutter#163024)
2025-02-11 [email protected] [ Widget Preview ] Update generated scaffold project to include early preview rendering (flutter/flutter#162847)
2025-02-11 [email protected] [Embedder] Implement merged platform and UI thread (flutter/flutter#162944)
2025-02-11 [email protected] [Android] Remove overlay when platform views are removed from screen. (flutter/flutter#162908)
2025-02-11 [email protected] Roll Dart to 3.8.0-76.0.dev (flutter/flutter#162913)
2025-02-11 [email protected] [Android] add HCPP platform views benchmark and integration test. (flutter/flutter#163018)
2025-02-11 [email protected] Roll Skia from 8c377e8bedd2 to 5b56d9a91633 (9 revisions) (flutter/flutter#163021)
2025-02-11 [email protected] Try golden-testing on a Mokey (`bringup: true`), retry on an emulator (flutter/flutter#163029)
2025-02-11 [email protected] Fix Linux keyboard support for AltGr (flutter/flutter#162495)
2025-02-11 [email protected] Update gen_keycodes output to new engine location. (flutter/flutter#162479)
2025-02-10 [email protected] [Android] add runtime flag to determine if HCPP is supported. (flutter/flutter#163004)
2025-02-10 [email protected] [iOS][Engine] Fix view removal process for AutofillContextAction.cancel (flutter/flutter#160653)
2025-02-10 [email protected] Re-land #162644: Remove `--verbose` from devicelab task executions. (flutter/flutter#163017)
2025-02-10 [email protected] Include device lab version for how to run test (flutter/flutter#163010)
2025-02-10 [email protected] Change the default optimization level to `-O2` for wasm in release mode. (flutter/flutter#162917)
2025-02-10 [email protected] [web] robustify safaridriver launch sequence (flutter/flutter#162919)
2025-02-10 [email protected] Return more eagerly when toggling service extensions (flutter/flutter#162774)
2025-02-10 [email protected] Fix doc reference typos (flutter/flutter#162893)
2025-02-10 [email protected] Roll Skia from 180ed4fc263d to 8c377e8bedd2 (4 revisions) (flutter/flutter#162998)
2025-02-10 [email protected] FYI matanlurey (does not require review, but probably should) on dev/test infra. (flutter/flutter#162642)
2025-02-10 [email protected] [Impeller] rrect_blur: scale max radius clamp by transform (flutter/flutter#161238)
...
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.

Make flutter build {ios|macos}-framework invoke rengeratePlatformSpecificTooling per build mode

2 participants