Can we create a custom framework using Swift package Manager?

Hi Everyone,
Can I create a custom framework using Swift Package Manager?, I don't want to share my code, I want create an SDK and share it for others to use?. Is it possible to create one? If so, can you please guild me through?

2 Likes

Do you want to make an Xcode Framework? If so, the package manager doesn't build frameworks like that directly. You will will want to use the command: swift package generate-xcodeproj and customize the generated YourProjectName.xcodeproj. You can also supply an xcconfig file that overrides settings for Xcode though I haven't used it and don't remember its name...

1 Like

You can specify that a product should be type: .dynamic. Then you will get a .dylib when you build it. swift build --show-bin-path --configuration release will tell you where to find the resulting library.

Thank you so much @Braden_Scothern and @SDGGiesbrecht, Let me explain what I want clearly, I have a static library which is .a file, built using cpp and I have one swift file and obj-c files, I want to wrap these files as a single framework file. I'm sharing the .framework file. but my client want to integrate this with SPM. How can I do it? I don't want to share my code. As am new to SPM, please explain in details.

Ah closed source, that isn’t possible at the moment with SwiftPM. You will need a xcode project and likely want to give them a xcframework.

I would use the generate-xcodeproj sub command. Then edit it to build as an xcframework. Check out this WWDC session to learn how to make a xcframework: Binary Frameworks in Swift - WWDC19 - Videos - Apple Developer

Thank you very much @Braden_Scothern.