mcpField
A
axiom-integration

axiom-integration

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

关于 axiom-integration

axiom-integration 是面向 Claude Code 的 iOS 系统集成技能,为 App Intents、小组件、购买、通知和后台任务等功能提供分类指南。

主要功能

  1. 01App Intents 与 Siri 参考资料
  2. 02小组件和 Live Activities 指引
  3. 03StoreKit 与应用内购买内容
  4. 04EventKit 与 Contacts 参考资料
  5. 05通知和后台任务指南

适用场景

  1. 01添加 Siri 或 App Shortcuts 支持
  2. 02实现小组件或 Live Activities
  3. 03构建应用内购买流程
  4. 04排查推送或后台任务行为

安装

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

$npx skills add https://github.com/charleswiltgen/axiom --skill axiom-integration

安装后在 Claude Code 中输入/axiom-integration确认已加载。

包含的文件

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

skills/
accessorysetupkit-ref.md
accessorysetupkit.md
alarmkit-ref.md
app-discoverability.md
app-intents-ref.md
app-schemas-ref.md
app-shortcuts-ref.md
background-assets-ref.md
background-assets.md
background-processing-diag.md
background-processing-ref.md
background-processing.md
callkit-livecommunicationkit-ref.md
callkit-livecommunicationkit.md
contacts-ref.md
contacts.md
core-spotlight-ref.md
eventkit-ref.md
eventkit.md
extensions-widgets-ref.md
extensions-widgets.md
iap-auditor.md
in-app-purchases.md
live-activities-ref.md
live-activities.md
local-push-connectivity.md
localization-research-ref.md
localization.md
privacy-ux.md
push-notifications-diag.md

详细介绍

iOS 系统集成

任何涉及 iOS 系统集成的工作都必须使用此技能,包括 Siri、快捷指令、小组件、应用内购买、后台任务、推送通知等。

无法启动 Axiom Agent? 如果此路由器将你指向某个 Agent,请直接按照其流程操作。通过 MCP,axiom_get_agent 会返回该流程;其他情况下,请阅读下方的文件,只需使用文件搜索和读取功能即可。

此处提供:skills/iap-auditor.md。 位于另一个套件中:axiom-security/skills/security-privacy-scanner.md。

对于其他 Agent,通过 MCP 调用 axiom_get_agent 也会返回相应流程;请使用 axiom_xclog_*、axiom_xcsym_* 和 axiom_xcprof_* 工具执行其 xclog、xcsym 和 xcprof 步骤。其他情况下,请在 Axiom 的技能中搜索 skills/<agent>.md;如果找不到,请使用此套件的技能自行完成,并使用 PATH 中的任意 Axiom 工具。

快速参考

