Content-Length: 330127 | pFad | https://github.com/flutter/flutter/issues/163874

B1 Release mode `iOS` apps should use `.flutter-plugins-dependencies` to omit dev-dependency plugins · Issue #163874 · flutter/flutter · GitHub
Skip to content

Release mode iOS apps should use .flutter-plugins-dependencies to omit dev-dependency plugins #163874

@matanlurey

Description

@matanlurey

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.

//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
  }
}

Sub-issues

Metadata

Metadata

Assignees

Labels

P2Important issues not at the top of the work listc: new featureNothing broken; request for a new capabilityteam-iosOwned by iOS platform teamtriaged-iosTriaged by iOS platform team

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions









    ApplySandwichStrip

    pFad - (p)hone/(F)rame/(a)nonymizer/(d)eclutterfier!      Saves Data!


    --- a PPN by Garber Painting Akron. With Image Size Reduction included!

    Fetched URL: https://github.com/flutter/flutter/issues/163874

    Alternative Proxies:

    Alternative Proxy

    pFad Proxy

    pFad v3 Proxy

    pFad v4 Proxy