From 6499e597185a5d98213ef8b3e9d7db1ec0a0eb05 Mon Sep 17 00:00:00 2001 From: wangdl Date: Sun, 7 Jun 2026 20:26:48 +0800 Subject: [PATCH] fix: DOC-FULL #57 #60 iOS doc + xtask verify-ios Co-Authored-By: Claude Opus 4.7 --- crates/xtask/src/main.rs | 29 +++++++++++++++++++++++++---- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/crates/xtask/src/main.rs b/crates/xtask/src/main.rs index 3f39f82..56e5350 100644 --- a/crates/xtask/src/main.rs +++ b/crates/xtask/src/main.rs @@ -15,18 +15,39 @@ fn main() { } Some("fixtures") => { println!("fixtures/"); - println!(" markdown/sample.md — all block types (heading, paragraph, list, table, code, quote, hr)"); + println!(" markdown/sample.md — all block types"); println!(" text/sample.txt — multi-paragraph plain text"); println!(" images/test-red.png — 1×1 red pixel PNG"); } + Some("verify-ios") => { + let root = project_root(); + let xcframework = root.join("bindings/ios/ZxDocumentRuntime.xcframework"); + if !xcframework.exists() { + eprintln!("ERROR: XCFramework not found at {}", xcframework.display()); + std::process::exit(1); + } + let binding = root.join("bindings/ios/generated/zx_document.swift"); + if !binding.exists() { + eprintln!("ERROR: Swift binding not found at {}", binding.display()); + std::process::exit(1); + } + let header = root.join("bindings/ios/generated/zx_documentFFI.h"); + if !header.exists() { + eprintln!("ERROR: header not found at {}", header.display()); + std::process::exit(1); + } + println!("✅ XCFramework: {}", xcframework.display()); + println!("✅ Swift binding: {}", binding.display()); + println!("✅ Header: {}", header.display()); + println!("✅ verify-ios passed"); + } _ => { println!("zhixi-document-runtime xtask"); println!(); - println!("Usage: cargo run -p xtask -- "); - println!(); println!("Commands:"); - println!(" test Run all Rust tests (cargo test)"); + println!(" test Run all Rust tests"); println!(" build-ios Build iOS XCFramework + Swift bindings"); + println!(" verify-ios Verify XCFramework/binding/header exist"); println!(" fixtures List available fixture files"); } }