mcpField
S
search-ios26-docs

search-ios26-docs

github.com/pproenca开发21876 次安装11 周前更新
代码仓库

关于 search-ios26-docs

search-ios26-docs 是供开发者查询本地 iOS 26 Simulator SDK API 的技能。它搜索缓存的符号图,并可通过 Swift 接口、头文件和 apinotes 核实结果。

主要功能

  1. 01构建并刷新 SDK 符号缓存
  2. 02搜索符号和文档
  3. 03通过 SDK 接口核实声明
  4. 04发现 SDK 模块
  5. 05按模块和可用性筛选

适用场景

  1. 01确认某个 iOS 26 API 是否存在
  2. 02查看 SwiftUI 符号声明
  3. 03核对 API 可用性和重载
  4. 04查找符号所属的 SDK 模块

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/pproenca/dot-skills --skill search-ios26-docs

安装后在 Claude Code 中输入/search-ios26-docs确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

metadata.json
agents/
openai.yaml
scripts/
build_cache.py
probe_symbol.py
search_symbols.py
tests/
test_search_symbols_e2e.py

详细介绍

搜索 iOS 26 文档

使用本地 Xcode iPhone Simulator SDK 作为 iOS 26 API 的事实来源。如果任务询问当前 SDK 中有哪些内容、SwiftUI 符号如何声明、其可用性如何,或某个 iOS 26 API 是否存在,请优先使用此技能,而不是搜索网页。

快速开始

构建或刷新缓存的符号图:

python3 "$HOME/.codex/skills/search-ios26-docs/scripts/build_cache.py"

搜索 SwiftUI 和 SwiftUICore 符号文档:

python3 "$HOME/.codex/skills/search-ios26-docs/scripts/search_symbols.py glass button style
python3 "$HOME/.codex/skills/search-ios26-docs/scripts/search_symbols.py backgroundExtensionEffect --ios26
python3 "$HOME/.codex/skills/search-ios26-docs/scripts/search_symbols.py toolbar spacer --module SwiftUI --limit 12

探查符号或概念,并附上精确的 SDK 源代码片段:

python3 "$HOME/.codex/skills/search-ios26-docs/scripts/probe_symbol.py" ZoomNavigationTransition --module SwiftUI
python3 "$HOME/.codex/skills/search-ios26-docs/scripts/search_symbols.py" VNRecognizeTextRequest --module Vision --verify-interfaces --limit 12

在决定搜索位置前,先发现 SDK 模块:

python3 "$HOME/.codex/skills/search-ios26-docs/scripts/search_symbols.py" --find-module vision
python3 "$HOME/.codex/skills/search-ios26-docs/scripts/search_symbols.py" --list-modules

搜索脚本首次运行时会自动构建默认缓存。Xcode 更新或搜索结果看起来过时时,请对 build_cache.py 使用 --force。

工作流

  1. 使用 xcrun --sdk iphonesimulator --show-sdk-path 确定当前 SDK。
  2. 使用 scripts/search_symbols.py 搜索说明文档、符号名称、声明和可用性。此脚本读取本地 SDK 中缓存的 swift-symbolgraph-extract 输出。
  3. 如果需要确认精确的编译器声明、重载、带下划线的符号、生成的属性或平台可用性,请添加 --verify-interfaces,或使用 scripts/probe_symbol.py。验证过程会搜索 .swiftinterface、头文件和 apinotes,并报告源代码片段及诊断信息。
  4. 使用 --find-module PATTERN 或 --list-modules 发现候选 SDK 模块,然后使用显式的 --module 值重新运行。
  5. 将发现作为本地 SDK 的事实引用。如果在符号图中找不到某个符号,请先检查 --verify-interfaces 提供的 sourceOnlyMatches,再断定该符号不存在。

接口检查

Swift 接口是 API 表面,并非完整文档。不过,它们仍是获取精确签名和属性的最佳备用来源:

