iOS项目添加Swift Package时构建工具未运行,编译失败求助
iOS项目引入SPM包时构建插件未执行的问题解决
可能原因及修复步骤
1. 插件权限未被授权
首次引入带构建插件的SPM包时,Xcode会弹出权限确认框,若当时选择拒绝,插件就无法运行,自然不会生成MyGeneratedEnum这类文件。
- 修复:打开Xcode设置(
Cmd+,)→ 切换到Plugins标签,找到对应构建插件,勾选允许执行。之后执行Cmd+Shift+K清理项目,再重新构建。
2. 构建配置未正确触发插件
部分构建插件的配置可能仅在包自身构建时生效,作为依赖引入iOS项目时,需要确认插件关联是否正确。
- 修复:检查目标SPM包的
Package.swift,确保:- 插件的类型是
buildTool - 生成代码的目标在
plugins数组中正确引用了该插件
确认配置无误后,删除项目的DerivedData(路径:Xcode → Preferences → Locations → DerivedData,点击箭头打开文件夹删除对应项目目录),再重新构建。
- 插件的类型是
3. Xcode版本不兼容
不同Xcode版本对SPM插件的支持存在差异,旧版本可能无法正确解析插件配置。
- 修复:查看目标SPM包的
Package.swift或README,确认其要求的最低Xcode版本,升级到对应版本后重新尝试构建。
4. 依赖缓存导致插件未更新
SPM的缓存机制可能会跳过插件的重新执行,尤其是插件有变动但缓存未刷新时。
- 修复:在iOS项目中,依次执行:
File → Packages → Reset Package CachesFile → Packages → Update to Latest Package Versions
之后清理项目并重新构建。
内容的提问来源于stack exchange,提问作者EfficientCoconut2739
相关产品推荐
相关产品推荐

