swiftfindrefs

Polar Sponsor
爱发电 赞助
.NET 9.0

使用 swiftfindrefs(IndexStoreDB)列出所有引用某符号的 Swift 源文件。对“查找引用”“修复缺失导入”和跨模块重构必不可少。不要用 grep/rg 或 IDE 搜索替代。

SwiftFind Refes.Purpose. 使用Sweatherfindrefs来查找每个通过查询 Xcode 的索引Store( DerivedData

功能概述

SwiftFind Refes.Purpose. 使用Sweatherfindrefs来查找每个通过查询 Xcode 的索引Store( DerivedData是一项面向实际任务的技能,主要用于此技能的存在是为了防止不完全的重新出现。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。

核心要点

  • 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
  • 该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。
  • 从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。

使用与执行

实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。

结果检查与注意事项

执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。

SwiftFindRefs

用途

使用 swiftfindrefs 查询 Xcode 的 IndexStore(位于 DerivedData 中),定位所有引用指定符号的 Swift 源文件。该工具旨在避免因依赖文本搜索或启发式方法而导致的不完整重构。

规则

  • 编辑任何文件前,必须先运行 swiftfindrefs
  • 仅编辑 swiftfindrefs 返回的文件。
  • 不得用 greprg、IDE 内置搜索或文件系统启发式方法替代引用发现流程。
  • 不得手动扩展文件集合。
  • 若 IndexStore / DerivedData 解析失败,应立即中止并报告错误;禁止凭猜测继续操作。

前提条件

  • 已安装 Xcode 的 macOS 系统
  • 项目至少已构建一次(即 DerivedData 目录已存在)
  • swiftfindrefs 已加入系统 PATH

安装

brew tap michaelversus/SwiftFindRefs https://github.com/michaelversus/SwiftFindRefs.git
brew install swiftfindrefs

标准命令格式

建议在可能的情况下显式提供 --projectName--symbolType 参数。

swiftfindrefs 
  --projectName  
  --symbolName  
  --symbolType 

可选参数:

  • --dataStorePath :显式指定 DataStore(或 IndexStoreDB)路径;跳过自动发现逻辑
  • -v, --verbose:启用详细输出,用于诊断(布尔标志,无需提供值)

输出约定

  • 每行一个绝对路径
  • 结果去重
  • 脚本友好(可安全逐行管道传递)
  • 输出顺序无语义含义

标准工作流

工作流 A:查找全部引用

  1. 对目标符号执行 swiftfindrefs
  2. 将输出视为该符号的完整引用集合。
  3. 如需进一步分析,仅打开上述输出中列出的文件。

工作流 B:移动符号后修复缺失的 import 声明

使用 swiftfindrefs 限定作用域,仅在必要位置添加 import 声明。

swiftfindrefs -p  -n  -t  | while read file; do
  if ! grep -q "^import $" "$file"; then
    echo "$file"
  fi
done

对每个输出的文件执行以下操作:

  • 在文件顶部的 import 区块中插入 import
  • 保持现有 import 的顺序与分组方式不变。
  • 禁止重复添加同一模块的 import。
  • 不得格式化与当前修改无关的代码。

工作流 C:删除或重命名符号前审计其使用情况

  1. 对目标符号执行 swiftfindrefs
  2. 若输出为空,则视该符号为未使用(必要时仍需通过构建/测试进一步验证)。
  3. 若输出非空,则在修改公开 API 前,须人工审查所列文件。

参考资料

  • CLI 详细说明:references/cli.md
  • 操作手册:references/workflows.md
  • 故障排查指南:references/troubleshooting.md

相关专题

更多
Aionclaw智能助手介绍
Aionclaw智能助手介绍

本专题汇总了AionClaw(AI龙虾助手)的功能介绍与在线使用入口。AionClaw是杭州趣猿人工智能有限公司推出的桌面级AI智能体,能直接在电脑上读写文件、运行脚本、操作浏览器,自动交付Word、PPT、Excel等成品。

2026.09.20

0

13

AionClaw AI智能体与电脑自动化任务执行功能使用教程
AionClaw AI智能体与电脑自动化任务执行功能使用教程

AionClaw专题整理AI智能体与电脑自动化相关功能使用教程,涵盖安装部署、AI任务执行、Skills技能、文件处理、浏览器控制、电脑操作、持久记忆、聊天工具连接以及办公、编程和内容创作等功能,帮助用户快速掌握AionClaw的实际使用方法。

2026.09.20

0

15

AI视频生成软件推荐
AI视频生成软件推荐

本专题汇总了当前主流的AI视频生成软件推荐与排行榜单,涵盖seko、AniShort、剧云、Lovart、LiblibAI及立刻mv等热门工具。同时整理了各软件在文生视频、图生视频、时长限制、画质表现及免费额度等方面的差异对比,助您快速选对适合创作需求的AI视频生成工具。

2026.09.16

0

9

ai生成视频的工具免费版合集
ai生成视频的工具免费版合集

本专题汇总了当前免费AI生成视频工具的排行榜与推荐清单,涵盖seko、讯飞智作、AniShort及剧云、Lovart等多模型集成平台。同时整理了各工具的免费额度、输出时长、水印政策及适用场景差异,助您快速选择合适工具开启AI视频创作。

2026.09.16

0

10

Pandas时间序列分析与可视化报表
Pandas时间序列分析与可视化报表

本专题整理Pandas日期转换、时间索引、重采样、滚动窗口、时区处理、plot绘图、Styler表格样式和报表输出方法。

2026.09.16

0

23

Pandas数据筛选索引与清洗处理
Pandas数据筛选索引与清洗处理

本专题整理Pandas中的loc、iloc、条件筛选、query查询、缺失值处理、重复值删除、类型转换和字符串列清洗方法。

2026.09.16

0

25

Pandas数据读取导入与文件导出处理
Pandas数据读取导入与文件导出处理

本专题整理Pandas读取CSV、Excel、JSON、SQL、Parquet等文件的方法,以及to_csv、to_excel、to_sql和to_parquet等常用数据导出流程。

2026.09.16

0

27

GDB怎么设置断点
GDB怎么设置断点

本专题介绍GDB按照函数名、源代码行号和文件位置设置断点的方法,详细说明run、continue、next、step等命令的配合使用,帮助定位程序崩溃、逻辑异常及代码未按预期执行的问题。

2026.09.11

0

28

GDB怎么查看变量值
GDB怎么查看变量值

本专题介绍GDB调试过程中查看变量值的具体方法,涵盖局部变量、函数参数、数组、结构体和指针内容查询,同时整理变量持续显示、格式化输出及无法读取变量时的排查思路。

2026.09.11

0

22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.6万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 133万人学习