关于 search-ios26-docs
search-ios26-docs 是供开发者查询本地 iOS 26 Simulator SDK API 的技能。它搜索缓存的符号图,并可通过 Swift 接口、头文件和 apinotes 核实结果。
主要功能
- 01构建并刷新 SDK 符号缓存
- 02搜索符号和文档
- 03通过 SDK 接口核实声明
- 04发现 SDK 模块
- 05按模块和可用性筛选
适用场景
- 01确认某个 iOS 26 API 是否存在
- 02查看 SwiftUI 符号声明
- 03核对 API 可用性和重载
- 04查找符号所属的 SDK 模块
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ pproenca/ dot-skills --skill search-ios26-docs安装后在 Claude Code 中输入/search-ios26-docs确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
metadata.jsonagents/openai.yamlscripts/build_cache.pyprobe_symbol.pysearch_symbols.pytests/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。
工作流
- 使用
xcrun --sdk iphonesimulator --show-sdk-path确定当前 SDK。 - 使用
scripts/search_symbols.py搜索说明文档、符号名称、声明和可用性。此脚本读取本地 SDK 中缓存的swift-symbolgraph-extract输出。 - 如果需要确认精确的编译器声明、重载、带下划线的符号、生成的属性或平台可用性,请添加
--verify-interfaces,或使用scripts/probe_symbol.py。验证过程会搜索.swiftinterface、头文件和 apinotes,并报告源代码片段及诊断信息。 - 使用
--find-module PATTERN或--list-modules发现候选 SDK 模块,然后使用显式的--module值重新运行。 - 将发现作为本地 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