SDK_PATH=$(xcrun --sdk iphonesimulator --show-sdk-path)
SWIFTUI="$SDK_PATH/System/Library/Frameworks/SwiftUI.framework/Modules/SwiftUI.swiftmodule/arm64-apple-ios-simulator.swiftinterface"
SWIFTUICORE="$SDK_PATH/System/Library/Frameworks/SwiftUICore.framework/Modules/SwiftUICore.swiftmodule/arm64-apple-ios-simulator.swiftinterface"

rg -n "GlassButtonStyle|backgroundExtensionEffect|SpacerSizing" "$SWIFTUI" "$SWIFTUICORE"
sed -n '1200,1235p' "$SWIFTUI"

使用接口 grep 检查:

  • 重载集合和泛型约束
  • @available、弃用信息和重命名消息
  • SDK 中可见的、与内部内容相邻的带下划线声明
  • 符号图中缺少说明文档的声明

符号图缓存

缓存默认位置为:

${CODEX_IOS26_DOCS_CACHE:-$HOME/.cache/codex/search-ios26-docs}/<sdk-name>/<target>/<module>/

默认模块为 SwiftUI 和 SwiftUICore。需要时可添加更多模块:

python3 "$HOME/.codex/skills/search-ios26-docs/scripts/build_cache.py --module UIKit --module Foundation
python3 "$HOME/.codex/skills/search-ios26-docs/scripts/search_symbols.py safeAreaRegions --module UIKit

实用选项:

  • build_cache.py --list 会打印缓存位置和 SDK 详情,而不进行提取。
  • build_cache.py --force 会删除并重建所选模块的缓存。
  • search_symbols.py --json 会输出机器可读的结果。
  • search_symbols.py --verify-interfaces 会将匹配的 .swiftinterface、头文件或 apinotes 片段及诊断信息附加到显示的结果中。
  • probe_symbol.py QUERY ... 是经过验证的非去重符号探查快捷方式,可显示完整文档。
  • search_symbols.py --find-module PATTERN 会列出名称与某个子字符串匹配的 SDK 模块。
  • search_symbols.py --list-modules 会列出此辅助工具可见的 SDK 框架模块。
  • search_symbols.py --kind "Instance Method" 会按结果类型缩小范围。
  • search_symbols.py --ios26 会筛选出在 iOS 26 或更高版本中引入的符号。
  • search_symbols.py --introduced iOS:26 会按显式的可用性域和主版本号筛选。
  • search_symbols.py --no-doc 会隐藏文档片段,以缩短输出。
  • search_symbols.py --no-dedupe 会保留重复的扩展结果,以便查看每个具体接收方。
  • search_symbols.py --source-limit 8 --source-context-lines 6 会调整经过验证的源代码片段。

测试

修改辅助脚本后,运行端到端测试。这些测试会使用实际安装的 SDK,并验证符号图搜索、经过验证的源代码片段、模块发现和显式模块深入查询:

python3 "$HOME/.codex/skills/search-ios26-docs/tests/test_search_symbols_e2e.py"

解读规则

  • 将符号图文档视为提取自本地 Apple SDK 的元数据,而非生成的猜测。
  • 将 .swiftinterface 视为面向编译器的声明来源。
  • 对于基于 Objective-C 的框架,将头文件和 apinotes 视为首要备用来源。
  • 当符号图与经验证的 SDK 源码不一致时,以经验证的 SDK 源码为准,并报告差异。
  • 不要假定 Apple Developer 公共网页已涵盖 iOS 26 beta 或新 SDK API 的全部内容,或始终保持最新。
  • 如果符号图提取模块失败,请改用 rg 搜索 $SDK_PATH/System/Library/Frameworks 和 $SDK_PATH/System/Library/PrivateFrameworks 下的框架接口。
  • 在精确性至关重要时,报告当前 SDK 的基本名称、目标三元组和模块。

评论

支持 Markdown