症状 / 任务参考
Siri、App Intents、实体查询(音频应用 → skills/siri-audio.md)参见 skills/app-intents-ref.md
音频应用中的 Siri 播放(“在 MyApp 中播放 X”)、.audio.* 架构、AudioSearch、INPlayMediaIntent参见 skills/siri-audio.md
音频架构成员、参数、枚举项、构建错误;SiriKit 媒体设置和授权参见 skills/siri-audio-ref.md
任意架构域的必需参数、属性、枚举项、返回类型、已弃用架构;Missing required parameter/property 及其他架构构建错误参见 skills/app-schemas-ref.md
备忘录、待办事项或清单应用与 Siri — SiriKit Lists/Notes(INAddTasksIntent、INCreateNoteIntent)在 27 中弃用,.notes.*/.reminders.* 架构、watchOS参见 skills/siri-notes-reminders.md
Siri 音频播放失败 — “我无法播放该内容”、“尚未添加对通过 Siri 执行此操作的支持”、仅在应用打开时有效、结果重复参见 skills/siri-audio-diag.md
App Shortcuts、短语、Spotlight参见 skills/app-shortcuts-ref.md
应用可发现性策略参见 skills/app-discoverability.md
Core Spotlight 索引参见 skills/core-spotlight-ref.md
对应用内容进行大模型搜索、SpotlightSearchTool参见 skills/core-spotlight-ref.md
小组件、控制中心控件参见 skills/extensions-widgets.md
小组件 API 参考参见 skills/extensions-widgets-ref.md
实时活动、灵动岛、推送启动、广播参见 skills/live-activities.md
实时活动 / ActivityKit API 参考参见 skills/live-activities-ref.md
Apple Pay(实物商品、服务、捐赠)改用 axiom-payments
App 内购买、订阅参见 skills/in-app-purchases.md
StoreKit 2 API 参考参见 skills/storekit-ref.md
承诺式计费计划、订阅捆绑包/套装、群组/批量订阅、留存优惠、优惠码参见 skills/storekit-ref.md
游戏内内容(Unity 插件、资源包 + IAP)参见 skills/in-app-purchases.md、skills/background-assets.md
系统日历和提醒事项存储(EventKit)参见 skills/eventkit.md
EventKit API 参考参见 skills/eventkit-ref.md
通讯录、联系人选择器参见 skills/contacts.md
通讯录 API 参考参见 skills/contacts-ref.md
本地化、String Catalogs参见 skills/localization.md
Apple 术语匹配、术语表、伪本地化、TMS参见 skills/localization-research-ref.md
隐私清单、权限 UX参见 skills/privacy-ux.md
蓝牙/Wi-Fi 配件配对(AccessorySetupKit,iOS 18+)参见 skills/accessorysetupkit.md
AccessorySetupKit API(描述符字段、事件、授权设置流程)参见 skills/accessorysetupkit-ref.md
测量与已配对配件之间的距离/方向(蓝牙信道探测,iOS 27)参见 skills/accessorysetupkit-ref.md(第 7 部分)
天气数据、预报、署名(WeatherKit)参见 skills/weatherkit.md
VoIP 通话、CallKit、VoIP 推送、来电显示/拦截参见 skills/callkit-livecommunicationkit.md
CallKit / LiveCommunicationKit / IdentityLookup API 参考参见 skills/callkit-livecommunicationkit-ref.md
SharePlay、GroupActivities、共享会话、空间 Persona参见 skills/shareplay.md
GroupActivities API 参考(GroupSession、信使、日志)参见 skills/shareplay-ref.md
SharePlay 协同音频/视频播放改用 axiom-media(skills/shareplay-playback.md)
消息对话的建议操作(SuggestedActionsView、com.apple.developer.suggested-actions 权限、OS27)改用 axiom-ai(skills/suggested-actions.md)——由 Apple Intelligence 提供支持;权限/功能是集成的一部分
AlarmKit(iOS 26+)参见 skills/alarmkit-ref.md
计时器模式、计划安排参见 skills/timer-patterns.md
计时器 API 参考参见 skills/timer-patterns-ref.md
后台任务、BGTaskScheduler参见 skills/background-processing.md
后台任务调试参见 skills/background-processing-diag.md
后台任务 API 参考参见 skills/background-processing-ref.md
后台资源(大型内容交付、FM 适配器分发、Apple 托管与服务器托管)参见 skills/background-assets.md
后台资源 API 参考(包括本地化资源包、Steam 转换)参见 skills/background-assets-ref.md
按需资源迁移(在 27 中弃用)参见 skills/background-assets.md
推送通知、APNs参见 skills/push-notifications.md
推送通知调试参见 skills/push-notifications-diag.md
推送通知 API 参考参见 skills/push-notifications-ref.md
在受限/本地网络上不使用 APNs 进行推送(本地推送连接、NEAppPushProvider、MCX iOS27)参见 skills/local-push-connectivity.md

决策树

