You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xcode 14.1集成Open3D-iOS Swift包报二进制产物缺失错误求助

解决Open3D-iOS Swift包"does not contain expected binary artifact"错误

问题背景

使用Open3D-iOS Swift包时,Xcode更新后持续遇到does not contain expected binary artifact错误。无论是通过Git ZIP链接配置binaryTarget,还是本地引用解压后的XCFramework,均出现相同类型错误,提示下载/本地的二进制目标不包含预期的工件名称。

错误原因

Swift Package Manager(SPM)要求binaryTarget的name必须和XCFramework文件夹内部的框架文件名完全匹配。当前配置的name使用了静态库的原始名称(如libOpen3D_3rdparty_liblzf.a),但XCFramework内部的实际工件名称通常会去掉冗余前缀,导致SPM无法匹配到目标文件。

解决方案步骤

1. 检查XCFramework内部结构

解压任意一个出错的XCFramework压缩包,查看内部的框架真实名称:

  • 进入解压后的.xcframework文件夹,打开对应平台目录(如ios-arm64)
  • 查看目录内的框架文件名,比如可能是liblzf.framework而非libOpen3D_3rdparty_liblzf.a.framework

2. 修改binaryTarget的name参数

将binaryTarget的name改为XCFramework内部实际的框架名称,而非静态库的原名称。修改后的配置示例:

.binaryTarget(name: "liblzf", url: "https://github.com/kewlbear/Open3D-iOS/releases/download/0.0.20220804014308/libOpen3D_3rdparty_liblzf.a.xcframework.zip", checksum: "a652bd2ab0c76623bb27268acbd0832326031cb2acc71eda4bc0e36849f64e84"),
.binaryTarget(name: "qhull_r", url: "https://github.com/kewlbear/Open3D-iOS/releases/download/0.0.20220804014308/libOpen3D_3rdparty_qhull_r.a.xcframework.zip", checksum: "55c0f90841fa15c7aa6e3de24e719936af7ea09bfe314eb3a1e44b97e0b49a76"),
.binaryTarget(name: "qhullcpp", url: "https://github.com/kewlbear/Open3D-iOS/releases/download/0.0.20220804014308/libOpen3D_3rdparty_qhullcpp.a.xcframework.zip", checksum: "a5f2cd5c510dc92920aba4d23e7ee771c43e6f1187930707bccaeeac00e76a57"),
.binaryTarget(name: "rply", url: "https://github.com/kewlbear/Open3D-iOS/releases/download/0.0.20220804014308/libOpen3D_3rdparty_rply.a.xcframework.zip", checksum: "9245503d7f4968faa706edce41da5cff5dd2330227234815d7b3855723e189e1"),
.binaryTarget(name: "Open3D", url: "https://github.com/kewlbear/Open3D-iOS/releases/download/0.0.20220804014308/libOpen3D.a.xcframework.zip", checksum: "84915b1c787bc97f52b8cc39f51c9452a39ca6c5b83677cf422fd9e876e0794d"),

3. 修正本地XCFramework引用配置

如果使用本地引用,同样要确保name匹配内部框架名称,路径保持正确:

.binaryTarget(name: "liblzf", path: "artifacts/libOpen3D_3rdparty_liblzf.a.xcframework"),
.binaryTarget(name: "qhull_r", path: "artifacts/libOpen3D_3rdparty_qhull_r.a.xcframework"),
.binaryTarget(name: "qhullcpp", path: "artifacts/libOpen3D_3rdparty_qhullcpp.a.xcframework"),
.binaryTarget(name: "rply", path: "artifacts/libOpen3D_3rdparty_rply.a.xcframework"),
.binaryTarget(name: "Open3D", path: "artifacts/libOpen3D.a.xcframework"),

4. 清理Xcode缓存

修改配置后,执行以下操作确保缓存被彻底清理:

  • 关闭Xcode
  • 删除~/Library/Caches/org.swift.swiftpm目录
  • 删除项目的DerivedData文件夹
  • 重新打开项目并更新Swift包

额外检查点

  • 确认XCFramework是完整构建的,包含所有需要的平台架构
  • 验证SPM配置的checksum与下载的压缩包一致,避免文件损坏

内容的提问来源于stack exchange,提问作者Sanket Dhuri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 23:30:49