[iOS/macOS] Add Xcode error if dev dependencies are incorrect#165916
[iOS/macOS] Add Xcode error if dev dependencies are incorrect#165916auto-submit[bot] merged 2 commits intoflutter:masterfrom
Conversation
| final DateTime referenceModified = referenceFile.statSync().modified; | ||
| final DateTime entityModified = entity.statSync().modified; | ||
|
|
||
| return referenceModified.isAfter(entityModified); |
There was a problem hiding this comment.
This is the exact same logic but makes it easier to debug the date times.
| }); | ||
|
|
||
| tearDown(() { | ||
| tryToDelete(tempProjectDir); |
There was a problem hiding this comment.
This only deleted the project dir but not the plugin dirs.
| const String _kMacosAssembleErrorHeader = | ||
| '========================================================================'; | ||
|
|
||
| void main() { |
There was a problem hiding this comment.
These tests were missing and cover existing behavior.
2793300 to
266dc56
Compare
| runOnlyForDeploymentPostprocessing = 0; | ||
| shellPath = /bin/sh; | ||
| shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh\ntouch Flutter/ephemeral/tripwire\n"; | ||
| shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire\n"; |
There was a problem hiding this comment.
This matches the latest macOS template:
Without this, the Xcode build succeeds even if the macOS assemble step fails.
fd766a4 to
985853f
Compare
| pluginAPath, | ||
| '--template=plugin', | ||
| '--project-name=plugin_a_real_dependency', | ||
| '--platforms=ios', |
There was a problem hiding this comment.
Previously the plugin was Dart-only. This adds a platform so that the .flutter-plugins-dependencies file has plugins in the platform-specific section.
| platformDirectory: path.join(projectDirectory, 'macos'), | ||
| destination: 'platform=macOS', | ||
| testName: 'native_ui_tests_macos', | ||
| configuration: 'Debug', |
There was a problem hiding this comment.
Line 19 above does a debug build, Xcode tests must use the same configuration.
| // Native unit tests rely on building the app first to generate necessary | ||
| // build files. | ||
| await build(buildTarget, validateNativeBuildProject: false); | ||
| await build(buildTarget, validateNativeBuildProject: false, buildMode: 'debug'); |
There was a problem hiding this comment.
Previously there was a mixture of release and debug here. That broke Xcode tests. I made everything debug.
|
|
||
| dev_dependencies: | ||
| integration_test: | ||
| sdk: flutter |
There was a problem hiding this comment.
This adds a dev dependency with platform-specific code. This is needed for the integration tests to verify that the dev dependency check fails as expected on Flutter iOS modules
b1d4fad to
0b37c85
Compare
packages/flutter_tools/lib/src/build_system/targets/darwin.dart
Outdated
Show resolved
Hide resolved
packages/flutter_tools/lib/src/build_system/targets/darwin.dart
Outdated
Show resolved
Hide resolved
packages/flutter_tools/lib/src/build_system/targets/darwin.dart
Outdated
Show resolved
Hide resolved
packages/flutter_tools/lib/src/build_system/targets/darwin.dart
Outdated
Show resolved
Hide resolved
packages/flutter_tools/lib/src/build_system/targets/darwin.dart
Outdated
Show resolved
Hide resolved
d9d7610 to
d7d3599
Compare
…changed (#166164) Currently, `refreshPlugins` always updates the `.flutter-plugins-dependencies` file. In a future change, `flutter assemble` will use the `.flutter-plugins-dependencies` file as an input. Unnecessary writes to this file will invalidate build targets. This updates the logic to only write .flutter-plugins-dependencies if it has "significant" changes. Part of #163874 Next pull request: #165916 ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [x] I signed the [CLA]. - [x] I listed at least one issue that this PR fixes in the description above. - [x] I updated/added relevant documentation (doc comments with `///`). - [x] I added new tests to check the change I am making, or this PR is [test-exempt]. - [x] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [x] All existing and new tests are passing. If you need help, consider asking for advice on the #hackers-new channel on [Discord]. <!-- Links --> [Contributor Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview [Tree Hygiene]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md [test-exempt]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests [Flutter Style Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md [Features we expect every widget to implement]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement [CLA]: https://cla.developers.google.com/ [flutter/tests]: https://github.com/flutter/tests [breaking change policy]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes [Discord]: https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md [Data Driven Fixes]: https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md --------- Co-authored-by: Victoria Ashworth <[email protected]>
The Flutter tool's build system executes targets that take inputs and
produces outputs. Previously, targets would hardcode paths if they
needed to use Flutter project files as inputs/outputs. For example:
```dart
class FooTarget extends Target {
@OverRide
List<Source> get inputs => <Source>[
Source.pattern('{PROJECT_DIR}/foo/bar'),
];
}
```
This is problematic as the
[`FlutterProject`](https://github.com/flutter/flutter/blob/05b5e79105441acb55e98a778ff7854cd191de8c/packages/flutter_tools/lib/src/project.dart#L89)
is the source of truth for where a Flutter project's files are located:
1. If we change a project file's location, we need to update
`FlutterProject` as well as any hardcoded target inputs/outputs.
2. Project files' location can be dynamic. For example, a Flutter app
puts iOS files in the `ios/` directory, but a Flutter module puts iOS
files in the `.ios/` directory. Targets need to duplicate
`FlutterProject`'s logic to determine the project file's location.
As a result, hardcoding project file paths in targets can be
error-prone.
This introduces a new `Source` factory that lets you use the
`FlutterProject` to create the source:
```dart
class FooTarget extends Target {
@OverRide
List<Source> get inputs => <Source>[
Source.fromProject((FlutterProject project) => project.fooFile),
];
}
```
Part of #163874
Next pull request: #165916
## Pre-launch Checklist
- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [x] I signed the [CLA].
- [x] I listed at least one issue that this PR fixes in the description
above.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [x] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [x] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [x] All existing and new tests are passing.
If you need help, consider asking for advice on the #hackers-new channel
on [Discord].
<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
Manual roll Flutter from 30e53b0 to db68c95 (98 revisions) Manual roll requested by [email protected] flutter/flutter@30e53b0...db68c95 2025-04-15 [email protected] [customer_testing] Pick up the fix for issue found by flutter/dart hh. (flutter/flutter#167212) 2025-04-15 [email protected] Roll Packages from f26b681 to 2fcc403 (4 revisions) (flutter/flutter#167218) 2025-04-15 [email protected] Fix: Update sheet route bottom padding with top padding (flutter/flutter#164473) 2025-04-15 [email protected] Add Irish(ga) to Flutter (flutter/flutter#167129) 2025-04-15 [email protected] Roll Fuchsia Linux SDK from 91RIHvX0YC3wzD7qj... to 7bWzHwIPBTyU6R9nO... (flutter/flutter#167213) 2025-04-15 [email protected] Change saturation calculation for HSLColor.fromColor (flutter/flutter#166639) 2025-04-15 [email protected] fix: Update time picker dialog input size (flutter/flutter#163184) 2025-04-15 [email protected] Clarify how/when `FLUTTER_PREBUILT_ENGINE_VERSION` is passed in Flutter's CI (flutter/flutter#167204) 2025-04-15 [email protected] [ Widget Preview ] Add support for `theme` and `brightness` properties on `Preview` (flutter/flutter#167001) 2025-04-15 [email protected] Update `tests.version` to fix `customer_testing`. (flutter/flutter#167206) 2025-04-15 [email protected] Persistent CupertinoListTile leading and trailing (flutter/flutter#166799) 2025-04-15 [email protected] Add buildroot compatibility for HWASAN. (flutter/flutter#167133) 2025-04-15 [email protected] Correct max height calculation to fade and animate insets on scroll in CupertinoSearchTextField (flutter/flutter#166569) 2025-04-15 [email protected] Clip bottom widgets in nav bar transition (flutter/flutter#166705) 2025-04-14 [email protected] Roll Skia from e7aa93f33a20 to 76cb5d4fba27 (13 revisions) (flutter/flutter#167132) 2025-04-14 [email protected] [fuchsia] Uprev test-scripts with FUCHSIA_READELF env (flutter/flutter#166929) 2025-04-14 [email protected] Cleanup links to flutter/engine in ci/builders docs (flutter/flutter#166916) 2025-04-14 [email protected] Roll Packages from 465bcff to f26b681 (1 revision) (flutter/flutter#167122) 2025-04-14 [email protected] [skwasm] Use `queueMicrotask` instead of `postMessage` when single-threaded (flutter/flutter#166997) 2025-04-14 [email protected] Remove some unused third party library build scripts (flutter/flutter#166960) 2025-04-14 [email protected] [reland] Fix regression in NDK version checking (flutter/flutter#167011) 2025-04-14 [email protected] Add network permissions information to the dart doc of network image. (flutter/flutter#167110) 2025-04-14 [email protected] Include 3.29.3 and 3.29.2 changelog entries to master (flutter/flutter#166994) 2025-04-12 [email protected] [Impeller] various iOS cleanups. (flutter/flutter#166859) 2025-04-11 [email protected] [Impeller] reland: defer vulkan context initialization as long as possible. (flutter/flutter#167000) 2025-04-11 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Fix regression in NDK version checking (#166998)" (flutter/flutter#167007) 2025-04-11 [email protected] Fix regression in NDK version checking (flutter/flutter#166998) 2025-04-11 [email protected] [iOS] Infer autocorrect value from autofillHints (flutter/flutter#165637) 2025-04-11 [email protected] [Impeller] fix vulkan/gl color space decode. (flutter/flutter#166957) 2025-04-11 [email protected] modify toggle mode style with DatePickerTheme (flutter/flutter#164102) 2025-04-11 [email protected] [iOS/macOS] Add Xcode error if dev dependencies are incorrect (flutter/flutter#165916) 2025-04-11 98614782+auto-submit[bot]@users.noreply.github.com Reverts "[Impeller] defer vulkan context initialization as long as possible. (#166941)" (flutter/flutter#166990) 2025-04-11 [email protected] Roll Packages from 431dc61 to 465bcff (2 revisions) (flutter/flutter#166982) 2025-04-11 [email protected] [Impeller] defer vulkan context initialization as long as possible. (flutter/flutter#166941) 2025-04-11 [email protected] Reland "[ Widget Preview ] Add initial support for communications over the Dart Tooling Daemon (DTD) (#166698)" (flutter/flutter#166877) 2025-04-11 [email protected] [native assets] Use workspace pubspec for user-defines (flutter/flutter#166977) 2025-04-11 [email protected] [native assets] Roll dependencies (flutter/flutter#166969) 2025-04-11 [email protected] Roll Skia from 98deb838d3b8 to e7aa93f33a20 (1 revision) (flutter/flutter#166966) 2025-04-11 [email protected] Roll Fuchsia Linux SDK from vYisSsIgqw0mqFRVJ... to 91RIHvX0YC3wzD7qj... (flutter/flutter#166963) 2025-04-11 [email protected] [native assets] Support user-defines in pubspec (flutter/flutter#166940) 2025-04-11 [email protected] [Impeller] correct render pass bariers when resolve has mips. (flutter/flutter#166892) 2025-04-11 [email protected] [Impeller] re-make AHB swapchain lazy and allow usage on < 34 (flutter/flutter#166943) 2025-04-11 [email protected] Reland "SliverEnsureSemantics (#165589)" (flutter/flutter#166889) 2025-04-11 [email protected] Roll Skia from 171b2bf1e496 to 98deb838d3b8 (2 revisions) (flutter/flutter#166955) ...
Currently xcode-analyze relies on the native project files already having been generated. This is unreliably locally, and now is problematic on CI as well since Xcode builds now (as of flutter/flutter#165916) must match the last build mode, so analysis will fail if the previous CI step built in release mode (as is currently the case). This adds a config-only build call in debug mode before analyzing. Since running a config-only build is a common operation in the tool, this extracts a helper to abstract the logic. Unblocks the flutter/flutter->flutter/packages roller.
Currently xcode-analyze relies on the native project files already having been generated. This is unreliably locally, and now is problematic on CI as well since Xcode builds now (as of flutter/flutter#165916) must match the last build mode, so analysis will fail if the previous CI step built in release mode (as is currently the case). This adds a config-only build call in debug mode before analyzing. Since running a config-only build is a common operation in the tool, this extracts a helper to abstract the logic. Unblocks the flutter/flutter->flutter/packages roller.
…(#9092) Manual roll Flutter from 30e53b0d9caa to db68c950c599 (98 revisions) Manual roll requested by [email protected] flutter/flutter@30e53b0...db68c95 2025-04-15 [email protected] [customer_testing] Pick up the fix for issue found by flutter/dart hh. (flutter/flutter#167212) 2025-04-15 [email protected] Roll Packages from 853e96a to a5ed6cb (4 revisions) (flutter/flutter#167218) 2025-04-15 [email protected] Fix: Update sheet route bottom padding with top padding (flutter/flutter#164473) 2025-04-15 [email protected] Add Irish(ga) to Flutter (flutter/flutter#167129) 2025-04-15 [email protected] Roll Fuchsia Linux SDK from 91RIHvX0YC3wzD7qj... to 7bWzHwIPBTyU6R9nO... (flutter/flutter#167213) 2025-04-15 [email protected] Change saturation calculation for HSLColor.fromColor (flutter/flutter#166639) 2025-04-15 [email protected] fix: Update time picker dialog input size (flutter/flutter#163184) 2025-04-15 [email protected] Clarify how/when `FLUTTER_PREBUILT_ENGINE_VERSION` is passed in Flutter's CI (flutter/flutter#167204) 2025-04-15 [email protected] [ Widget Preview ] Add support for `theme` and `brightness` properties on `Preview` (flutter/flutter#167001) 2025-04-15 [email protected] Update `tests.version` to fix `customer_testing`. (flutter/flutter#167206) 2025-04-15 [email protected] Persistent CupertinoListTile leading and trailing (flutter/flutter#166799) 2025-04-15 [email protected] Add buildroot compatibility for HWASAN. (flutter/flutter#167133) 2025-04-15 [email protected] Correct max height calculation to fade and animate insets on scroll in CupertinoSearchTextField (flutter/flutter#166569) 2025-04-15 [email protected] Clip bottom widgets in nav bar transition (flutter/flutter#166705) 2025-04-14 [email protected] Roll Skia from e7aa93f33a20 to 76cb5d4fba27 (13 revisions) (flutter/flutter#167132) 2025-04-14 [email protected] [fuchsia] Uprev test-scripts with FUCHSIA_READELF env (flutter/flutter#166929) 2025-04-14 [email protected] Cleanup links to flutter/engine in ci/builders docs (flutter/flutter#166916) 2025-04-14 [email protected] Roll Packages from 4808eff to 853e96a (1 revision) (flutter/flutter#167122) 2025-04-14 [email protected] [skwasm] Use `queueMicrotask` instead of `postMessage` when single-threaded (flutter/flutter#166997) 2025-04-14 [email protected] Remove some unused third party library build scripts (flutter/flutter#166960) 2025-04-14 [email protected] [reland] Fix regression in NDK version checking (flutter/flutter#167011) 2025-04-14 [email protected] Add network permissions information to the dart doc of network image. (flutter/flutter#167110) 2025-04-14 [email protected] Include 3.29.3 and 3.29.2 changelog entries to master (flutter/flutter#166994) 2025-04-12 [email protected] [Impeller] various iOS cleanups. (flutter/flutter#166859) 2025-04-11 [email protected] [Impeller] reland: defer vulkan context initialization as long as possible. (flutter/flutter#167000) 2025-04-11 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Fix regression in NDK version checking (#166998)" (flutter/flutter#167007) 2025-04-11 [email protected] Fix regression in NDK version checking (flutter/flutter#166998) 2025-04-11 [email protected] [iOS] Infer autocorrect value from autofillHints (flutter/flutter#165637) 2025-04-11 [email protected] [Impeller] fix vulkan/gl color space decode. (flutter/flutter#166957) 2025-04-11 [email protected] modify toggle mode style with DatePickerTheme (flutter/flutter#164102) 2025-04-11 [email protected] [iOS/macOS] Add Xcode error if dev dependencies are incorrect (flutter/flutter#165916) 2025-04-11 98614782+auto-submit[bot]@users.noreply.github.com Reverts "[Impeller] defer vulkan context initialization as long as possible. (#166941)" (flutter/flutter#166990) 2025-04-11 [email protected] Roll Packages from b2c45f9 to 4808eff (2 revisions) (flutter/flutter#166982) 2025-04-11 [email protected] [Impeller] defer vulkan context initialization as long as possible. (flutter/flutter#166941) 2025-04-11 [email protected] Reland "[ Widget Preview ] Add initial support for communications over the Dart Tooling Daemon (DTD) (#166698)" (flutter/flutter#166877) 2025-04-11 [email protected] [native assets] Use workspace pubspec for user-defines (flutter/flutter#166977) 2025-04-11 [email protected] [native assets] Roll dependencies (flutter/flutter#166969) 2025-04-11 [email protected] Roll Skia from 98deb838d3b8 to e7aa93f33a20 (1 revision) (flutter/flutter#166966) 2025-04-11 [email protected] Roll Fuchsia Linux SDK from vYisSsIgqw0mqFRVJ... to 91RIHvX0YC3wzD7qj... (flutter/flutter#166963) 2025-04-11 [email protected] [native assets] Support user-defines in pubspec (flutter/flutter#166940) 2025-04-11 [email protected] [Impeller] correct render pass bariers when resolve has mips. (flutter/flutter#166892) 2025-04-11 [email protected] [Impeller] re-make AHB swapchain lazy and allow usage on < 34 (flutter/flutter#166943) 2025-04-11 [email protected] Reland "SliverEnsureSemantics (#165589)" (flutter/flutter#166889) 2025-04-11 [email protected] Roll Skia from 171b2bf1e496 to 98deb838d3b8 (2 revisions) (flutter/flutter#166955) ...
Currently xcode-analyze relies on the native project files already having been generated. This is unreliably locally, and now is problematic on CI as well since Xcode builds now (as of flutter/flutter#165916) must match the last build mode, so analysis will fail if the previous CI step built in release mode (as is currently the case). This adds a config-only build call in debug mode before analyzing. Since running a config-only build is a common operation in the tool, this extracts a helper to abstract the logic. Unblocks the flutter/flutter->flutter/packages roller.
) Manual roll Flutter from 30e53b0 to db68c95 (98 revisions) Manual roll requested by [email protected] flutter/flutter@30e53b0...db68c95 2025-04-15 [email protected] [customer_testing] Pick up the fix for issue found by flutter/dart hh. (flutter/flutter#167212) 2025-04-15 [email protected] Roll Packages from f26b681 to 2fcc403 (4 revisions) (flutter/flutter#167218) 2025-04-15 [email protected] Fix: Update sheet route bottom padding with top padding (flutter/flutter#164473) 2025-04-15 [email protected] Add Irish(ga) to Flutter (flutter/flutter#167129) 2025-04-15 [email protected] Roll Fuchsia Linux SDK from 91RIHvX0YC3wzD7qj... to 7bWzHwIPBTyU6R9nO... (flutter/flutter#167213) 2025-04-15 [email protected] Change saturation calculation for HSLColor.fromColor (flutter/flutter#166639) 2025-04-15 [email protected] fix: Update time picker dialog input size (flutter/flutter#163184) 2025-04-15 [email protected] Clarify how/when `FLUTTER_PREBUILT_ENGINE_VERSION` is passed in Flutter's CI (flutter/flutter#167204) 2025-04-15 [email protected] [ Widget Preview ] Add support for `theme` and `brightness` properties on `Preview` (flutter/flutter#167001) 2025-04-15 [email protected] Update `tests.version` to fix `customer_testing`. (flutter/flutter#167206) 2025-04-15 [email protected] Persistent CupertinoListTile leading and trailing (flutter/flutter#166799) 2025-04-15 [email protected] Add buildroot compatibility for HWASAN. (flutter/flutter#167133) 2025-04-15 [email protected] Correct max height calculation to fade and animate insets on scroll in CupertinoSearchTextField (flutter/flutter#166569) 2025-04-15 [email protected] Clip bottom widgets in nav bar transition (flutter/flutter#166705) 2025-04-14 [email protected] Roll Skia from e7aa93f33a20 to 76cb5d4fba27 (13 revisions) (flutter/flutter#167132) 2025-04-14 [email protected] [fuchsia] Uprev test-scripts with FUCHSIA_READELF env (flutter/flutter#166929) 2025-04-14 [email protected] Cleanup links to flutter/engine in ci/builders docs (flutter/flutter#166916) 2025-04-14 [email protected] Roll Packages from 465bcff to f26b681 (1 revision) (flutter/flutter#167122) 2025-04-14 [email protected] [skwasm] Use `queueMicrotask` instead of `postMessage` when single-threaded (flutter/flutter#166997) 2025-04-14 [email protected] Remove some unused third party library build scripts (flutter/flutter#166960) 2025-04-14 [email protected] [reland] Fix regression in NDK version checking (flutter/flutter#167011) 2025-04-14 [email protected] Add network permissions information to the dart doc of network image. (flutter/flutter#167110) 2025-04-14 [email protected] Include 3.29.3 and 3.29.2 changelog entries to master (flutter/flutter#166994) 2025-04-12 [email protected] [Impeller] various iOS cleanups. (flutter/flutter#166859) 2025-04-11 [email protected] [Impeller] reland: defer vulkan context initialization as long as possible. (flutter/flutter#167000) 2025-04-11 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Fix regression in NDK version checking (#166998)" (flutter/flutter#167007) 2025-04-11 [email protected] Fix regression in NDK version checking (flutter/flutter#166998) 2025-04-11 [email protected] [iOS] Infer autocorrect value from autofillHints (flutter/flutter#165637) 2025-04-11 [email protected] [Impeller] fix vulkan/gl color space decode. (flutter/flutter#166957) 2025-04-11 [email protected] modify toggle mode style with DatePickerTheme (flutter/flutter#164102) 2025-04-11 [email protected] [iOS/macOS] Add Xcode error if dev dependencies are incorrect (flutter/flutter#165916) 2025-04-11 98614782+auto-submit[bot]@users.noreply.github.com Reverts "[Impeller] defer vulkan context initialization as long as possible. (#166941)" (flutter/flutter#166990) 2025-04-11 [email protected] Roll Packages from 431dc61 to 465bcff (2 revisions) (flutter/flutter#166982) 2025-04-11 [email protected] [Impeller] defer vulkan context initialization as long as possible. (flutter/flutter#166941) 2025-04-11 [email protected] Reland "[ Widget Preview ] Add initial support for communications over the Dart Tooling Daemon (DTD) (#166698)" (flutter/flutter#166877) 2025-04-11 [email protected] [native assets] Use workspace pubspec for user-defines (flutter/flutter#166977) 2025-04-11 [email protected] [native assets] Roll dependencies (flutter/flutter#166969) 2025-04-11 [email protected] Roll Skia from 98deb838d3b8 to e7aa93f33a20 (1 revision) (flutter/flutter#166966) 2025-04-11 [email protected] Roll Fuchsia Linux SDK from vYisSsIgqw0mqFRVJ... to 91RIHvX0YC3wzD7qj... (flutter/flutter#166963) 2025-04-11 [email protected] [native assets] Support user-defines in pubspec (flutter/flutter#166940) 2025-04-11 [email protected] [Impeller] correct render pass bariers when resolve has mips. (flutter/flutter#166892) 2025-04-11 [email protected] [Impeller] re-make AHB swapchain lazy and allow usage on < 34 (flutter/flutter#166943) 2025-04-11 [email protected] Reland "SliverEnsureSemantics (#165589)" (flutter/flutter#166889) 2025-04-11 [email protected] Roll Skia from 171b2bf1e496 to 98deb838d3b8 (2 revisions) (flutter/flutter#166955) ...
…changed (flutter#166164) Currently, `refreshPlugins` always updates the `.flutter-plugins-dependencies` file. In a future change, `flutter assemble` will use the `.flutter-plugins-dependencies` file as an input. Unnecessary writes to this file will invalidate build targets. This updates the logic to only write .flutter-plugins-dependencies if it has "significant" changes. Part of flutter#163874 Next pull request: flutter#165916 ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [x] I signed the [CLA]. - [x] I listed at least one issue that this PR fixes in the description above. - [x] I updated/added relevant documentation (doc comments with `///`). - [x] I added new tests to check the change I am making, or this PR is [test-exempt]. - [x] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [x] All existing and new tests are passing. If you need help, consider asking for advice on the #hackers-new channel on [Discord]. <!-- Links --> [Contributor Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview [Tree Hygiene]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md [test-exempt]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests [Flutter Style Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md [Features we expect every widget to implement]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement [CLA]: https://cla.developers.google.com/ [flutter/tests]: https://github.com/flutter/tests [breaking change policy]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes [Discord]: https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md [Data Driven Fixes]: https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md --------- Co-authored-by: Victoria Ashworth <[email protected]>
The Flutter tool's build system executes targets that take inputs and
produces outputs. Previously, targets would hardcode paths if they
needed to use Flutter project files as inputs/outputs. For example:
```dart
class FooTarget extends Target {
@OverRide
List<Source> get inputs => <Source>[
Source.pattern('{PROJECT_DIR}/foo/bar'),
];
}
```
This is problematic as the
[`FlutterProject`](https://github.com/flutter/flutter/blob/05b5e79105441acb55e98a778ff7854cd191de8c/packages/flutter_tools/lib/src/project.dart#L89)
is the source of truth for where a Flutter project's files are located:
1. If we change a project file's location, we need to update
`FlutterProject` as well as any hardcoded target inputs/outputs.
2. Project files' location can be dynamic. For example, a Flutter app
puts iOS files in the `ios/` directory, but a Flutter module puts iOS
files in the `.ios/` directory. Targets need to duplicate
`FlutterProject`'s logic to determine the project file's location.
As a result, hardcoding project file paths in targets can be
error-prone.
This introduces a new `Source` factory that lets you use the
`FlutterProject` to create the source:
```dart
class FooTarget extends Target {
@OverRide
List<Source> get inputs => <Source>[
Source.fromProject((FlutterProject project) => project.fooFile),
];
}
```
Part of flutter#163874
Next pull request: flutter#165916
## Pre-launch Checklist
- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [x] I signed the [CLA].
- [x] I listed at least one issue that this PR fixes in the description
above.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [x] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [x] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [x] All existing and new tests are passing.
If you need help, consider asking for advice on the #hackers-new channel
on [Discord].
<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
Currently xcode-analyze relies on the native project files already having been generated. This is unreliably locally, and now is problematic on CI as well since Xcode builds now (as of flutter/flutter#165916) must match the last build mode, so analysis will fail if the previous CI step built in release mode (as is currently the case). This adds a config-only build call in debug mode before analyzing. Since running a config-only build is a common operation in the tool, this extracts a helper to abstract the logic. Unblocks the flutter/flutter->flutter/packages roller.
) Manual roll Flutter from 30e53b0 to db68c95 (98 revisions) Manual roll requested by [email protected] flutter/flutter@30e53b0...db68c95 2025-04-15 [email protected] [customer_testing] Pick up the fix for issue found by flutter/dart hh. (flutter/flutter#167212) 2025-04-15 [email protected] Roll Packages from f26b681 to 2fcc403 (4 revisions) (flutter/flutter#167218) 2025-04-15 [email protected] Fix: Update sheet route bottom padding with top padding (flutter/flutter#164473) 2025-04-15 [email protected] Add Irish(ga) to Flutter (flutter/flutter#167129) 2025-04-15 [email protected] Roll Fuchsia Linux SDK from 91RIHvX0YC3wzD7qj... to 7bWzHwIPBTyU6R9nO... (flutter/flutter#167213) 2025-04-15 [email protected] Change saturation calculation for HSLColor.fromColor (flutter/flutter#166639) 2025-04-15 [email protected] fix: Update time picker dialog input size (flutter/flutter#163184) 2025-04-15 [email protected] Clarify how/when `FLUTTER_PREBUILT_ENGINE_VERSION` is passed in Flutter's CI (flutter/flutter#167204) 2025-04-15 [email protected] [ Widget Preview ] Add support for `theme` and `brightness` properties on `Preview` (flutter/flutter#167001) 2025-04-15 [email protected] Update `tests.version` to fix `customer_testing`. (flutter/flutter#167206) 2025-04-15 [email protected] Persistent CupertinoListTile leading and trailing (flutter/flutter#166799) 2025-04-15 [email protected] Add buildroot compatibility for HWASAN. (flutter/flutter#167133) 2025-04-15 [email protected] Correct max height calculation to fade and animate insets on scroll in CupertinoSearchTextField (flutter/flutter#166569) 2025-04-15 [email protected] Clip bottom widgets in nav bar transition (flutter/flutter#166705) 2025-04-14 [email protected] Roll Skia from e7aa93f33a20 to 76cb5d4fba27 (13 revisions) (flutter/flutter#167132) 2025-04-14 [email protected] [fuchsia] Uprev test-scripts with FUCHSIA_READELF env (flutter/flutter#166929) 2025-04-14 [email protected] Cleanup links to flutter/engine in ci/builders docs (flutter/flutter#166916) 2025-04-14 [email protected] Roll Packages from 465bcff to f26b681 (1 revision) (flutter/flutter#167122) 2025-04-14 [email protected] [skwasm] Use `queueMicrotask` instead of `postMessage` when single-threaded (flutter/flutter#166997) 2025-04-14 [email protected] Remove some unused third party library build scripts (flutter/flutter#166960) 2025-04-14 [email protected] [reland] Fix regression in NDK version checking (flutter/flutter#167011) 2025-04-14 [email protected] Add network permissions information to the dart doc of network image. (flutter/flutter#167110) 2025-04-14 [email protected] Include 3.29.3 and 3.29.2 changelog entries to master (flutter/flutter#166994) 2025-04-12 [email protected] [Impeller] various iOS cleanups. (flutter/flutter#166859) 2025-04-11 [email protected] [Impeller] reland: defer vulkan context initialization as long as possible. (flutter/flutter#167000) 2025-04-11 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Fix regression in NDK version checking (#166998)" (flutter/flutter#167007) 2025-04-11 [email protected] Fix regression in NDK version checking (flutter/flutter#166998) 2025-04-11 [email protected] [iOS] Infer autocorrect value from autofillHints (flutter/flutter#165637) 2025-04-11 [email protected] [Impeller] fix vulkan/gl color space decode. (flutter/flutter#166957) 2025-04-11 [email protected] modify toggle mode style with DatePickerTheme (flutter/flutter#164102) 2025-04-11 [email protected] [iOS/macOS] Add Xcode error if dev dependencies are incorrect (flutter/flutter#165916) 2025-04-11 98614782+auto-submit[bot]@users.noreply.github.com Reverts "[Impeller] defer vulkan context initialization as long as possible. (#166941)" (flutter/flutter#166990) 2025-04-11 [email protected] Roll Packages from 431dc61 to 465bcff (2 revisions) (flutter/flutter#166982) 2025-04-11 [email protected] [Impeller] defer vulkan context initialization as long as possible. (flutter/flutter#166941) 2025-04-11 [email protected] Reland "[ Widget Preview ] Add initial support for communications over the Dart Tooling Daemon (DTD) (#166698)" (flutter/flutter#166877) 2025-04-11 [email protected] [native assets] Use workspace pubspec for user-defines (flutter/flutter#166977) 2025-04-11 [email protected] [native assets] Roll dependencies (flutter/flutter#166969) 2025-04-11 [email protected] Roll Skia from 98deb838d3b8 to e7aa93f33a20 (1 revision) (flutter/flutter#166966) 2025-04-11 [email protected] Roll Fuchsia Linux SDK from vYisSsIgqw0mqFRVJ... to 91RIHvX0YC3wzD7qj... (flutter/flutter#166963) 2025-04-11 [email protected] [native assets] Support user-defines in pubspec (flutter/flutter#166940) 2025-04-11 [email protected] [Impeller] correct render pass bariers when resolve has mips. (flutter/flutter#166892) 2025-04-11 [email protected] [Impeller] re-make AHB swapchain lazy and allow usage on < 34 (flutter/flutter#166943) 2025-04-11 [email protected] Reland "SliverEnsureSemantics (#165589)" (flutter/flutter#166889) 2025-04-11 [email protected] Roll Skia from 171b2bf1e496 to 98deb838d3b8 (2 revisions) (flutter/flutter#166955) ...
Currently xcode-analyze relies on the native project files already having been generated. This is unreliably locally, and now is problematic on CI as well since Xcode builds now (as of flutter/flutter#165916) must match the last build mode, so analysis will fail if the previous CI step built in release mode (as is currently the case). This adds a config-only build call in debug mode before analyzing. Since running a config-only build is a common operation in the tool, this extracts a helper to abstract the logic. Unblocks the flutter/flutter->flutter/packages roller.
) Manual roll Flutter from 30e53b0 to db68c95 (98 revisions) Manual roll requested by [email protected] flutter/flutter@30e53b0...db68c95 2025-04-15 [email protected] [customer_testing] Pick up the fix for issue found by flutter/dart hh. (flutter/flutter#167212) 2025-04-15 [email protected] Roll Packages from f26b681 to 2fcc403 (4 revisions) (flutter/flutter#167218) 2025-04-15 [email protected] Fix: Update sheet route bottom padding with top padding (flutter/flutter#164473) 2025-04-15 [email protected] Add Irish(ga) to Flutter (flutter/flutter#167129) 2025-04-15 [email protected] Roll Fuchsia Linux SDK from 91RIHvX0YC3wzD7qj... to 7bWzHwIPBTyU6R9nO... (flutter/flutter#167213) 2025-04-15 [email protected] Change saturation calculation for HSLColor.fromColor (flutter/flutter#166639) 2025-04-15 [email protected] fix: Update time picker dialog input size (flutter/flutter#163184) 2025-04-15 [email protected] Clarify how/when `FLUTTER_PREBUILT_ENGINE_VERSION` is passed in Flutter's CI (flutter/flutter#167204) 2025-04-15 [email protected] [ Widget Preview ] Add support for `theme` and `brightness` properties on `Preview` (flutter/flutter#167001) 2025-04-15 [email protected] Update `tests.version` to fix `customer_testing`. (flutter/flutter#167206) 2025-04-15 [email protected] Persistent CupertinoListTile leading and trailing (flutter/flutter#166799) 2025-04-15 [email protected] Add buildroot compatibility for HWASAN. (flutter/flutter#167133) 2025-04-15 [email protected] Correct max height calculation to fade and animate insets on scroll in CupertinoSearchTextField (flutter/flutter#166569) 2025-04-15 [email protected] Clip bottom widgets in nav bar transition (flutter/flutter#166705) 2025-04-14 [email protected] Roll Skia from e7aa93f33a20 to 76cb5d4fba27 (13 revisions) (flutter/flutter#167132) 2025-04-14 [email protected] [fuchsia] Uprev test-scripts with FUCHSIA_READELF env (flutter/flutter#166929) 2025-04-14 [email protected] Cleanup links to flutter/engine in ci/builders docs (flutter/flutter#166916) 2025-04-14 [email protected] Roll Packages from 465bcff to f26b681 (1 revision) (flutter/flutter#167122) 2025-04-14 [email protected] [skwasm] Use `queueMicrotask` instead of `postMessage` when single-threaded (flutter/flutter#166997) 2025-04-14 [email protected] Remove some unused third party library build scripts (flutter/flutter#166960) 2025-04-14 [email protected] [reland] Fix regression in NDK version checking (flutter/flutter#167011) 2025-04-14 [email protected] Add network permissions information to the dart doc of network image. (flutter/flutter#167110) 2025-04-14 [email protected] Include 3.29.3 and 3.29.2 changelog entries to master (flutter/flutter#166994) 2025-04-12 [email protected] [Impeller] various iOS cleanups. (flutter/flutter#166859) 2025-04-11 [email protected] [Impeller] reland: defer vulkan context initialization as long as possible. (flutter/flutter#167000) 2025-04-11 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Fix regression in NDK version checking (#166998)" (flutter/flutter#167007) 2025-04-11 [email protected] Fix regression in NDK version checking (flutter/flutter#166998) 2025-04-11 [email protected] [iOS] Infer autocorrect value from autofillHints (flutter/flutter#165637) 2025-04-11 [email protected] [Impeller] fix vulkan/gl color space decode. (flutter/flutter#166957) 2025-04-11 [email protected] modify toggle mode style with DatePickerTheme (flutter/flutter#164102) 2025-04-11 [email protected] [iOS/macOS] Add Xcode error if dev dependencies are incorrect (flutter/flutter#165916) 2025-04-11 98614782+auto-submit[bot]@users.noreply.github.com Reverts "[Impeller] defer vulkan context initialization as long as possible. (#166941)" (flutter/flutter#166990) 2025-04-11 [email protected] Roll Packages from 431dc61 to 465bcff (2 revisions) (flutter/flutter#166982) 2025-04-11 [email protected] [Impeller] defer vulkan context initialization as long as possible. (flutter/flutter#166941) 2025-04-11 [email protected] Reland "[ Widget Preview ] Add initial support for communications over the Dart Tooling Daemon (DTD) (#166698)" (flutter/flutter#166877) 2025-04-11 [email protected] [native assets] Use workspace pubspec for user-defines (flutter/flutter#166977) 2025-04-11 [email protected] [native assets] Roll dependencies (flutter/flutter#166969) 2025-04-11 [email protected] Roll Skia from 98deb838d3b8 to e7aa93f33a20 (1 revision) (flutter/flutter#166966) 2025-04-11 [email protected] Roll Fuchsia Linux SDK from vYisSsIgqw0mqFRVJ... to 91RIHvX0YC3wzD7qj... (flutter/flutter#166963) 2025-04-11 [email protected] [native assets] Support user-defines in pubspec (flutter/flutter#166940) 2025-04-11 [email protected] [Impeller] correct render pass bariers when resolve has mips. (flutter/flutter#166892) 2025-04-11 [email protected] [Impeller] re-make AHB swapchain lazy and allow usage on < 34 (flutter/flutter#166943) 2025-04-11 [email protected] Reland "SliverEnsureSemantics (#165589)" (flutter/flutter#166889) 2025-04-11 [email protected] Roll Skia from 171b2bf1e496 to 98deb838d3b8 (2 revisions) (flutter/flutter#166955) ...
…changed (flutter#166164) Currently, `refreshPlugins` always updates the `.flutter-plugins-dependencies` file. In a future change, `flutter assemble` will use the `.flutter-plugins-dependencies` file as an input. Unnecessary writes to this file will invalidate build targets. This updates the logic to only write .flutter-plugins-dependencies if it has "significant" changes. Part of flutter#163874 Next pull request: flutter#165916 ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [x] I signed the [CLA]. - [x] I listed at least one issue that this PR fixes in the description above. - [x] I updated/added relevant documentation (doc comments with `///`). - [x] I added new tests to check the change I am making, or this PR is [test-exempt]. - [x] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [x] All existing and new tests are passing. If you need help, consider asking for advice on the #hackers-new channel on [Discord]. <!-- Links --> [Contributor Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview [Tree Hygiene]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md [test-exempt]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests [Flutter Style Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md [Features we expect every widget to implement]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement [CLA]: https://cla.developers.google.com/ [flutter/tests]: https://github.com/flutter/tests [breaking change policy]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes [Discord]: https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md [Data Driven Fixes]: https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md --------- Co-authored-by: Victoria Ashworth <[email protected]>
The Flutter tool's build system executes targets that take inputs and
produces outputs. Previously, targets would hardcode paths if they
needed to use Flutter project files as inputs/outputs. For example:
```dart
class FooTarget extends Target {
@OverRide
List<Source> get inputs => <Source>[
Source.pattern('{PROJECT_DIR}/foo/bar'),
];
}
```
This is problematic as the
[`FlutterProject`](https://github.com/flutter/flutter/blob/05b5e79105441acb55e98a778ff7854cd191de8c/packages/flutter_tools/lib/src/project.dart#L89)
is the source of truth for where a Flutter project's files are located:
1. If we change a project file's location, we need to update
`FlutterProject` as well as any hardcoded target inputs/outputs.
2. Project files' location can be dynamic. For example, a Flutter app
puts iOS files in the `ios/` directory, but a Flutter module puts iOS
files in the `.ios/` directory. Targets need to duplicate
`FlutterProject`'s logic to determine the project file's location.
As a result, hardcoding project file paths in targets can be
error-prone.
This introduces a new `Source` factory that lets you use the
`FlutterProject` to create the source:
```dart
class FooTarget extends Target {
@OverRide
List<Source> get inputs => <Source>[
Source.fromProject((FlutterProject project) => project.fooFile),
];
}
```
Part of flutter#163874
Next pull request: flutter#165916
## Pre-launch Checklist
- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [x] I signed the [CLA].
- [x] I listed at least one issue that this PR fixes in the description
above.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [x] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [x] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [x] All existing and new tests are passing.
If you need help, consider asking for advice on the #hackers-new channel
on [Discord].
<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
…r#165916) Recently, the Flutter tool was updated to remove dev dependencies for release builds and add dev dependencies for debug/profile builds. However when building from Xcode directly, dev dependencies are not enabled/disabled. As a result, it was possible for debug builds to not have dev dependencies (or vice versa). Example: 1. `flutter build ios --release` - Release build using Flutter tool. Disables dev dependencies 2. `open ios/Runner.xcworkspace` - Open the iOS project in Xcode 3. In Xcode, **Product** > **Build** - Do a debug build Previously, step 3 would result in debug artifacts that are missing dev dependencies. This PR now makes this an error:  Part of flutter#163874 ## Implementation The Flutter tool now writes a `FLUTTER_DEV_DEPENDENCIES_ENABLED` in the generated config file. This tracks whether the currently generated project has dev dependencies. In the Xcode build: 1. The Xcode backend script passes the `FLUTTER_DEV_DEPENDENCIES_ENABLED` config to `flutter assemble` using the `DevDependenciesEnabled` define 6. The new `CheckDevDependencies` target verifies dev dependencies: 1. It checks if the dev dependencies status is correct for the current build mode 2. It checks whether the app has dev dependencies by reading the `.flutter-plugins-dependencies` file. If the app has no dev dependencies, the error is suppressed. ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [x] I signed the [CLA]. - [x] I listed at least one issue that this PR fixes in the description above. - [x] I updated/added relevant documentation (doc comments with `///`). - [x] I added new tests to check the change I am making, or this PR is [test-exempt]. - [x] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [x] All existing and new tests are passing. If you need help, consider asking for advice on the #hackers-new channel on [Discord]. <!-- Links --> [Contributor Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview [Tree Hygiene]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md [test-exempt]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests [Flutter Style Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md [Features we expect every widget to implement]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement [CLA]: https://cla.developers.google.com/ [flutter/tests]: https://github.com/flutter/tests [breaking change policy]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes [Discord]: https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md [Data Driven Fixes]: https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
Recently, the Flutter tool was updated to remove dev dependencies for release builds and add dev dependencies for debug/profile builds.
However when building from Xcode directly, dev dependencies are not enabled/disabled. As a result, it was possible for debug builds to not have dev dependencies (or vice versa). Example:
flutter build ios --release- Release build using Flutter tool. Disables dev dependenciesopen ios/Runner.xcworkspace- Open the iOS project in XcodePreviously, step 3 would result in debug artifacts that are missing dev dependencies. This PR now makes this an error:
Part of #163874
Implementation
The Flutter tool now writes a
FLUTTER_DEV_DEPENDENCIES_ENABLEDin the generated config file. This tracks whether the currently generated project has dev dependencies.In the Xcode build:
FLUTTER_DEV_DEPENDENCIES_ENABLEDconfig toflutter assembleusing theDevDependenciesEnableddefineCheckDevDependenciestarget verifies dev dependencies:.flutter-plugins-dependenciesfile. If the app has no dev dependencies, the error is suppressed.Pre-launch Checklist
///).If you need help, consider asking for advice on the #hackers-new channel on Discord.