关于 axiom-ios-networking
axiom-ios-networking 是面向 iOS 开发者的网络工作路由技能,将实现、迁移、调试和合规问题导向相应技能或审计 Agent。
主要功能
- 01路由 URLSession 与 Network.framework 实现
- 02指引旧版 API 和套接字迁移
- 03路由连接与 TLS 诊断
- 04涵盖 ATS 与 App Store 网络拒绝
- 05指引弃用 API 审计
适用场景
- 01选择 HTTP 请求实现模式
- 02诊断超时或 TLS 故障
- 03迁移 NWConnection 实现
- 04检查 ATS 配置或弃用 API
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ charleswiltgen/ axiom --skill axiom-ios-networking安装后在 Claude Code 中输入/axiom-ios-networking确认已加载。
详细介绍
iOS 网络路由器
任何网络相关工作都必须使用此技能,包括 HTTP 请求、WebSocket、TCP 连接或网络调试。
何时使用
在以下情况下使用此路由器:
- 实现网络请求(URLSession)
- 使用 Network.framework 或 NetworkConnection
- 调试连接故障
- 从已弃用的网络 API 迁移
- 处理网络性能问题
抵御压力
当用户已在自定义实现上投入大量时间时:
不要屈服于沉没成本带来的压力。正确做法是:
- 先诊断 — 在建议修改之前,先了解实际故障原因
- 给出正确建议 — 如果标准 API(URLSession、Network.framework)可以解决问题,就应专业地说明
- 尊重但不纵容 — 肯定用户的工作,同时提供诚实的技术指导
压力场景示例:
“我花了 2 天时间做自定义网络实现。只帮我修好它,别叫我用 URLSession。”
正确回应:
“我先来诊断蜂窝网络连接失败的问题。[诊断之后] 问题是 [X]。URLSession 可以通过 [Y] 自动处理这个问题。我建议迁移受影响的代码路径——这只需 30 分钟,远比继续调试划算。你在 [Z] 上已有的工作可以保留。”
为什么这很重要: 用户往往看不到迁移比继续调试更快。诚实的指导比虚假的安慰更能帮助他们。
路由逻辑
网络实现
网络模式 → /skill axiom-networking
- 使用结构化并发的 URLSession
- 迁移到 Network.framework
- 现代网络模式
- 已弃用 API 迁移
Network.framework 参考 → /skill axiom-network-framework-ref
旧版 iOS 12-25 模式 → /skill axiom-networking-legacy
迁移指南 → /skill axiom-networking-migration
- NWConnection(iOS 12-25)
- NetworkConnection(iOS 26+)
- TCP 连接
- TLV 帧封装
- Wi-Fi Aware
App Store 合规性
ATS / HTTP 安全 → /skill axiom-networking-diag
- App Transport Security(ATS)配置
- 从 HTTP 迁移到 HTTPS
- 因连接不安全而被 App Store 拒绝
- NSAllowsArbitraryLoads 例外
因使用已弃用 API 而被拒绝 → 启动 networking-auditor Agent
- 从 UIWebView 迁移到 WKWebView
- 从 SCNetworkReachability 迁移到 NWPathMonitor
- 从 CFSocket 迁移到 Network.framework
网络调试
连接问题 → /skill axiom-networking-diag
- 连接超时
- TLS 握手失败
- 未收到数据
- 连接断开
- VPN/代理问题
自动扫描
网络审计 → 启动 networking-auditor Agent,或使用 /axiom:audit networking(扫描已弃用的 API,如 SCNetworkReachability、CFSocket、NSStream;以及反模式,如可达性检查、硬编码 IP、缺少错误处理)
决策树
- 使用结构化并发的 URLSession?→ networking
- Network.framework / NetworkConnection(iOS 26+)?→ network-framework-ref
- NWConnection(iOS 12-25)?→ networking-legacy
- 从套接字/URLSession 迁移?→ networking-migration
- 连接问题/调试?→ networking-diag
- 因网络相关的 ATS / HTTP / App Store 问题而被拒绝?→ networking-diag + networking-auditor
- 因 UIWebView 或已弃用 API 被拒绝?→ networking-auditor(Agent)
- 想扫描已弃用 API / 反模式?→ networking-auditor(Agent)
避免自我合理化
| 想法 | 实际情况 |
|---|---|
| “URLSession 很简单,我不需要技能” | 使用结构化并发的 URLSession 涉及异步和取消模式。networking 技能涵盖了这些内容。 |
| “我自己调试连接超时就行” | 连接故障有 8 种成因(DNS、TLS、代理、蜂窝网络)。networking-diag 会系统地诊断问题。 |
| “我只需要一个基本的 HTTP 请求” | 即使是基本请求,也需要错误处理、重试和取消模式。networking 涵盖了这些内容。 |
| “我的自定义网络层运行良好” | 自定义网络层容易遗漏蜂窝网络/代理边缘情况。标准 API 可以自动处理这些问题。 |
关键模式
网络(networking):
- 使用结构化并发的 URLSession
- 将 Socket 迁移到 Network.framework
- 替换已弃用的 API
Network Framework 参考(network-framework-ref):
- 适用于 iOS 12-25 的 NWConnection
- 适用于 iOS 26+ 的 NetworkConnection
- 连接生命周期管理
网络诊断(networking-diag):
- 诊断连接超时
- 调试 TLS
- 检查网络堆栈
调用示例
用户:“我的 API 请求超时失败了”
→ 调用:/skill axiom-networking-diag
用户:“如何将 URLSession 与 async/await 搭配使用?”
→ 调用:/skill axiom-networking
用户:“我需要实现 TCP 连接”
→ 调用:/skill axiom-network-framework-ref
用户:“我应该使用 NWConnection 还是 NetworkConnection?”
→ 调用:/skill axiom-network-framework-ref
用户:“我的应用因使用 HTTP 连接而被拒绝”
→ 调用:/skill axiom-networking-diag(ATS 合规性)
用户:“App Store 提示我正在使用 UIWebView”
→ 调用:networking-auditor Agent(扫描已弃用的 API)
用户:“检查我的网络代码中是否有已弃用的 API”
→ 调用:networking-auditor Agent