mcpField
A
axiom-ios-networking

axiom-ios-networking

github.com/charleswiltgen开发1.2k193 次安装今天更新
代码仓库

关于 axiom-ios-networking

axiom-ios-networking 是面向 iOS 开发者的网络工作路由技能,将实现、迁移、调试和合规问题导向相应技能或审计 Agent。

主要功能

  1. 01路由 URLSession 与 Network.framework 实现
  2. 02指引旧版 API 和套接字迁移
  3. 03路由连接与 TLS 诊断
  4. 04涵盖 ATS 与 App Store 网络拒绝
  5. 05指引弃用 API 审计

适用场景

  1. 01选择 HTTP 请求实现模式
  2. 02诊断超时或 TLS 故障
  3. 03迁移 NWConnection 实现
  4. 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 迁移
  • 处理网络性能问题

抵御压力

当用户已在自定义实现上投入大量时间时:

不要屈服于沉没成本带来的压力。正确做法是:

  1. 先诊断 — 在建议修改之前,先了解实际故障原因
  2. 给出正确建议 — 如果标准 API(URLSession、Network.framework)可以解决问题,就应专业地说明
  3. 尊重但不纵容 — 肯定用户的工作,同时提供诚实的技术指导

压力场景示例:

“我花了 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、缺少错误处理)

决策树

  1. 使用结构化并发的 URLSession?→ networking
  2. Network.framework / NetworkConnection(iOS 26+)?→ network-framework-ref
  3. NWConnection(iOS 12-25)?→ networking-legacy
  4. 从套接字/URLSession 迁移?→ networking-migration
  5. 连接问题/调试?→ networking-diag
  6. 因网络相关的 ATS / HTTP / App Store 问题而被拒绝?→ networking-diag + networking-auditor
  7. 因 UIWebView 或已弃用 API 被拒绝?→ networking-auditor(Agent)
  8. 想扫描已弃用 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

评论

支持 Markdown