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

Support .xcframework dependency type #401

Closed
3 tasks done
kwridan opened this issue Jun 8, 2019 · 7 comments
Closed
3 tasks done

Support .xcframework dependency type #401

kwridan opened this issue Jun 8, 2019 · 7 comments
Assignees
Labels
type:enhancement New feature or request

Comments

@kwridan
Copy link
Collaborator

kwridan commented Jun 8, 2019

Is your feature request related to a problem? Please describe.

.xcframeworks are the new binary frameworks supported by Xcode 11.

Describe the solution you'd like

A few options:

  1. Add a new .xcframework dependency type

e.g.

    Target(
            name: "App",
            platform: .iOS,
            product: .app,
            bundleId: "io.tuist.App",
            infoPlist: "Config/App-Info.plist",
            sources: "Sources/**",
            dependencies: [
                .project(target: "Framework1", path: "../Framework1"),
                .xcframework(path: "Frameworks/MyFramework.xcframework")
            ]
        )
  1. Enhance the existing .framework type

The existing .framework dependency type could be enhanced to to detect the framework extension and apply the appropriate rules (e.g. if it's an .xcframework, simply include it in the appropriate phases without needing to call tuist embed for it)

Additional context

Starting an issue for us to collect what's needed to support this feature. This will help us decide on which option to pursue.

Status

@kwridan kwridan added the type:enhancement New feature or request label Jun 8, 2019
@kwridan kwridan added this to the Xcode 11 Support milestone Jun 8, 2019
@pepicrft
Copy link
Contributor

pepicrft commented Jun 9, 2019

Like the suggested approach @kwridan. So .xcframeworks don't need to be embedded?

@kwridan
Copy link
Collaborator Author

kwridan commented Jun 9, 2019

Still figuring out the details - from my limited testing, looks like Xcode will take care of the embed for you provided it's in the correct build phase (i.e. we wouldn't need to call tuist embed to manually copy / sign frameworks - like we need to for the ones built by Carthage)

Screenshot 2019-06-09 at 20 26 39

Screenshot 2019-06-09 at 20 56 51

@pepicrft
Copy link
Contributor

pepicrft commented Jun 9, 2019

Awesome! That simplifies the things a bit.

@lakpa
Copy link
Contributor

lakpa commented Nov 13, 2019

I am running a thought as if taking @kwridan first approach would be better as xcframework has new Bundle OS Type code which is XFWK and representing it with its new dependency type appears suitable enough to avoid messing with existing framework dependency type. Besides its configuration info.plist is different than static/dynamic framework types which as follows

Screenshot 2019-11-13 at 23 48 35

Any feedback @kwridan @pepibumur?

@pepicrft
Copy link
Contributor

I am running a thought as if taking @kwridan first approach would be better as xcframework has new Bundle OS Type code which is XFWK and representing it with its new dependency type appears suitable enough to avoid messing with existing framework dependency type.

Agree. I'd define a new dependency type instead of messing the existing .framework.

@lakpa
Copy link
Contributor

lakpa commented Dec 23, 2019

@kwridan can we close this?

@pepicrft pepicrft removed this from the Xcode 11 Support milestone Dec 28, 2019
@kwridan
Copy link
Collaborator Author

kwridan commented Jan 6, 2020

Indeed we can, thanks for all your hard work on this @lakpa 👍

@kwridan kwridan closed this as completed Jan 6, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type:enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants