-
Notifications
You must be signed in to change notification settings - Fork 28.9k
Open
Labels
P2Important issues not at the top of the work listImportant issues not at the top of the work lista: desktopRunning on desktopRunning on desktopengineflutter/engine repository. See also e: labels.flutter/engine repository. See also e: labels.platform-iosiOS applications specificallyiOS applications specificallyplatform-macBuilding on or for macOS specificallyBuilding on or for macOS specificallyteam-engineOwned by Engine teamOwned by Engine teamtoolAffects the "flutter" command-line tool. See also t: labels.Affects the "flutter" command-line tool. See also t: labels.triaged-engineTriaged by Engine teamTriaged by Engine team
Description
Pros:
- "MacOS" isn't as meaningful with Catalyst, universal apps, etc. Really, for Flutter it means "links on AppKit".
- 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.
- 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.
- 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:
- Engine files need to be updated to import and build a macOS Flutter.framework variant.
- Adopt XCFramework
- Move the linking and embedding logic out of the Xcode project and into the tool
- Tool caching logic needs to be updated to download the common engine artifacts.
cbenhagen
Metadata
Metadata
Assignees
Labels
P2Important issues not at the top of the work listImportant issues not at the top of the work lista: desktopRunning on desktopRunning on desktopengineflutter/engine repository. See also e: labels.flutter/engine repository. See also e: labels.platform-iosiOS applications specificallyiOS applications specificallyplatform-macBuilding on or for macOS specificallyBuilding on or for macOS specificallyteam-engineOwned by Engine teamOwned by Engine teamtoolAffects the "flutter" command-line tool. See also t: labels.Affects the "flutter" command-line tool. See also t: labels.triaged-engineTriaged by Engine teamTriaged by Engine team