digraph integration {
    start [label="Integration task" shape=ellipse];
    what [label="Which system feature?" shape=diamond];

    start -> what;
    what -> "skills/app-intents-ref.md" [label="Siri / App Intents"];
    what -> "skills/siri-audio.md" [label="Siri playback in\nan audio app"];
    what -> "skills/app-schemas-ref.md" [label="schema domain\nshape / build error"];
    what -> "skills/siri-notes-reminders.md" [label="Siri in a notes /\nlist / to-do app"];
    what -> "skills/app-shortcuts-ref.md" [label="Shortcuts / phrases"];
    what -> "skills/app-discoverability.md" [label="discoverability\nstrategy"];
    what -> "skills/extensions-widgets.md" [label="widgets /\nControl Center"];
    what -> "skills/live-activities.md" [label="Live Activities /\nDynamic Island"];
    what -> "skills/in-app-purchases.md" [label="IAP / subscriptions"];
    what -> "skills/eventkit.md" [label="system Calendar /\nReminders store"];
    what -> "skills/contacts.md" [label="contacts"];
    what -> "skills/localization.md" [label="localization"];
    what -> "skills/privacy-ux.md" [label="privacy / permissions"];
    what -> "skills/accessorysetupkit.md" [label="accessory pairing\n(Bluetooth/Wi-Fi)"];
    what -> "skills/weatherkit.md" [label="weather / forecasts"];
    what -> "skills/callkit-livecommunicationkit.md" [label="VoIP calls /\ncaller ID"];
    what -> "skills/alarmkit-ref.md" [label="alarms (iOS 26+)"];
    what -> "skills/timer-patterns.md" [label="timers"];
    what -> "skills/background-processing.md" [label="background tasks"];
    what -> "skills/background-assets.md" [label="large asset delivery /\nFM adapter shipping"];
    what -> "skills/push-notifications.md" [label="push notifications"];
    what -> "skills/local-push-connectivity.md" [label="push without APNs\n(local network / MCX)"];
}
  1. Siri / App Intents / 实体查询?→ skills/app-intents-ref.md 1a. 音频应用和 Siri——“在 MyApp 中播放 X”、Audio schema domain、AudioSearch、SiriKit INPlayMediaIntent?→ skills/siri-audio.md;具体结构见 skills/siri-audio-ref.md;Siri 无法播放时见 skills/siri-audio-diag.md 1b. 采用任何 @AppIntent(schema:)/@AppEntity(schema:)/@AppEnum(schema:),或遇到 schema 构建错误?→ skills/app-schemas-ref.md(每个领域的必需结构;将 SiriKit Lists/Notes 迁移至 1c) 1c. 备忘录/列表/待办事项应用和 Siri,或 SiriKit Lists/Notes 弃用警告?→ skills/siri-notes-reminders.md
  2. App Shortcuts / 短语?→ skills/app-shortcuts-ref.md
  3. 应用可发现性 / Spotlight 策略?→ skills/app-discoverability.md、skills/core-spotlight-ref.md 3a. 使用大模型搜索应用索引(SpotlightSearchTool、LanguageModelSession 工具调用)?→ skills/core-spotlight-ref.md
  4. 小组件 / 控制中心控件?→ skills/extensions-widgets.md、skills/extensions-widgets-ref.md 4a. 实时活动 / 灵动岛 / 推送启动 / 广播?→ skills/live-activities.md、skills/live-activities-ref.md
  5. 应用内购买 / StoreKit?→ skills/in-app-purchases.md、skills/storekit-ref.md 5a. 订阅计费方案(12 个月承诺)、捆绑包/套件、群组/批量购买、留存优惠、优惠码兑换?→ skills/storekit-ref.md
  6. 系统日历或提醒事项存储区(EventKit)?→ skills/eventkit.md、skills/eventkit-ref.md。为你自己的应用提供 Siri 提醒事项或备忘录功能 → 1c
  7. 联系人 / 联系人选取器?→ skills/contacts.md、skills/contacts-ref.md
  8. 本地化机制(String Catalogs、复数形式、RTL)?→ skills/localization.md 8a. 本地化调研(Apple 术语、术语表、伪本地化、TMS)?→ skills/localization-research-ref.md
  9. 隐私 / 权限?→ skills/privacy-ux.md
  10. 闹钟(iOS 26+)?→ skills/alarmkit-ref.md 10a. 蓝牙/Wi-Fi 配件配对(iOS 18+)?→ skills/accessorysetupkit.md 10b. 天气数据 / 预报 / 署名信息(WeatherKit)?→ skills/weatherkit.md 10c. VoIP 通话 / CallKit / VoIP 推送 / 来电显示 / 呼叫拦截?→ skills/callkit-livecommunicationkit.md
  11. 计时器?→ skills/timer-patterns.md、skills/timer-patterns-ref.md
  12. 后台任务 / BGTaskScheduler?→ skills/background-processing.md、skills/background-processing-diag.md、skills/background-processing-ref.md 12a. 大型资源交付(游戏资源包、本地化资源包、ML 模型、Foundation Models 适配器、ODR 迁移)?→ skills/background-assets.md、skills/background-assets-ref.md
  13. 推送通知?→ skills/push-notifications.md、skills/push-notifications-diag.md、skills/push-notifications-ref.md 13a. 在没有互联网的网络上推送/通话,或通过 MCX 蜂窝网络切片进行 PTT?→ skills/local-push-connectivity.md
  14. 想要进行 IAP 审计?→ 启动 iap-auditor Agent
  15. 想要完整实现 IAP?→ 启动 iap-implementation Agent
  16. 相机 / 照片 / 音频 / 触觉反馈 / ShazamKit?→ 改用 axiom-media

跨域路由

Widget + 数据同步(Widget 未显示更新后的数据):

  • Widget 时间线未刷新 → 留在此处(extensions-widgets)
  • SwiftData/Core Data 未与扩展共享 → 同时调用 axiom-data(App Groups)

Siri + 音频播放(“在 MyApp 中播放 X”、“暂停”、“这是什么歌?”):

  • 音频架构、AudioSearch 解析、SiriKit INPlayMediaIntent → 留在此处(siri-audio)
  • 播放器、“正在播放”会话、远程命令、正在播放内容上的 appEntityIdentifiers → 同时调用 axiom-media(skills/now-playing.md)

App Intents + 安全(锁屏意图风险、通过 Siri 的提示词注入):

  • 意图/架构 API 表面 → 留在此处(app-intents-ref)
  • 威胁建模、authenticationPolicy 门控、架构风险元数据 → 同时调用 axiom-security(skills/agentic-security.md)

实时活动 + 推送通知:

  • ActivityKit 推送令牌 / 广播设置 → 留在此处(live-activities)
  • 推送投递失败 → 同时调用 axiom-networking(networking-diag)
  • Entitlements/证书 → 同时调用 axiom-build

VoIP 推送 + CallKit(VoIP 应用被终止 / 不再收到推送):

  • VoIP 推送必须向 CallKit 或 LiveCommunicationKit 报告通话 — 留在此处(callkit-livecommunicationkit,第 1 部分)
  • PushKit 令牌与 APNs 投递 → 留在此处(用于对比 APNs 的 push-notifications)
  • 通话音频静音/路由错误 → 同时调用 axiom-media(AVAudioSession 类别)

推送 + 后台处理(静默推送未触发后台工作):

  • 推送负载和投递 → 留在此处(push-notifications-diag)
  • BGTaskScheduler 执行 → 留在此处(background-processing)

游戏内内容(StoreKit + Background Assets、Unity 插件):

  • 资源包、IAP 机制、付款表单、模拟服务器 → 留在此处(background-assets、in-app-purchases)
  • 游戏输入、渲染、游戏端性能 → 同时调用 axiom-games / axiom-graphics

日历/联系人 + 数据同步:

  • EventKit/Contacts 数据问题 → 留在此处
  • 通过 App Groups 与 Widget 共享数据 → 同时调用 axiom-data
watchOS 界面
  • Complications + Smart Stack Widget → 参见 axiom-watchos(skills/smart-stack-and-complications.md)
  • Apple Watch 上的实时活动 → 参见 axiom-watchos(skills/controls-and-live-activities.md)

冲突解决

integration 与 axiom-build:系统功能因 entitlement/证书错误而失效时:

  • 签名和预配问题使用 axiom-build
  • API 用法和权限模式使用 integration

integration 与 axiom-data:Widget 或扩展无法访问共享数据时:

  • App Groups 和共享容器 → axiom-data
  • 具体来说:与 Widget/扩展/实时活动共享的 GRDB/SQLite 数据库 → 参见 axiom-data(skills/grdb-app-groups.md)
  • Widget 时间线、实时活动更新 → integration

integration 与 axiom-media:媒体功能与系统功能重叠时:

  • 相机/照片/音频/触觉代码 → axiom-media
  • 相机/麦克风的隐私清单 → 留在此处(privacy-ux)
  • 后台音频模式 → 留在此处(background-processing)

反合理化

