SuperAPI AI 工具集

spm-build-analysis

编程与开发

查看项目

更新于 10-15 18:31

技能介绍

用途:当包结构、插件或依赖配置可能拖慢 Xcode 构建时,用该技能分析 Swift Package Manager 依赖、包插件、模块变体及 CI 相关构建开销,先做证据收集,而非直接替换依赖,并区分包图谱问题与工程设置问题。未经明确批准,不重写包清单或依赖源。

检查内容:Package.swift 与 Package.resolved;本地包与远程包;包插件与构建工具使用;二进制目标占用;依赖分层、重复导入与潜在循环;构建日志或计时摘要中的包相关工作。

推荐前验证:本地包须确认真正在项目依赖图谱中,检查 project.pbxproj 的 XCLocalSwiftPackageReference 与 XCSwiftPackageProductDependency;磁盘存在但未被引用的本地包不应纳入构建时间建议。为分支跟踪依赖推荐版本固定时,可运行 python3 scripts/check_spm_pins.py --project App.xcodeproj 扫描,无标签则建议固定到具体提交修订哈希。

关注点:包图谱形状与变更影响;插件在本地和 CI 的开销;干净环境中的检出或拉取成本;导致重复模块构建的配置漂移;共享依赖但宏或选项不同的风险;依赖方向违规;模块循环依赖;超大模块(200+ 文件);使用 @_exported import 的伞形模块;缺少接口与实现分离;测试目标依赖应用目标;Swift 宏重建级联;swift-syntax 无预编译二进制时按所有架构构建;多平台构建倍增。模块化 SDK 迁移不自动减少构建时间,需比较 SwiftCompile 任务数并基准测试后再建议。报告格式包含证据、受影响包或插件、干净与增量构建影响、CI 影响、估计影响与批准要求。若主因非包相关,转交 xcode-project-analyzer 或 xcode-compilation-analyzer。详细清单见 references/spm-analysis-checks.md 等。