Open
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.