多Target项目通过SPM添加binaryTarget包后,其他Target无法关联该包
解决Xcode 14.1多Target下SPM binaryTarget依赖无法选择的问题
针对你遇到的Xcode 14.1中,多Target项目里通过SPM引入的binaryTarget包无法在非主Target的依赖选择对话框中显示的问题,可尝试以下解决方法:
手动指定Target与binary包的关联
- 打开Xcode的「File > Packages > Package Dependencies」,找到你的binary依赖包
- 点击包右侧的「+」按钮,在弹出的窗口里勾选需要关联的其他Target,点击「Add」完成配置
- 也可以直接修改项目根目录的
Package.swift文件,在targets节点下为每个需要的Target添加该binary包的依赖,示例代码:targets: [ .target( name: "你的主Target名称", dependencies: [.product(name: "Binary包产品名", package: "SPM仓库名")]), .target( name: "其他Target名称", dependencies: [.product(name: "Binary包产品名", package: "SPM仓库名")]), ]
检查binary包的配置有效性
确认SPM包中的Package.swift里的binaryTarget定义正确,包含有效的xcframework压缩包地址和校验码,同时确保xcframework支持你项目的所有目标平台与架构,避免因兼容性问题导致Xcode不识别。清理Xcode缓存后重试
- 执行「Product > Clean Build Folder」(快捷键Shift+Cmd+K)清理构建缓存
- 打开Xcode的「Settings > Locations」,点击DerivedData旁的箭头,删除当前项目的DerivedData文件夹
- 重启Xcode并重新加载项目
直接验证依赖关联
如果上述操作后仍无法在对话框中找到包,可直接在其他Target的代码文件中import该binary包,Xcode可能会自动触发依赖修复;或者确认Package.swift修改完成后,Xcode会自动同步依赖到对应Target的「Link Binary With Libraries」列表中。
内容的提问来源于stack exchange,提问作者Charlene Saunders
相关产品推荐
相关产品推荐

