-
Notifications
You must be signed in to change notification settings - Fork 28.9k
Open
Release mode
iOS
apps should use .flutter-plugins-dependencies
to omit dev-dependency plugins#163874Task
0 / 20 of 2 issues completed
Copy link
Labels
P2Important issues not at the top of the work listImportant issues not at the top of the work listc: new featureNothing broken; request for a new capabilityNothing broken; request for a new capabilityteam-iosOwned by iOS platform teamOwned by iOS platform teamtriaged-iosTriaged by iOS platform teamTriaged by iOS platform team
Description
As of #160257, #56591 is implemented, and it's possible for the application build process for every platform, including iOS, to conditionally omit bundling (and building) plugins that are sole used for testing and debugging.
flutter/packages/flutter_tools/lib/src/plugins.dart
Lines 432 to 440 in 911aa75
//github.com/ Whether this plugin is exclusively used as a dev dependency of the app. | |
//github.com/ | |
//github.com/ If [false], the plugin is either: | |
//github.com/ - _Not_ a dev dependency | |
//github.com/ - _Not_ a dev dependency of some dependency that itself is not a dev | |
//github.com/ dependency | |
//github.com/ | |
//github.com/ Dev dependencies are intended to be stripped out in release builds. | |
final bool isDevDependency; |
This feature was implemented e2e for Android (which loads .flutter-plugins-dependencies
into flutter.gradle
), but I'm not sure what the best approach is for iOS, so filing this issue for the team to track implementation. If there is something I can do to help (explain, pair, take on minor coding tasks), please reach out.
The `.flutter-plugins-dependencies` file, at HEAD (with `flutter config --explicit-package-dependencies` enabled)
# Example from integration_test/example/.flutter-plugins-dependencies
{
"info": "This is a generated file; do not edit or check into version control.",
"plugins": {
"ios": [
{
"name": "integration_test",
"path": "/Users/matanl/Developer/flutter/packages/integration_test/",
"native_build": true,
"dependencies": [],
"dev_dependency": true
}
],
"android": [
{
"name": "integration_test",
"path": "/Users/matanl/Developer/flutter/packages/integration_test/",
"native_build": true,
"dependencies": [],
"dev_dependency": true
}
],
"macos": [
{
"name": "integration_test_macos",
"path": "/Users/matanl/Developer/flutter/packages/integration_test/integration_test_macos/",
"native_build": true,
"dependencies": [],
"dev_dependency": true
}
],
"linux": [],
"windows": [],
"web": []
},
"dependencyGraph": [
{
"name": "integration_test",
"dependencies": []
},
{
"name": "integration_test_macos",
"dependencies": []
}
],
"date_created": "2025-02-13 08:46:27.610077",
"version": "3.30.0-1.0.pre.167",
"swift_package_manager_enabled": {
"ios": false,
"macos": false
}
}
lishaduck and Pedro-e
Sub-issues
Metadata
Metadata
Assignees
Labels
P2Important issues not at the top of the work listImportant issues not at the top of the work listc: new featureNothing broken; request for a new capabilityNothing broken; request for a new capabilityteam-iosOwned by iOS platform teamOwned by iOS platform teamtriaged-iosTriaged by iOS platform teamTriaged by iOS platform team