The second review for SE-0272: Package Manager Binary Dependencies ran from December 13th through December 20th, 2019. You can find the review thread here .
Feedback was sparse, but we had generally positive feedback during the first round of review. Therefore the proposal has been accepted with modifications, local binary targets will not be able to reference zipped artifacts.
Thank you to everyone who participated in the review!
It mostly landed in the master branch over multiple pull requests in last weeks. It's only missing diagnostics when using them from other platforms than macOS.
I agree with this. Tracking SPM properly is currently very difficult. It would be great to see the changes per version and better understand when things are released.
Please correct us if we’re missing something we should be seeing.
In terms of when things are officially released, I think proposals are updated to indicate when they are implemented and in which version they are available.
There are all implemented, but only SE-0226 is in an announced Swift version (5.2). I'll make sure that proposal is updated. The other proposals are implemented in master and will appear in the major Swift version after 5.2, although that version hasn't be announced yet.
Great news all around! SPM will become the default dependency manager for Apple platforms with Swift 5.3. Monumental! Congratulations to @hartbit and the rest of the team for making it happen.
Binary dependencies is a fantastic feature!
Is there a way to specify system dependencies for static frameworks? I.e. I have a static framework(inside an xcframework) I want to make an SPM package and it has some dependencies like CoreLocation.framework and libsqlite3.dylib.
Thanks for the answer. Actually, I had tried this but with no success. It seems that linker settings only applied to that dummy sources. I've just tried to play with linker settings one more time and still no results. And also I don't see libraries and frameworks in Xcode's build log so maybe I do something wrong.
Another problem is that the framework I try to wrap in a package is ObjC one with some categories that don't work without -ObjC in linker flags. The only way I can set this flag is .unsafeFlags() but this option produce an error during import in Xcode project.
Binary dependencies is a great feature and will hopefully allow me to add SwiftPM packages for several SDKs. However, I have a couple challenges:
It isn't possible to reference an XCFramework other than at the root of a zip. This means we have to upload multiple zips for different variations of the SDK (static, dynamic)
There is no way to provide credentials for HTTP authentication. Cocapods uses .netrc.