4.6 C
New York
Friday, November 29, 2024

Importing Internet-based SwiftPM packages to your Xcode Playground — Erica Sadun


I’ve been kicking the wheels on Xcode 12 and its potential to make use of frameworks and packages with playgrounds. Up till now, I’ve solely been capable of import packages which are both downloaded or developed regionally on my residence system. Nevertheless, plenty of the packages I need to work with are hosted from GitHub.

I made a decision to observe a hunch and see if I may import my dependency by means of a neighborhood Forwarding package deal after which use that code. Lengthy story brief: I may.

Right here’s my playground, efficiently operating.

The RuntimeImplementation is asserted in a GitHub-hosted package deal known as Swift-Common-Utility:

What I did to make this work was that I created what I known as a Forwarding Utility, whose sole job is to create a shell package deal that depends upon the distant package deal and forwards it to the playground. It seems to be like this. It’s a single file known as “Forwarding.swift” (no, the title is under no circumstances magic.) in Sources/. I exploit @_exported to ahead the import.

/*
 
 Use this to ahead web-based dependencies to Swift Pkg
 
 */

@_exported import GeneralUtility

Its Bundle.swift installs the dependency:

    dependencies: [ .package(url: "https://github.com/erica/Swift-General-Utility", .exact("0.0.4")), ],
    targets: [
        .target(
            name: "ForwardingUtility",
            dependencies: [ .product(name: "GeneralUtility"), ],
            path: "Sources/"
        ),
    ],

And that’s just about all that there’s to it, aside from (as I discussed in my different put up about how you can use SwiftPM packages in playground workspaces) that you might have to give up and re-open the primary beta earlier than you possibly can import the forwarding.

Let me know something that I tousled. But additionally let me know if this was useful to you!

Related Articles

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Latest Articles