diff --git a/bindings/ios/ZxDocumentRuntime.xcframework/Info.plist b/bindings/ios/ZxDocumentRuntime.xcframework/Info.plist new file mode 100644 index 0000000..2dce6ca --- /dev/null +++ b/bindings/ios/ZxDocumentRuntime.xcframework/Info.plist @@ -0,0 +1,43 @@ + + + + + AvailableLibraries + + + BinaryPath + libzx_document_ffi.a + LibraryIdentifier + ios-arm64 + LibraryPath + libzx_document_ffi.a + SupportedArchitectures + + arm64 + + SupportedPlatform + ios + + + BinaryPath + libzx_document_ffi.a + LibraryIdentifier + ios-arm64-simulator + LibraryPath + libzx_document_ffi.a + SupportedArchitectures + + arm64 + + SupportedPlatform + ios + SupportedPlatformVariant + simulator + + + CFBundlePackageType + XFWK + XCFrameworkFormatVersion + 1.0 + + diff --git a/bindings/ios/ZxDocumentRuntime.xcframework/ios-arm64-simulator/libzx_document_ffi.a b/bindings/ios/ZxDocumentRuntime.xcframework/ios-arm64-simulator/libzx_document_ffi.a new file mode 100644 index 0000000..72a9a47 Binary files /dev/null and b/bindings/ios/ZxDocumentRuntime.xcframework/ios-arm64-simulator/libzx_document_ffi.a differ diff --git a/bindings/ios/ZxDocumentRuntime.xcframework/ios-arm64/libzx_document_ffi.a b/bindings/ios/ZxDocumentRuntime.xcframework/ios-arm64/libzx_document_ffi.a new file mode 100644 index 0000000..985db9a Binary files /dev/null and b/bindings/ios/ZxDocumentRuntime.xcframework/ios-arm64/libzx_document_ffi.a differ diff --git a/bindings/ios/device/libzx_document_ffi.a b/bindings/ios/device/libzx_document_ffi.a new file mode 100644 index 0000000..985db9a Binary files /dev/null and b/bindings/ios/device/libzx_document_ffi.a differ diff --git a/bindings/ios/simulator/libzx_document_ffi.a b/bindings/ios/simulator/libzx_document_ffi.a new file mode 100644 index 0000000..72a9a47 Binary files /dev/null and b/bindings/ios/simulator/libzx_document_ffi.a differ diff --git a/scripts/build-ios.sh b/scripts/build-ios.sh new file mode 100755 index 0000000..a430860 --- /dev/null +++ b/scripts/build-ios.sh @@ -0,0 +1,44 @@ +#!/bin/bash +# Build iOS XCFramework for zhixi-document-runtime +set -e + +RUST_DIR="$(cd "$(dirname "$0")/.." && pwd)" +OUT_DIR="$RUST_DIR/bindings/ios" +LIB_NAME="libzx_document_ffi.a" +MODULE_NAME="ZxDocumentRuntime" + +# Ensure iOS targets are installed +rustup target add aarch64-apple-ios aarch64-apple-ios-sim + +echo "==> Building for iOS device (arm64)..." +cargo build --release --target aarch64-apple-ios + +echo "==> Building for iOS simulator (arm64)..." +cargo build --release --target aarch64-apple-ios-sim + +# Prepare output +rm -rf "$OUT_DIR/ZxDocumentRuntime.xcframework" +mkdir -p "$OUT_DIR/device" "$OUT_DIR/simulator" "$OUT_DIR/generated" + +# Copy libraries +cp "target/aarch64-apple-ios/release/$LIB_NAME" "$OUT_DIR/device/" +cp "target/aarch64-apple-ios-sim/release/$LIB_NAME" "$OUT_DIR/simulator/" + +# Generate Swift bindings +echo "==> Generating Swift bindings..." +uniffi-bindgen-swift \ + --module-name "$MODULE_NAME" \ + --swift-sources \ + "$RUST_DIR/crates/zx_document_ffi/src/zx_document.udl" \ + "$OUT_DIR/generated" + +# Create XCFramework +echo "==> Creating XCFramework..." +xcodebuild -create-xcframework \ + -library "$OUT_DIR/device/$LIB_NAME" \ + -library "$OUT_DIR/simulator/$LIB_NAME" \ + -output "$OUT_DIR/ZxDocumentRuntime.xcframework" + +echo "==> Done!" +echo "XCFramework: $OUT_DIR/ZxDocumentRuntime.xcframework" +echo "Swift sources: $OUT_DIR/generated/"