Xcode SwiftPM UI import/add remote SwiftPM format lib

Hi everyone,

I’m using a secured JFrog Artifactory instance that hosts .zip archives containing Swift packages in source code format (i.e. with Package.swift and Sources/ folders).

The current workflow requires users to manually download and unpack the .zip file locally, then add it via Xcode’s SPM UI as a local package. Unfortunately, I'm unable to distribute an .xcframework, and JFrog does not support classic Git repositories.

I am aware about open git repo -> targetbinary xcframework solution. (I not able compile lib to xcframework)
Also I setuped swift registry repo and publish my zip lib but Consumers can not use it via xcode UI SPM tool.

Is there any way to let users consume this Swift package directly from the remote .zip source archive. Just provide opportunity to import remote lib by creds,
without requiring manual download and extraction? Ideally, I’d like to allow developers to add the package via Xcode UI or Package.swift from a remote location secured by credentials.

Thanks in advance!

WAS RESOLVED : Xcode SwiftPM UI import/add remote SwiftPM format lib - #4 by Dmitriy1984

Have you checked out swift-package-manager/Documentation/PackageRegistry/PackageRegistryUsage.md at main · swiftlang/swift-package-manager · GitHub ? Seems to be exactly your usecase.

1 Like

Also this thread might be helpful as Jfrog can expose the stored artifacts as package registry.

Disclaimer. I only played around with this many month ago and have not used it more than that.

1 Like

Main issue here was as often unknown issues of Xcode and Ui apple tools. Xcode does not discovered my own swift registry but it was registered in Os's user, I've double checked it. We reproduced this issue again on laptop of my teammate.

But after some restarts and time it start works, xcode ask user to add creds to keychain and then will be able to find repo by "scope.name".
I sure it works -> importing remote private dependencies (swift registry repo) via Xcode Ui SPM client tool.

Thanks you guys!