想法现实
“App Intents 只是遵循一种协议”App Intents 还包含参数验证、实体查询和后台执行。
“Widget 很简单,我以前做过”Widget 涉及时间线、交互性和每年都会演进的 Live Activity 模式。
“本地化就是 String Catalogs”Xcode 26 提供类型安全的本地化、生成的符号和 #bundle 宏。
“推送通知就是一个负载和一个令牌”令牌生命周期、专注模式级别和服务扩展中的陷阱会导致 80% 的推送问题。
“我直接把资源打包进去就行,这样更简单”将过大的资源打包进应用会增大首次安装体积,并在每次更新时重复付出代价。Background Assets 与 App Store 安装进度集成;FM 适配器则完全无法打包。请参阅 skills/background-assets.md。
“我会用 URLSession 下载资源”URLSession 不支持与 App Store 安装进度集成、按计费状态安排任务或应用配额管理,也无法访问 Apple 托管的资源包。Background Assets 是受支持的渠道。
“On-Demand Resources 仍然很好用”整个 NSBundleResourceRequest 系列都已在 27 SDK 中弃用(“改用 Background Assets”)。请将 ODR 标签迁移到资源包。请参阅 skills/background-assets.md。
“直接申请完整的日历访问权限”大多数应用只需添加事件;EventKitUI 无需任何权限即可完成此操作。
“SharePlay 只是参与者之间的消息通道”GroupSession 不符合 Sendable,观察机制仅支持 Combine,而后来加入者的增量数据取决于 @Published 的 willSet 时机。将其迁移到 @Observable 会在不提示的情况下破坏追赶同步。
“发起 SharePlay 会话的人就是主持人”不存在主持人。每位参与者都平等——框架没有所有者或轮流发言的概念。唯一相关的控制项是 lifetimePolicy,它属于活动。
“用一个消息发送器,我可以针对每条消息选择可靠或不可靠传输”deliveryMode 是在初始化时固定的 let,而且没有任何 send 重载接受传输模式。混合协议需要使用两个 GroupSessionMessenger 实例。
“我会申请蓝牙权限并扫描配件”AccessorySetupKit(iOS 18+)只需轻点一次即可配对,无需弹出广泛的蓝牙权限提示,并会授予范围受限的蓝牙和 Wi-Fi 访问权限。请参阅 skills/accessorysetupkit.md。
“我先处理 VoIP 推送,等准备好后再报告来电”如果某个要求报告的推送没有在完成前向 CallKit 或 LiveCommunicationKit 报告来电,iOS 就会终止应用并停止发送 VoIP 推送。从 iOS 26.4 开始,PushKit 的元数据代理会将它交给你的、mustReport 为 false 的推送豁免于此要求。先报告,再获取数据。请参阅 skills/callkit-livecommunicationkit.md。
“这个网络没有互联网,所以我会让自己的套接字在后台保持打开”iOS 会挂起应用,套接字也会断开。Local Push Connectivity 会运行系统管理的提供程序扩展,专门用于此场景。请参阅 skills/local-push-connectivity.md。
“通话接通时我会激活音频会话”音频会话由 CallKit 管理——只能在 provider(_:didActivate:) 中激活,否则音频会静音或路由错误。请参阅 skills/callkit-livecommunicationkit.md。
“我会直接用 CNContactStore 让用户选择联系人”CNContactPickerViewController 无需授权即可显示所有联系人。

示例调用

用户:“如何添加 Siri 支持?” → 阅读:skills/app-intents-ref.md

用户:“我的小组件没有更新” → 阅读:skills/extensions-widgets.md

用户:“我的 Live Activity 不会更新” / “如何添加 Dynamic Island?” / “向数千个 Live Activity 广播比分” → 阅读:skills/live-activities.md

用户:“使用 StoreKit 2 实现 App 内购买” → 阅读:skills/in-app-purchases.md

用户:“提供一款需承诺订阅 12 个月的月度方案” / “向团队出售订阅席位” → 阅读:skills/storekit-ref.md

用户:“仅向玩家提供其语言对应的关卡包” / “将我的 Steam depot 转换为资源包” → 阅读:skills/background-assets-ref.md

用户:“让设备端模型回答有关我的 App 内容的问题” → 阅读:skills/core-spotlight-ref.md

用户:“如何实现推送通知?” → 阅读:skills/push-notifications.md

用户:“推送通知在开发环境中可用,但在生产环境中不行” → 阅读:skills/push-notifications-diag.md

用户:“我们的 App 必须能在没有互联网的船上/医院网络中接听电话” / “通过 Mission Critical 5G 切片使用 Push to Talk” → 阅读:skills/local-push-connectivity.md

用户:“我的后台任务从未运行” → 阅读:skills/background-processing-diag.md

用户:“如何向用户的日历添加事件?” → 阅读:skills/eventkit.md

用户:“如何让用户选择联系人?” → 阅读:skills/contacts.md

用户:“如何在不显示权限提示的情况下配对蓝牙配件?” → 阅读:skills/accessorysetupkit.md

用户:“如何使用 WeatherKit 显示天气预报?” / “为什么我的天气 App 被拒绝了?” → 阅读:skills/weatherkit.md

用户:“我的 VoIP App 被强制关闭” / “如何处理 CallKit 来电?” / “如何拦截骚扰电话?” → 阅读:skills/callkit-livecommunicationkit.md

用户:“检查我的 App 内购买实现” → 启动:iap-auditor Agent

评论

支持 Markdown