diff --git a/Binaries/harmony_uniffiFFI.xcframework/Info.plist b/Binaries/harmony_uniffiFFI.xcframework/Info.plist index 5d87f10..be2f9f8 100644 --- a/Binaries/harmony_uniffiFFI.xcframework/Info.plist +++ b/Binaries/harmony_uniffiFFI.xcframework/Info.plist @@ -8,38 +8,36 @@ BinaryPath harmony_uniffiFFI.framework/harmony_uniffiFFI LibraryIdentifier - ios-arm64_x86_64-simulator + ios-arm64 LibraryPath harmony_uniffiFFI.framework SupportedArchitectures arm64 - x86_64 SupportedPlatform ios - SupportedPlatformVariant - simulator BinaryPath - harmony_uniffiFFI.framework/harmony_uniffiFFI + harmony_uniffiFFI.framework/Versions/A/harmony_uniffiFFI LibraryIdentifier - ios-arm64 + macos-arm64_x86_64 LibraryPath harmony_uniffiFFI.framework SupportedArchitectures arm64 + x86_64 SupportedPlatform - ios + macos BinaryPath harmony_uniffiFFI.framework/harmony_uniffiFFI LibraryIdentifier - macos-arm64_x86_64 + ios-arm64_x86_64-simulator LibraryPath harmony_uniffiFFI.framework SupportedArchitectures @@ -48,7 +46,9 @@ x86_64 SupportedPlatform - macos + ios + SupportedPlatformVariant + simulator CFBundlePackageType diff --git a/Binaries/harmony_uniffiFFI.xcframework/macos-arm64_x86_64/harmony_uniffiFFI.framework/Headers b/Binaries/harmony_uniffiFFI.xcframework/macos-arm64_x86_64/harmony_uniffiFFI.framework/Headers new file mode 120000 index 0000000..a177d2a --- /dev/null +++ b/Binaries/harmony_uniffiFFI.xcframework/macos-arm64_x86_64/harmony_uniffiFFI.framework/Headers @@ -0,0 +1 @@ +Versions/Current/Headers \ No newline at end of file diff --git a/Binaries/harmony_uniffiFFI.xcframework/macos-arm64_x86_64/harmony_uniffiFFI.framework/Modules b/Binaries/harmony_uniffiFFI.xcframework/macos-arm64_x86_64/harmony_uniffiFFI.framework/Modules new file mode 120000 index 0000000..5736f31 --- /dev/null +++ b/Binaries/harmony_uniffiFFI.xcframework/macos-arm64_x86_64/harmony_uniffiFFI.framework/Modules @@ -0,0 +1 @@ +Versions/Current/Modules \ No newline at end of file diff --git a/Binaries/harmony_uniffiFFI.xcframework/macos-arm64_x86_64/harmony_uniffiFFI.framework/Resources b/Binaries/harmony_uniffiFFI.xcframework/macos-arm64_x86_64/harmony_uniffiFFI.framework/Resources new file mode 120000 index 0000000..953ee36 --- /dev/null +++ b/Binaries/harmony_uniffiFFI.xcframework/macos-arm64_x86_64/harmony_uniffiFFI.framework/Resources @@ -0,0 +1 @@ +Versions/Current/Resources \ No newline at end of file diff --git a/Binaries/harmony_uniffiFFI.xcframework/macos-arm64_x86_64/harmony_uniffiFFI.framework/Headers/harmony_uniffiFFI.h b/Binaries/harmony_uniffiFFI.xcframework/macos-arm64_x86_64/harmony_uniffiFFI.framework/Versions/A/Headers/harmony_uniffiFFI.h similarity index 100% rename from Binaries/harmony_uniffiFFI.xcframework/macos-arm64_x86_64/harmony_uniffiFFI.framework/Headers/harmony_uniffiFFI.h rename to Binaries/harmony_uniffiFFI.xcframework/macos-arm64_x86_64/harmony_uniffiFFI.framework/Versions/A/Headers/harmony_uniffiFFI.h diff --git a/Binaries/harmony_uniffiFFI.xcframework/macos-arm64_x86_64/harmony_uniffiFFI.framework/Modules/module.modulemap b/Binaries/harmony_uniffiFFI.xcframework/macos-arm64_x86_64/harmony_uniffiFFI.framework/Versions/A/Modules/module.modulemap similarity index 100% rename from Binaries/harmony_uniffiFFI.xcframework/macos-arm64_x86_64/harmony_uniffiFFI.framework/Modules/module.modulemap rename to Binaries/harmony_uniffiFFI.xcframework/macos-arm64_x86_64/harmony_uniffiFFI.framework/Versions/A/Modules/module.modulemap diff --git a/Binaries/harmony_uniffiFFI.xcframework/macos-arm64_x86_64/harmony_uniffiFFI.framework/Info.plist b/Binaries/harmony_uniffiFFI.xcframework/macos-arm64_x86_64/harmony_uniffiFFI.framework/Versions/A/Resources/Info.plist similarity index 100% rename from Binaries/harmony_uniffiFFI.xcframework/macos-arm64_x86_64/harmony_uniffiFFI.framework/Info.plist rename to Binaries/harmony_uniffiFFI.xcframework/macos-arm64_x86_64/harmony_uniffiFFI.framework/Versions/A/Resources/Info.plist diff --git a/Binaries/harmony_uniffiFFI.xcframework/macos-arm64_x86_64/harmony_uniffiFFI.framework/Versions/A/harmony_uniffiFFI b/Binaries/harmony_uniffiFFI.xcframework/macos-arm64_x86_64/harmony_uniffiFFI.framework/Versions/A/harmony_uniffiFFI new file mode 100644 index 0000000..9802dbb Binary files /dev/null and b/Binaries/harmony_uniffiFFI.xcframework/macos-arm64_x86_64/harmony_uniffiFFI.framework/Versions/A/harmony_uniffiFFI differ diff --git a/Binaries/harmony_uniffiFFI.xcframework/macos-arm64_x86_64/harmony_uniffiFFI.framework/Versions/Current b/Binaries/harmony_uniffiFFI.xcframework/macos-arm64_x86_64/harmony_uniffiFFI.framework/Versions/Current new file mode 120000 index 0000000..8c7e5a6 --- /dev/null +++ b/Binaries/harmony_uniffiFFI.xcframework/macos-arm64_x86_64/harmony_uniffiFFI.framework/Versions/Current @@ -0,0 +1 @@ +A \ No newline at end of file diff --git a/Binaries/harmony_uniffiFFI.xcframework/macos-arm64_x86_64/harmony_uniffiFFI.framework/harmony_uniffiFFI b/Binaries/harmony_uniffiFFI.xcframework/macos-arm64_x86_64/harmony_uniffiFFI.framework/harmony_uniffiFFI deleted file mode 100644 index 9802dbb..0000000 Binary files a/Binaries/harmony_uniffiFFI.xcframework/macos-arm64_x86_64/harmony_uniffiFFI.framework/harmony_uniffiFFI and /dev/null differ diff --git a/Binaries/harmony_uniffiFFI.xcframework/macos-arm64_x86_64/harmony_uniffiFFI.framework/harmony_uniffiFFI b/Binaries/harmony_uniffiFFI.xcframework/macos-arm64_x86_64/harmony_uniffiFFI.framework/harmony_uniffiFFI new file mode 120000 index 0000000..1dd03d1 --- /dev/null +++ b/Binaries/harmony_uniffiFFI.xcframework/macos-arm64_x86_64/harmony_uniffiFFI.framework/harmony_uniffiFFI @@ -0,0 +1 @@ +Versions/Current/harmony_uniffiFFI \ No newline at end of file diff --git a/scripts/build_uniffi.sh b/scripts/build_uniffi.sh index 86ad0d6..1b0ee36 100755 --- a/scripts/build_uniffi.sh +++ b/scripts/build_uniffi.sh @@ -124,19 +124,40 @@ make_framework() { local fw="$slice_dir/${FRAMEWORK_NAME}.framework" rm -rf "$fw" - mkdir -p "$fw/Headers" "$fw/Modules" - cp "$lib_path" "$fw/${FRAMEWORK_NAME}" - cp build/uniffi/Headers/* "$fw/Headers/" - - cat > "$fw/Modules/module.modulemap" < "$mod_dir/module.modulemap" < "$fw/Info.plist" < "$plist_path" < @@ -162,6 +183,17 @@ EOF EOF + + # macOS: create the version symlink (Current -> A) and the top-level symlinks + # into it that make this a valid versioned framework bundle. iOS/simulator + # slices are flat and need none of this. + if [ "$platform" = "MacOSX" ]; then + ln -s A "$fw/Versions/Current" + ln -s "Versions/Current/${FRAMEWORK_NAME}" "$fw/${FRAMEWORK_NAME}" + ln -s Versions/Current/Headers "$fw/Headers" + ln -s Versions/Current/Modules "$fw/Modules" + ln -s Versions/Current/Resources "$fw/Resources" + fi } make_framework "$IOS_LIB" build/frameworks/ios MinimumOSVersion "$IOS_DEPLOYMENT_TARGET" iPhoneOS