mirror of
https://github.com/flutter/flutter.git
synced 2026-02-16 07:42:10 +08:00
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 https://github.com/flutter/flutter/issues/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
This directory contains tools and resources that the Flutter team uses during the development of the framework. The tools in this directory should not be necessary for developing Flutter applications, though of course, they may be interesting if you are curious.
The tests in this directory are run in the framework_tests_misc-*
shards.