Skip to content
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

Distribute macOS engine as an xcframework #126016

Open
4 of 5 tasks
Tracked by #126005
vashworth opened this issue May 3, 2023 · 3 comments
Open
4 of 5 tasks
Tracked by #126005

Distribute macOS engine as an xcframework #126016

vashworth opened this issue May 3, 2023 · 3 comments
Assignees
Labels
engine flutter/engine repository. See also e: labels. P2 Important issues not at the top of the work list platform-ios iOS applications specifically platform-mac Building on or for macOS specifically team-ios Owned by iOS platform team triaged-ios Triaged by iOS platform team

Comments

@vashworth
Copy link
Contributor

vashworth commented May 3, 2023

For Swift Package Manager to work with macOS, the macOS engine artifact needs to be an xcframework.

  • [engine] Create FlutterMacOS.xcframework and archive it: Build macOS engine as an xcframework engine#50300
  • [tool] Replace usage of FlutterMacOS.framework artifact with new FlutterMacOS.xcframework artifact
  • [tool] Stop building the xcframework on flutter build macos-framework and instead use the one in the artifact cache: Add FlutterMacOS.xcframework artifact #143244
  • [engine] Remove FlutterMacOS.framework archive
    • Before the old FlutterMacOS.framework can be removed, we'll need to let the Flutter release team know so they can update their roll scripts, and coordinate with the Fl@G team to make sure build rules are updated, if needed.

Example of when it was done for iOS: #60109

@vashworth vashworth self-assigned this May 3, 2023
@vashworth vashworth added platform-ios iOS applications specifically platform-mac Building on or for macOS specifically labels May 3, 2023
@jmagman
Copy link
Member

jmagman commented May 3, 2023

Some iOS work that would need to be done to work with macOS:

cc @christopherfujino

Related #70413

@stuartmorgan
Copy link
Contributor

As long as we are reworking this script, changing artifacts, etc. it would be great if we could combine it with #70413, creating the structure described here

@stuartmorgan stuartmorgan added engine flutter/engine repository. See also e: labels. P1 High-priority issues at the top of the work list labels May 8, 2023
auto-submit bot pushed a commit that referenced this issue May 16, 2023
Instead of using rsync, which has caused errors in the past (#99785), delete the file/directory/link prior to moving it.

Hopefully should let us stop double zipping the FlutterMacOS.framework in the engine: https://github.com/flutter/engine/pull/41306/files

Part of #126016.
CaseyHillers pushed a commit to CaseyHillers/flutter that referenced this issue May 24, 2023
Instead of using rsync, which has caused errors in the past (flutter#99785), delete the file/directory/link prior to moving it.

Hopefully should let us stop double zipping the FlutterMacOS.framework in the engine: https://github.com/flutter/engine/pull/41306/files

Part of flutter#126016.
@flutter-triage-bot flutter-triage-bot bot added multiteam-retriage-candidate team-ios Owned by iOS platform team triaged-ios Triaged by iOS platform team labels Jul 8, 2023
@vashworth vashworth added P2 Important issues not at the top of the work list and removed P1 High-priority issues at the top of the work list labels Dec 19, 2023
@jmagman
Copy link
Member

jmagman commented Feb 12, 2024

Also before the old FlutterMacOS.framework can be removed, we'll need to let the Flutter release team know so they can update their roll scripts, and coordinate with the Fl@G team to make sure build rules are updated, if needed.

auto-submit bot pushed a commit to flutter/engine that referenced this issue Feb 22, 2024
Creates and adds FlutterMacOS.xcframework to out/mac or out/host.

Creates and archives FlutterMacOS.xcframework when building mac_host_engine. Archives the xcframework in a new zipped folder at `darwin-x64/framework.zip`, `darwin-x64-profile/framework.zip`, `darwin-x64-release/framework.zip`.

The FlutterMacOS.framework is also still archived currently - I thought it'd be better to keep it archived so we don't have to worry about the tool breaking until we're ready to remove it.

Part of flutter/flutter#126016.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
auto-submit bot pushed a commit that referenced this issue Feb 27, 2024
Replace `FlutterMacOS.framework` cached artifact with `FlutterMacOS.xcframework`. Also, update usage of `FlutterMacOS.framework` to use `FlutterMacOS.xcframework`.

Part of #126016.
auto-submit bot added a commit that referenced this issue Feb 27, 2024
Reverts #143244

Initiated by: vashworth

Reason for reverting: Increased `flutter_framework_uncompressed_bytes` - see #144251

Original PR Author: vashworth

Reviewed By: {jmagman}

This change reverts the following previous change:
Original Description:
Replace `FlutterMacOS.framework` cached artifact with `FlutterMacOS.xcframework`. Also, update usage of `FlutterMacOS.framework` to use `FlutterMacOS.xcframework`.

Part of #126016.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
engine flutter/engine repository. See also e: labels. P2 Important issues not at the top of the work list platform-ios iOS applications specifically platform-mac Building on or for macOS specifically team-ios Owned by iOS platform team triaged-ios Triaged by iOS platform team
Projects
None yet
Development

No branches or pull requests

4 participants