-
Notifications
You must be signed in to change notification settings - Fork 32
Open
Labels
enhancementNew feature or requestNew feature or requesthelp wantedExtra attention is neededExtra attention is needed
Milestone
Description
It would be great if the repository contained a Package.swift
manifest to allow using objectbox-swift as a dependency with Swift Package Manager.
With Xcode 11, Swift Packages can be added and managed very easily directly in the GUI and without any external requirements (e.g. CocoaPods).
zicjin, ankitgogia, gunterhager, JuanFcoMiranda, GottaGetSwifty and 3 more
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or requesthelp wantedExtra attention is neededExtra attention is needed
Type
Projects
Milestone
Relationships
Development
Select code repository
Activity
uli-objectbox commentedon Sep 26, 2019
We're keeping an eye on SPM, but there are a few features missing in it currently to work for ObjectBox.
uli-objectbox commentedon Sep 26, 2019
To be clearer: SwiftPM currently does not support including an already-built library, nor a helper executable like our code generator.
greenrobot commentedon Sep 26, 2019
There is a proposal here:
https://forums.swift.org/t/pitch-support-for-binary-dependencies/27620/90
If you find a better way of "tracking" Apple's progress for this, please post here.
Can we work around those limitations some how? E.g. have the Swift code packaged with SPM, and have a hook somewhere to provide the non-Swift parts?
andreasley commentedon Nov 15, 2019
There is now an official proposal for binary dependencies:
https://github.com/apple/swift-evolution/blob/master/proposals/0272-swiftpm-binary-dependencies.md
Review (currently running):
https://forums.swift.org/t/se-0272-package-manager-binary-dependencies/30753
fishcharlie commentedon Apr 16, 2020
This will be implemented into Swift 5.3. Hopefully objectbox will be able to implement it shortly after.
PS @greenrobot Check out https://apps.apple.com/us/app/evolution-app/id1210898168.
greenrobot commentedon Jun 30, 2020
This small WWDC 2020 video "Distribute binary frameworks as Swift packages" might be helpful:
https://developer.apple.com/videos/play/wwdc2020/10147
greenrobot commentedon Jun 30, 2020
I guess setting up an XCFramework and enabling .swiftinterface would be a prerequisite. Would be also useful to Carthage; see Carthage/Carthage#2887 (comment).
ratranqu commentedon Jul 1, 2020
Hi all,
@paulofaria and I have been looking at this, and we are able to build and use the ObjectBox framework using spm on MacOS Catalina using the 5.2 toolchain. To do so, we've reorganised the repo to better match the standard spm project structure, and would like to discuss how we can merge the main repo and our fork going forward. Below, you can find the result of our work:
https://github.com/katalysis-io/objectbox-swift (spm version ported to 1.3.1)
https://github.com/katalysis-io/objectbox-spm-test (simple cli binary linking to objectbox using spm to manage dependencies)
We still have issues compiling on Linux due to the presence of Foundation in the ObjectiveC/C++ wrappers around the ObjectBox C lib to catch exceptions.
greenrobot commentedon Jul 1, 2020
@ratranqu Cool. Thanks for pushing this!
Seems like we have 3 topics here:
Reorganizing the repo is not trivial for us, as there are some interdependent things at our end internally. But let's see what we can do over time...
I'd like to understand better the
swift build
approach vs. XCFrameworks. Iirc, XCFrameworks only works on Apple platforms, but not on Linux? XCFrameworks still seems to be the way to go for Apple ecosystem.Not sure if those ObjectiveC/C++ wrappers are still required... Could you open a new issue with some details?
greenrobot commentedon Jul 1, 2020
We've been experimenting with XCFramework a little bit.
You can download it here if you want to play around with it:
https://github.com/objectbox/objectbox-swift/releases/download/v1.3.1/ObjectBox.xcframework.zip
Related commit with the script building the xcframework: 25222a5
While the framework is one of the pieces, we also have to get the ObjectBox Swift code generator working. Not sure if Swift Package Manager can help with that...
greenrobot commentedon Jul 10, 2020
@ratranqu (off-topic) old error handling code was removed in ced59de - for any ObjC/NS leftovers, please raise an issues.
rogerluan commentedon Nov 15, 2020
Any updates regarding adding support to SPM? As of Swift 5.3, SPM supports embeded binaries if needed 🙏
27 remaining items