Skip to content

Rename FlutterMacOS.framework to Flutter.framework #70413

Open
@jmagman

Description

@jmagman

Pros:

  1. "MacOS" isn't as meaningful with Catalyst, universal apps, etc. Really, for Flutter it means "links on AppKit".
  2. iOS Flutter.framework will soon be distributed as an XCFramework to support ARM iOS simulators. XCFrameworks can encode slices for any darwin platform (ios, macos, catalyst, etc). Future watchOS, tvOS, and Catalyst support could be added to the same XCFramework.
  3. Flutter.framework and FlutterMacOS.framework currently share common .h and .m files. The different names mean that Fix all "Double-quoted include in framework header, expected angle-bracketed instead" warnings #60025 (comment) cannot be easily fixed.
  4. This matches Apple's own conventions. For example, the CloudKit framework is named the same on every platform--there is no CloudKitWatch framework.

Cons:
The tool will no longer download macOS desktop engine artifacts separately. This will increase the artifact cache size for iOS developers who are not building macOS apps, and vice versa. This will not impact app size.

Work:

  1. Engine files need to be updated to import and build a macOS Flutter.framework variant.
  2. Adopt XCFramework
  3. Move the linking and embedding logic out of the Xcode project and into the tool
  4. Tool caching logic needs to be updated to download the common engine artifacts.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Important issues not at the top of the work lista: desktopRunning on desktopengineflutter/engine repository. See also e: labels.platform-iosiOS applications specificallyplatform-macBuilding on or for macOS specificallyteam-engineOwned by Engine teamtoolAffects the "flutter" command-line tool. See also t: labels.triaged-engineTriaged by Engine team

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions