8000 Distribute engine as Flutter.xcframework · Issue #60109 · flutter/flutter · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Distribute engine as Flutter.xcframework #60109

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
3 tasks done
jmagman opened this issue Jun 23, 2020 · 5 comments · Fixed by #71495
Closed
3 tasks done

Distribute engine as Flutter.xcframework #60109

jmagman opened this issue Jun 23, 2020 · 5 comments · Fixed by #71495
Labels
c: new feature Nothing broken; request for a new capability c: proposal A detailed proposal for a change to Flutter engine flutter/engine repository. See also e: labels. P3 Issues that are less important to the Flutter project t: xcode "xcodebuild" on iOS and general Xcode project management tool Affects the "flutter" command-line tool. See also t: labels.

Comments

@jmagman
Copy link
Member
jmagman commented Jun 23, 2020

Xcode 11 (minimum required version in Flutter) introduced the .xcframework for distributing frameworks for multiple platforms and architectures. At build time, the correct version of the framework is linked on. An XCFramework is already being used for add-to-app with the flutter build ios-framework --xcframework flag.

As Apple is increasing the number of architectures available for each platform (Catalyst as iOS apps on macOS, arm64 macOS) having one bundle containing all available architectures would reduce logic for the tool. Particularly, no more re-copying the framework into the project when platforms architecture changes (still needs to be done per build mode), and no more lipo to remove unused architectures.

As an additional bonus, Flutter.xcframework can be distributed as a Swift Package as of Xcode 12. See #33850 (comment)

With #51453 iOS linking and embedding logic has moved into the tool, so there won't be migration needed for existing projects.

  • Update LUCI recipes to create a Flutter.xcframework instead of a Flutter.framework. Still need them separated for Debug, Profile, and Release.
  • Flutter.podspec would need to change to s.vendored_frameworks = 'Flutter.xcframework'
  • Minimum required CocoaPods version in the tool would become 1.9 to handle that vendored xcframework. Update CocoaPods minimum version to 1.9 #71170
@jmagman
Copy link
Member Author
jmagman commented Jun 23, 2020

See also #36204 for App.xcframework (not dependencies, this work can be done while still generating App.framework).

#56581 is a dependency to do the same trick for FlutterMacOS.xcframework

@jmagman jmagman added engine flutter/engine repository. See also e: labels. t: xcode "xcodebuild" on iOS and general Xcode project management tool Affects the "flutter" command-line tool. See also t: labels. labels Jun 23, 2020
@ivnsch

This comment has been minimized.

@stuartmorgan-g

This comment has been minimized.

@github-actions
Copy link
github-actions bot commented Aug 9, 2021

This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of flutter doctor -v and a minimal reproduction of the issue.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Aug 9, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
c: new feature Nothing broken; request for a new capability c: proposal A detailed proposal for a change to Flutter engine flutter/engine repository. See also e: labels. P3 Issues that are less important to the Flutter project t: xcode "xcodebuild" on iOS and general Xcode project management tool Affects the "flutter" command-line tool. See also t: labels.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants
0