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

将XCFramework作为Swift Package二进制目标时遇文件句柄打开错误

解决Xcode 15 SPM导入大XCFramework时的XCBUtil.BinaryReaderError error 0问题

针对你在Xcode 15.0.1中通过Swift Package Manager(SPM)导入包含大体积(850MB)XCFramework的依赖包时,出现包解析正常但构建失败、报错XCBUtil.BinaryReaderError error 0的问题,以下是可行的解决方法:

  • 清理Xcode与SPM缓存

    1. 执行Product > Clean Build Folder(快捷键⇧⌘K)清理本地构建缓存
    2. 手动删除项目DerivedData目录:打开Xcode偏好设置→Locations,点击DerivedData路径旁的箭头,删除对应项目的缓存文件夹
    3. 删除SPM全局缓存:删除~/Library/Caches/org.swift.swiftpm目录,重启Xcode后重新解析依赖包
  • 检查并修正SPM包的binaryTarget配置
    确保Package.swift中的binaryTarget路径与配置正确,示例如下:

    binaryTarget(
        name: "MyFramework",
        path: "./MyFramework.xcframework"
    )
    

    同时验证XCFramework各架构切片下的文件完整性(比如ios-arm64_x86_64-simulator/MyFramework.framework内的二进制文件、Info.plist等无损坏)

  • 拆分大体积XCFramework
    850MB的XCFramework可能触发Xcode 15 SPM的文件处理bug,尝试将其拆分为多个功能独立的小体积XCFramework,在SPM包中分别添加对应的binaryTarget后统一导入使用

  • 更换Xcode版本
    Xcode 15.0.1存在SPM处理大二进制目标的已知问题,尝试升级至Xcode 15.1及以上版本,或降级至Xcode 14.3.1版本,验证是否能解决构建报错

  • 调整XCFramework的链接方式
    在Package.swift的binaryTarget中显式指定linkage类型,比如:

    binaryTarget(
        name: "MyFramework",
        path: "./MyFramework.xcframework",
        linkage: .dynamic
    )
    

    也可尝试设置为.static,看是否能绕过错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 00:12:11