Sunday, April 19, 2026
HomeiOS DevelopmentImporting Internet-based SwiftPM packages to your Xcode Playground — Erica Sadun

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

[ad_1]

I’ve been kicking the wheels on Xcode 12 and its skill to make use of frameworks and packages with playgrounds. Up till now, I’ve solely been in a position to import packages which can be both downloaded or developed regionally on my residence system. Nonetheless, lots 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 via an area Forwarding bundle after which use that code. Lengthy story brief: I may.

Right here’s my playground, efficiently operating.

The RuntimeImplementation is said in a GitHub-hosted bundle referred to as Swift-Common-Utility:

What I did to make this work was that I created what I referred to as a Forwarding Utility, whose sole job is to create a shell bundle that depends upon the distant bundle and forwards it to the playground. It seems to be like this. It’s a single file referred to as “Forwarding.swift” (no, the identify is by no means 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 submit about use SwiftPM packages in playground workspaces) that you might have to give up and re-open the primary beta earlier than you may import the forwarding.

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

[ad_2]

RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Most Popular

Recent Comments