From dbc35863b22d97abe38511a711dda9f330a5abf8 Mon Sep 17 00:00:00 2001 From: Jason Date: Thu, 29 May 2025 14:21:31 +0200 Subject: [PATCH] feat: swift package manager support --- Package.swift | 35 +++++++++++++++++++++++++++++++++++ build_ios.sh | 13 ++++++++++++- 2 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 Package.swift diff --git a/Package.swift b/Package.swift new file mode 100644 index 0000000..dfdd18f --- /dev/null +++ b/Package.swift @@ -0,0 +1,35 @@ +// swift-tools-version:5.5 +// The swift-tools-version declares the minimum version of Swift required to build this package. + +import PackageDescription + +let tag = "v0.1.0" +let checksum = "fd9eb84a478402af8f790519a463b6e1bf6ab3987f5951cd8375afb9d39e7a4b" +let url = "https://github.com/synonymdev/bitkit-core/releases/download/\(tag)/BitkitCore.xcframework.zip" + +let package = Package( + name: "bitkitcore", + platforms: [ + .iOS(.v15), + .macOS(.v12), + ], + products: [ + // Products define the executables and libraries a package produces, and make them visible to other packages. + .library( + name: "BitkitCore", + targets: ["BitkitCoreFFI", "BitkitCore"]), + ], + targets: [ + .target( + name: "BitkitCore", + dependencies: ["BitkitCoreFFI"], + path: "./bindings/ios", + sources: ["bitkitcore.swift"] + ), + .binaryTarget( + name: "BitkitCoreFFI", + url: url, + checksum: checksum + ) + ] +) \ No newline at end of file diff --git a/build_ios.sh b/build_ios.sh index 569c261..dff0242 100755 --- a/build_ios.sh +++ b/build_ios.sh @@ -89,4 +89,15 @@ echo "Cleaning up temporary directories..." rm -rf "bindings/ios/ios-arm64" rm -rf "bindings/ios/ios-arm64-sim" -echo "iOS build process completed successfully!" \ No newline at end of file +# Create zip file for distribution and checksum calculation +echo "Creating XCFramework zip file..." +rm -f ./bindings/ios/BitkitCore.xcframework.zip +ditto -c -k --sequesterRsrc --keepParent ./bindings/ios/BitkitCore.xcframework ./bindings/ios/BitkitCore.xcframework.zip || { echo "Failed to create zip file"; exit 1; } + +# Compute checksum +echo "Computing checksum..." +CHECKSUM=`swift package compute-checksum ./bindings/ios/BitkitCore.xcframework.zip` || { echo "Failed to compute checksum"; exit 1; } +echo "New checksum: $CHECKSUM" + +echo "iOS build process completed successfully!" +echo "Update Package.swift with the new checksum: $CHECKSUM" \ No newline at end of file