DOC-302c 更新构建流程:library 模式 + Swift binding 重新生成 #32
Loading…
x
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
目标
将构建脚本从 UDL 模式切换到 library 模式。
禁止混用
迁移完成后,
zx_document_ffi不允许同时存在include_scaffolding!()和setup_scaffolding!()。proc-macro 模式正确组合:
uniffi::setup_scaffolding!()#[uniffi::export]#[derive(uniffi::Record / Enum / Error)]旧 UDL 生成链路只保留为历史说明,不参与主构建流程。
清理旧产物
必须清理,否则容易:Rust 已改 proc-macro,Swift 还在用旧 binding,Xcode 还在链接旧 XCFramework。
bindings/ios/generated/旧 Swift 文件bindings/ios/ZxDocumentRuntime.xcframeworkbindings/ios/device/和bindings/ios/simulator/旧 .a 文件构建流程改动
build.rs
uniffi::generate_scaffolding调用仍然正确(proc-macro 模式仍需 scaffolding for 元数据)scripts/build-ios.sh
注意事项
_uniffi_zx_document_ffi_fn_func_*符号依赖
验收
bash scripts/build-ios.sh成功nm bindings/ios/simulator/libzx_document_ffi.a | grep "uniffi_zx_document_ffi_fn_func"有输出完成 (2026-06-03)
清理旧产物
bindings/ios/generated/旧文件bindings/ios/ZxDocumentRuntime.xcframeworkbindings/ios/device/和bindings/ios/simulator/旧 .a构建流程
scripts/build-ios.sh更新:uniffi-bindgen generate --language swift xx.udl→ 生成 Swift 绑定nm验证 17 个关键 C ABI 符号scripts/check-symbols.sh— 独立符号检查脚本(DOC-302f)禁止混用
iOS 集成
验证
cargo test58 passbash scripts/check-symbols.sh通过xcodebuild -scheme AIStudyApp build通过关闭
DOC-302c 已完成 — library 模式 + binding 生成