From c74dc4309934e3b1b95e644e29d588c81e0aa5f1 Mon Sep 17 00:00:00 2001 From: Mathieu Morrissette Date: Thu, 16 Jan 2025 11:51:55 -0500 Subject: [PATCH 1/6] Package artifact --- .github/workflows/tests/swift/action.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/tests/swift/action.yml b/.github/workflows/tests/swift/action.yml index 19b0925bc..348a82042 100644 --- a/.github/workflows/tests/swift/action.yml +++ b/.github/workflows/tests/swift/action.yml @@ -6,3 +6,9 @@ runs: working-directory: ./wrappers/swift shell: bash run: sh generate.sh + + - name: Upload package + uses: actions/upload-artifact@v4.3.6 + with: + name: bom_devolutions_crypto_rust.xml + path: ./wrappers/swift/package \ No newline at end of file From 2bf6a3372b5a7f47ca40b3de4b298d8dafc4a01c Mon Sep 17 00:00:00 2001 From: mathieumorrissette Date: Thu, 16 Jan 2025 11:53:04 -0500 Subject: [PATCH 2/6] generate package script --- .github/workflows/tests/swift/action.yml | 2 +- wrappers/swift/generate.sh | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/.github/workflows/tests/swift/action.yml b/.github/workflows/tests/swift/action.yml index 348a82042..1ef571e52 100644 --- a/.github/workflows/tests/swift/action.yml +++ b/.github/workflows/tests/swift/action.yml @@ -10,5 +10,5 @@ runs: - name: Upload package uses: actions/upload-artifact@v4.3.6 with: - name: bom_devolutions_crypto_rust.xml + name: swift path: ./wrappers/swift/package \ No newline at end of file diff --git a/wrappers/swift/generate.sh b/wrappers/swift/generate.sh index f802b13cb..19ea8dd49 100755 --- a/wrappers/swift/generate.sh +++ b/wrappers/swift/generate.sh @@ -68,4 +68,15 @@ cd ./DevolutionsCryptoSwift swift test +cd ../ + +mkdir package + +cp -R ./output/DevolutionsCrypto.xcframework ./package +cp -R ./DevolutionsCryptoSwift/Sources ./package +cp -R ./DevolutionsCryptoSwift/Tests ./package +cp ./DevolutionsCryptoSwift/Package.swift ./package + +sed -i '' 's|\.\./output/DevolutionsCrypto\.xcframework|./DevolutionsCrypto\.xcframework|g' ./package/Package.swift + From 0d679a25c875713455a2af98e18c11d72e013d5f Mon Sep 17 00:00:00 2001 From: mathieumorrissette Date: Thu, 16 Jan 2025 12:08:40 -0500 Subject: [PATCH 3/6] improve weight --- wrappers/swift/generate.sh | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/wrappers/swift/generate.sh b/wrappers/swift/generate.sh index 19ea8dd49..b2ea7494a 100755 --- a/wrappers/swift/generate.sh +++ b/wrappers/swift/generate.sh @@ -47,13 +47,20 @@ lipo ../../target/x86_64-apple-darwin/release/lib$LIBNAME.a \ # no need to combine ios +# Move headers +mkdir headers +cp ./bindings/devolutions_crypto.swift ./headers +cp ./bindings/devolutions_cryptoFFI.h ./headers +cp ./bindings/module.modulemap ./headers + # create the XCFramework xcodebuild -create-xcframework \ - -library "./bindings/ios-simulator/lib$LIBNAME.a" -headers ./bindings \ - -library "./bindings/mac/lib$LIBNAME.a" -headers ./bindings \ - -library "../../target/aarch64-apple-ios/release/lib$LIBNAME.a" -headers ./bindings \ + -library "./bindings/ios-simulator/lib$LIBNAME.a" -headers ./headers \ + -library "./bindings/mac/lib$LIBNAME.a" -headers ./headers \ + -library "../../target/aarch64-apple-ios/release/lib$LIBNAME.a" -headers ./headers \ -output "$XCFRAMEWORK_FOLDER" + # Compress XCFramework ditto -c -k --sequesterRsrc --keepParent "$XCFRAMEWORK_FOLDER" "$XCFRAMEWORK_FOLDER.zip" From e855f5759b49860f8055e3721a19df007f8c4819 Mon Sep 17 00:00:00 2001 From: mathieumorrissette Date: Thu, 16 Jan 2025 12:13:51 -0500 Subject: [PATCH 4/6] dylib --- wrappers/swift/generate.sh | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/wrappers/swift/generate.sh b/wrappers/swift/generate.sh index b2ea7494a..a86bc3ef0 100755 --- a/wrappers/swift/generate.sh +++ b/wrappers/swift/generate.sh @@ -35,14 +35,14 @@ mv "./bindings/devolutions_cryptoFFI.modulemap" ./bindings/module.modulemap # combine the platforms # ios simulator -lipo "../../target/x86_64-apple-ios/release/lib$LIBNAME.a" \ - "../../target/aarch64-apple-ios-sim/release/lib$LIBNAME.a" \ - -create -output "./bindings/ios-simulator/lib$LIBNAME.a" +lipo "../../target/x86_64-apple-ios/release/lib$LIBNAME.dylib" \ + "../../target/aarch64-apple-ios-sim/release/lib$LIBNAME.dylib" \ + -create -output "./bindings/ios-simulator/lib$LIBNAME.dylib" # mac -lipo ../../target/x86_64-apple-darwin/release/lib$LIBNAME.a \ - ../../target/aarch64-apple-darwin/release/lib$LIBNAME.a \ - -create -output ./bindings/mac/lib$LIBNAME.a +lipo ../../target/x86_64-apple-darwin/release/lib$LIBNAME.dylib \ + ../../target/aarch64-apple-darwin/release/lib$LIBNAME.dylib \ + -create -output ./bindings/mac/lib$LIBNAME.dylib # no need to combine ios @@ -55,9 +55,9 @@ cp ./bindings/module.modulemap ./headers # create the XCFramework xcodebuild -create-xcframework \ - -library "./bindings/ios-simulator/lib$LIBNAME.a" -headers ./headers \ - -library "./bindings/mac/lib$LIBNAME.a" -headers ./headers \ - -library "../../target/aarch64-apple-ios/release/lib$LIBNAME.a" -headers ./headers \ + -library "./bindings/ios-simulator/lib$LIBNAME.dylib" -headers ./headers \ + -library "./bindings/mac/lib$LIBNAME.dylib" -headers ./headers \ + -library "../../target/aarch64-apple-ios/release/lib$LIBNAME.dylib" -headers ./headers \ -output "$XCFRAMEWORK_FOLDER" From c1e99bdf9dd70424d2eae7b955182082ed977de8 Mon Sep 17 00:00:00 2001 From: Mathieu Morrissette Date: Thu, 16 Jan 2025 14:47:56 -0500 Subject: [PATCH 5/6] podspec --- wrappers/swift/DevolutionsCryptoSwift.podspec | 23 +++++++++++++++++++ wrappers/swift/generate.sh | 1 + 2 files changed, 24 insertions(+) create mode 100644 wrappers/swift/DevolutionsCryptoSwift.podspec diff --git a/wrappers/swift/DevolutionsCryptoSwift.podspec b/wrappers/swift/DevolutionsCryptoSwift.podspec new file mode 100644 index 000000000..df45c9b4b --- /dev/null +++ b/wrappers/swift/DevolutionsCryptoSwift.podspec @@ -0,0 +1,23 @@ +Pod::Spec.new do |s| + s.name = 'DevolutionsCryptoSwift' + s.version = '0.9.2' + s.summary = 'A Swift wrapper around Devolutions Crypto Rust crate' + + s.homepage = 'https://github.com/Devolutions/devolutions-crypto.git' + s.license = { :type => 'MIT', :file => './LICENSE-MIT' } + s.author = { 'Devolutions Security' => 'security@devolutions.net' } + s.source = { + :git => 'https://github.com/Devolutions/devolutions-crypto.git', + :tag => s.version.to_s, + :branch => "release/cocoapods-v${version}" + } + + s.swift_version = '5.0' + s.ios.deployment_target = '16.0' + + s.vendored_frameworks = 'DevolutionsCrypto.xcframework' + s.source_files = [ + 'Sources/**/*.{swift}', + 'Tests/**/*.{swift}', + ] +end \ No newline at end of file diff --git a/wrappers/swift/generate.sh b/wrappers/swift/generate.sh index a86bc3ef0..853763877 100755 --- a/wrappers/swift/generate.sh +++ b/wrappers/swift/generate.sh @@ -83,6 +83,7 @@ cp -R ./output/DevolutionsCrypto.xcframework ./package cp -R ./DevolutionsCryptoSwift/Sources ./package cp -R ./DevolutionsCryptoSwift/Tests ./package cp ./DevolutionsCryptoSwift/Package.swift ./package +cp ./DevolutionsCryptoSwift.podspec ./package sed -i '' 's|\.\./output/DevolutionsCrypto\.xcframework|./DevolutionsCrypto\.xcframework|g' ./package/Package.swift From 6ce30d659b6a4c00519309f0b47fc1e96b44c4cc Mon Sep 17 00:00:00 2001 From: Mathieu Morrissette Date: Thu, 16 Jan 2025 15:13:25 -0500 Subject: [PATCH 6/6] Update DevolutionsCryptoSwift.podspec --- wrappers/swift/DevolutionsCryptoSwift.podspec | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/wrappers/swift/DevolutionsCryptoSwift.podspec b/wrappers/swift/DevolutionsCryptoSwift.podspec index df45c9b4b..9480843b5 100644 --- a/wrappers/swift/DevolutionsCryptoSwift.podspec +++ b/wrappers/swift/DevolutionsCryptoSwift.podspec @@ -8,8 +8,7 @@ Pod::Spec.new do |s| s.author = { 'Devolutions Security' => 'security@devolutions.net' } s.source = { :git => 'https://github.com/Devolutions/devolutions-crypto.git', - :tag => s.version.to_s, - :branch => "release/cocoapods-v${version}" + :tag => s.version.to_s } s.swift_version = '5.0' @@ -20,4 +19,4 @@ Pod::Spec.new do |s| 'Sources/**/*.{swift}', 'Tests/**/*.{swift}', ] -end \ No newline at end of file +end