apple-targets

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Apple Extension Target Skills Reference

Apple扩展目标技能参考

This directory contains comprehensive skill documents for all supported Apple extension and target types. Each skill document provides everything an AI agent needs to understand, implement, and troubleshoot a specific Apple extension type, including:
  • Apple documentation links and WWDC session references
  • Runtime behavior and lifecycle explanation
  • Real-world use cases and implementation patterns
  • Production-ready Swift code examples
  • Platform availability and version requirements
  • Common gotchas and debugging tips
本目录包含所有受支持的Apple扩展与目标类型的全面技能文档。每个技能文档提供AI Agent理解、实现和排查特定Apple扩展类型所需的全部信息,包括:
  • Apple文档链接与WWDC会话参考
  • 运行时行为与生命周期说明
  • 实际用例与实现模式
  • 可用于生产环境的Swift代码示例
  • 平台兼容性与版本要求
  • 常见陷阱与调试技巧

Installing This Skill

安装本技能

Install this skill into your coding agent (Claude Code, Cursor, Codex, etc.) with
npx skills
:
sh
npx skills add EvanBacon/expo-apple-targets/tree/main/skills/apple-targets
The CLI auto-detects which agents you have installed and copies
SKILL.md
(plus the supporting reference docs in this directory) into the agent's skills directory (e.g.
.claude/skills/
or
.agents/skills/
). Once installed, the agent loads this guidance automatically whenever you ask it to build an Apple extension or target.
通过
npx skills
将本技能安装到你的编码Agent(Claude Code、Cursor、Codex等)中:
sh
npx skills add EvanBacon/expo-apple-targets/tree/main/skills/apple-targets
CLI会自动检测你已安装的Agent,并将
SKILL.md
(以及本目录中的配套参考文档)复制到Agent的技能目录中(例如
.claude/skills/
.agents/skills/
)。安装完成后,每当你要求Agent构建Apple扩展或目标时,它会自动加载本指南。

How to Use These Skills

如何使用这些技能

For AI Agents:
  1. When a user asks about a specific extension type (e.g., "How do I build a widget?" or "I need to add a share extension"), read the corresponding skill document to get complete implementation guidance.
  2. When planning a feature that might require an extension (e.g., "Add home screen presence" → read
    widget.md
    ), consult the skill document to understand requirements and constraints.
  3. When debugging extension issues, refer to the "Gotchas" section of the relevant skill document — these capture common pitfalls from Apple Developer Forums and real-world experience.
  4. When uncertain which extension type fits a use case, scan the "Use Cases" sections across related skills to find the best match.
Structure of Each Skill Document:
Every skill document follows the template defined in
_template.md
:
  • Frontmatter: Title, one-line description, minimum OS version
  • Apple Documentation: Official reference links
  • WWDC History: Session links showing evolution of the feature
  • What It Does: Step-by-step runtime behavior
  • Use Cases: Real-world scenarios organized by industry/app type
  • Key Classes: Table of essential framework types
  • Implementation: Production-ready Swift code with inline comments
  • Using with @bacons/apple-targets: Setup instructions for this plugin
  • Platform Availability: OS version matrix
  • Gotchas: Common mistakes, memory limits, and silent failure modes
针对AI Agent:
  1. 当用户询问特定扩展类型时(例如“如何构建小组件?”或“我需要添加分享扩展”),阅读对应的技能文档以获取完整的实现指南。
  2. 当规划可能需要扩展的功能时(例如“添加主屏幕组件”→阅读
    widget.md
    ),查阅技能文档以了解需求和约束条件。
  3. 当排查扩展问题时,参考相关技能文档的“常见陷阱”部分——这些内容汇总了Apple开发者论坛和实际经验中的常见问题。
  4. 当不确定哪种扩展类型适合用例时,浏览相关技能的“用例”部分以找到最佳匹配。
每个技能文档的结构:
所有技能文档均遵循
_template.md
定义的模板:
  • 前置信息:标题、单行描述、最低OS版本
  • Apple文档:官方参考链接
  • WWDC历史:展示功能演进的会话链接
  • 功能说明:分步讲解运行时行为
  • 用例:按行业/应用类型分类的实际场景
  • 核心类:关键框架类型表格
  • 实现方案:带行内注释的生产级Swift代码
  • 与@bacons/apple-targets配合使用:本插件的设置说明
  • 平台兼容性:OS版本矩阵
  • 常见陷阱:常见错误、内存限制与静默失败模式

Skills by Category

按分类划分的技能

User Interface Extensions

用户界面扩展

SkillExtension TypeWhen to Read
widget.md
widget
User wants home screen widgets, Lock Screen widgets, Live Activities, StandBy mode UI, or Control Center controls (iOS 18+). Timeline-based SwiftUI views.
clip.md
clip
User wants instant-launch mini-apps triggered by NFC, QR codes, App Clip Codes, Safari banners, or Messages links. Not an extension—a size-constrained application target.
share.md
share
User wants their app in the system share sheet to receive URLs, images, text, or files from other apps.
action.md
action
User wants context menu actions in Safari, Photos, or Files that transform content and optionally return modified data.
keyboard.md
keyboard
User wants a custom system keyboard with specialized input (emoji pickers, GIF search, language-specific layouts, calculators).
photo-editing.md
photo-editing
User wants to add filters, adjustments, or effects to photos/videos directly in the Photos app editing UI.
quicklook-preview.md
quicklook-preview
User wants rich previews of custom file types in Quick Look with interactive controls and multiple pages.
quicklook-thumbnail.md
quicklook-thumbnail
User wants to generate thumbnail images for custom file types shown in Finder, Files app, and Spotlight.
技能扩展类型阅读场景
widget.md
widget
用户需要主屏幕小组件、锁屏小组件、Live Activities、StandBy模式UI或控制中心控件(iOS 18+)。基于时间线的SwiftUI视图。
clip.md
clip
用户需要通过NFC、二维码、App Clip码、Safari横幅或消息链接触发的即时启动迷你应用。这不是扩展——而是受大小限制的应用目标。
share.md
share
用户希望其应用出现在系统分享面板中,以接收来自其他应用的URL、图片、文本或文件。
action.md
action
用户希望在Safari、照片或文件应用中添加上下文菜单操作,用于转换内容并可选返回修改后的数据。
keyboard.md
keyboard
用户需要具有特殊输入功能的自定义系统键盘(表情选择器、GIF搜索、特定语言布局、计算器等)。
photo-editing.md
photo-editing
用户希望直接在照片应用编辑UI中为照片/视频添加滤镜、调整或特效。
quicklook-preview.md
quicklook-preview
用户希望在Quick Look中为自定义文件类型提供带交互控件和多页面的丰富预览。
quicklook-thumbnail.md
quicklook-thumbnail
用户希望为Finder、文件应用和Spotlight中显示的自定义文件类型生成缩略图。

Notifications

通知

SkillExtension TypeWhen to Read
notification-service.md
notification-service
User wants to download images, decrypt payloads, or modify push notification content before display. Runs in background with 30-second time limit.
notification-content.md
notification-content
User wants custom SwiftUI/UIKit UI for expanded push notifications with interactive controls and rich media.
技能扩展类型阅读场景
notification-service.md
notification-service
用户希望在推送通知显示前下载图片、解密负载或修改内容。在后台运行,时间限制为30秒。
notification-content.md
notification-content
用户希望为展开的推送通知添加带交互控件和富媒体的自定义SwiftUI/UIKit界面。

Siri & Intents

Siri与Intents

SkillExtension TypeWhen to Read
intent.md
intent
User wants Siri voice commands for built-in domains (messaging, payments, workouts, media playback, ride booking). Uses legacy SiriKit framework.
intent-ui.md
intent-ui
User wants custom UI in the Siri interface when confirming or handling intents. Companion to the
intent
extension.
app-intent.md
app-intent
User wants modern App Intents (iOS 16+) for Shortcuts, Spotlight, Siri, Focus Filters, and Control Center widgets. Replaces custom
.intentdefinition
files.
技能扩展类型阅读场景
intent.md
intent
用户需要针对内置领域(消息、支付、健身、媒体播放、打车预订)的Siri语音命令。使用传统SiriKit框架。
intent-ui.md
intent-ui
用户希望在Siri界面中为确认或处理intents添加自定义UI。是
intent
扩展的配套组件。
app-intent.md
app-intent
用户需要适用于Shortcuts、Spotlight、Siri、专注模式滤镜和控制中心小组件的现代App Intents(iOS 16+)。替代自定义
.intentdefinition
文件。

Networking & VPN

网络与VPN

SkillExtension TypeWhen to Read
network-packet-tunnel.md
network-packet-tunnel
User wants to build a VPN client that tunnels all device traffic through a custom protocol. Classic and modern Personal VPN.
network-app-proxy.md
network-app-proxy
User wants app-level network filtering (per-app VPN) where specific apps route traffic through a custom proxy. Requires MDM or supervised devices.
network-dns-proxy.md
network-dns-proxy
User wants to intercept and respond to DNS queries system-wide, enabling DNS filtering, logging, or custom resolution.
network-filter-data.md
network-filter-data
User wants deep packet inspection for content filtering (parental controls, enterprise security). Requires special Apple entitlement.
技能扩展类型阅读场景
network-packet-tunnel.md
network-packet-tunnel
用户希望构建通过自定义协议隧道传输所有设备流量的VPN客户端。支持经典和现代个人VPN。
network-app-proxy.md
network-app-proxy
用户需要应用级网络过滤(每应用VPN),让特定应用通过自定义代理路由流量。需要MDM或受管设备。
network-dns-proxy.md
network-dns-proxy
用户希望拦截并响应系统级DNS查询,实现DNS过滤、日志记录或自定义解析。
network-filter-data.md
network-filter-data
用户需要深度包检查以进行内容过滤(家长控制、企业安全)。需要特殊Apple权限。

File Management

文件管理

SkillExtension TypeWhen to Read
file-provider.md
file-provider
User wants to expose cloud storage or remote file systems in the Files app with on-demand download, search, and sync.
file-provider-ui.md
file-provider-ui
User wants custom UI for file actions (sharing, permissions) in the document picker. Companion to File Provider extension.
技能扩展类型阅读场景
file-provider.md
file-provider
用户希望在文件应用中展示云存储或远程文件系统,支持按需下载、搜索和同步。
file-provider-ui.md
file-provider-ui
用户希望为文档选择器中的文件操作(分享、权限)添加自定义UI。是File Provider扩展的配套组件。

Communication & Telephony

通信与电话

SkillExtension TypeWhen to Read
message-filter.md
message-filter
User wants to filter incoming SMS/MMS messages to classify spam, transactions, or promotions into separate tabs.
call-directory.md
call-directory
User wants to block phone numbers or provide caller ID labels for incoming calls. Updates a system-managed SQLite database.
unwanted-communication.md
unwanted-communication
User wants a UI for users to report unwanted calls, messages, or FaceTime attempts to a reporting service. Requires special entitlement.
技能扩展类型阅读场景
message-filter.md
message-filter
用户希望过滤传入的SMS/MMS消息,将垃圾信息、交易信息或促销信息分类到不同标签页。
call-directory.md
call-directory
用户希望拦截电话号码或为来电提供来电显示标签。更新系统管理的SQLite数据库。
unwanted-communication.md
unwanted-communication
用户希望提供UI让用户向报告服务举报不需要的电话、消息或FaceTime请求。需要特殊权限。

Content & Media

内容与媒体

SkillExtension TypeWhen to Read
broadcast-upload.md
broadcast-upload
User wants to stream ReplayKit screen recordings to a live streaming service (Twitch, YouTube Live). Receives video/audio buffers in real time.
broadcast-setup-ui.md
broadcast-setup-ui
User wants custom UI for configuring a live broadcast (selecting stream key, privacy settings). Companion to broadcast upload extension.
safari.md
safari
User wants Safari Web Extensions (Manifest V3) with content scripts, background pages, and native messaging to the containing app.
content-blocker.md
content-blocker
User wants rule-based ad blocking, tracker blocking, or content hiding in Safari using JSON declarative rules. No JavaScript execution.
技能扩展类型阅读场景
broadcast-upload.md
broadcast-upload
用户希望将ReplayKit屏幕录制流传输到直播服务(Twitch、YouTube Live)。实时接收视频/音频缓冲区。
broadcast-setup-ui.md
broadcast-setup-ui
用户希望为配置直播(选择流密钥、隐私设置)添加自定义UI。是广播上传扩展的配套组件。
safari.md
safari
用户需要Safari Web扩展(Manifest V3),支持内容脚本、后台页面以及与容器应用的原生消息传递。
content-blocker.md
content-blocker
用户希望使用JSON声明式规则在Safari中实现基于规则的广告拦截、跟踪器拦截或内容隐藏。不执行JavaScript。

Education & Screen Time

教育与屏幕使用时间

SkillExtension TypeWhen to Read
classkit-context.md
classkit-context
User wants to report student progress in educational apps to Apple's Schoolwork app via ClassKit framework.
device-activity-monitor.md
device-activity-monitor
User wants to monitor app/website usage and trigger actions when Screen Time limits are reached. Parental control and focus apps.
shield-action.md
shield-action
User wants custom UI when a user attempts to bypass a Screen Time shield (blocked app/website). Handle or deny the request.
shield-config.md
shield-config
User wants custom shield UI (blocking screen) shown when apps or websites are restricted by Screen Time rules.
技能扩展类型阅读场景
classkit-context.md
classkit-context
用户希望通过ClassKit框架将教育应用中的学生进度报告到Apple的Schoolwork应用。
device-activity-monitor.md
device-activity-monitor
用户希望监控应用/网站使用情况,并在达到屏幕使用时间限制时触发操作。适用于家长控制和专注类应用。
shield-action.md
shield-action
用户希望在用户尝试绕过屏幕使用时间屏蔽(被阻止的应用/网站)时显示自定义UI。处理或拒绝请求。
shield-config.md
shield-config
用户希望在应用或网站被屏幕使用时间规则限制时显示自定义屏蔽UI(拦截界面)。

Authentication & Security

认证与安全

SkillExtension TypeWhen to Read
authentication-services.md
authentication-services
User wants AutoFill for passwords and passkeys in Safari and apps. Modern replacement for
credentials-provider
. Supports passkey creation/assertion (WebAuthn).
credentials-provider.md
credentials-provider
User wants legacy password AutoFill (iOS 12+). For new projects, use
authentication-services
instead, which supports both passwords and passkeys.
smart-card.md
smart-card
User wants to authenticate with smart cards or hardware tokens (YubiKey, PIV cards) via the CryptoTokenKit framework. Enterprise use.
account-auth.md
account-auth
User wants to modify authentication requests for Kerberos or other enterprise single sign-on (SSO) protocols. Requires special entitlement.
技能扩展类型阅读场景
authentication-services.md
authentication-services
用户希望在Safari和应用中实现密码和密钥自动填充。是
credentials-provider
的现代替代方案,支持密钥创建/断言(WebAuthn)。
credentials-provider.md
credentials-provider
用户需要传统密码自动填充(iOS 12+)。对于新项目,请使用
authentication-services
,它同时支持密码和密钥。
smart-card.md
smart-card
用户希望通过CryptoTokenKit框架使用智能卡或硬件令牌(YubiKey、PIV卡)进行认证。适用于企业场景。
account-auth.md
account-auth
用户希望修改Kerberos或其他企业单点登录(SSO)协议的认证请求。需要特殊权限。

Location & Background Services

位置与后台服务

SkillExtension TypeWhen to Read
location-push.md
location-push
User wants silent push notifications that wake the app for high-accuracy location updates. Used for fleet tracking, delivery apps, and location-based alerts.
bg-download.md
bg-download
User wants on-demand resources or large asset downloads managed by the system's background asset downloader. Used for games and media apps.
技能扩展类型阅读场景
location-push.md
location-push
用户希望使用静默推送通知唤醒应用以获取高精度位置更新。适用于车队跟踪、配送应用和基于位置的警报。
bg-download.md
bg-download
用户希望由系统后台资源下载器管理按需资源或大型资产下载。适用于游戏和媒体应用。

Smart Home & Matter

智能家居与Matter

SkillExtension TypeWhen to Read
matter.md
matter
User wants to add Matter smart home device support for device commissioning via Home app. Requires MFi enrollment and Matter certification.
技能扩展类型阅读场景
matter.md
matter
用户希望添加Matter智能家居设备支持,通过家庭应用进行设备配对。需要MFi注册和Matter认证。

Printing

打印

SkillExtension TypeWhen to Read
print-service.md
print-service
User wants to discover and print to network printers without AirPrint, or provide custom print rendering for specialized printers.
技能扩展类型阅读场景
print-service.md
print-service
用户希望发现并打印到非AirPrint网络打印机,或为专用打印机提供自定义打印渲染。

Search & Indexing

搜索与索引

SkillExtension TypeWhen to Read
spotlight.md
spotlight
User wants to index app content in Spotlight, provide rich search results, and handle taps from Spotlight search. Uses Core Spotlight and
NSUserActivity
.
spotlight-delegate.md
spotlight-delegate
User wants a background extension for large-scale Spotlight indexing that runs periodically on a system-managed schedule. macOS only (not iOS).
技能扩展类型阅读场景
spotlight.md
spotlight
用户希望在Spotlight中索引应用内容、提供丰富搜索结果并处理Spotlight搜索的点击操作。使用Core Spotlight和
NSUserActivity
spotlight-delegate.md
spotlight-delegate
用户需要用于大规模Spotlight索引的后台扩展,按系统管理的周期定期运行。仅支持macOS(不支持iOS)。

Collaboration & Conferencing

协作与会议

SkillExtension TypeWhen to Read
virtual-conference.md
virtual-conference
User wants to integrate a video conferencing app with the system call UI and CallKit, enabling Handoff, picture-in-picture, and system call controls.
技能扩展类型阅读场景
virtual-conference.md
virtual-conference
用户希望将视频会议应用与系统通话UI和CallKit集成,支持接力、画中画和系统通话控制。

Apple Watch

Apple Watch

SkillExtension TypeWhen to Read
watch.md
watch
User wants a standalone watchOS app with complications, workout sessions, HealthKit integration, and Watch Connectivity for iPhone sync. Not an extension—a full application target.
技能扩展类型阅读场景
watch.md
watch
用户需要独立的watchOS应用,支持复杂功能、健身会话、HealthKit集成以及与iPhone同步的Watch Connectivity。这不是扩展——而是完整的应用目标。

Target Types vs. Extensions

目标类型与扩展的区别

Application Targets (not extensions):
  • App Clip (
    clip
    ) — uses product type
    com.apple.product-type.application.on-demand-install-capable
  • watchOS App (
    watch
    ) — uses product type
    com.apple.product-type.application
These are full applications with their own
Info.plist
, app icons, and lifecycle. They do not use
NSExtensionPointIdentifier
.
All other types are app extensions that use product type
com.apple.product-type.app-extension
and declare an extension point identifier in their
Info.plist
.
应用目标(非扩展):
  • App Clip (
    clip
    ) — 使用产品类型
    com.apple.product-type.application.on-demand-install-capable
  • watchOS App (
    watch
    ) — 使用产品类型
    com.apple.product-type.application
这些是完整的应用,拥有自己的
Info.plist
、应用图标和生命周期。它们不使用
NSExtensionPointIdentifier
所有其他类型均为应用扩展,使用产品类型
com.apple.product-type.app-extension
并在其
Info.plist
中声明扩展点标识符。

Quick Reference: Common Use Cases

快速参考:常见用例

User Says...Read This Skill
"Add a home screen widget"widget.md
"Add a share extension"share.md
"Build an instant app / App Clip"clip.md
"Integrate with Siri"intent.md or app-intent.md
"Modify push notifications"notification-service.md
"Custom notification UI"notification-content.md
"Build a VPN app"network-packet-tunnel.md
"Password manager AutoFill"authentication-services.md
"Block spam calls"call-directory.md
"Filter SMS spam"message-filter.md
"Add to Files app"file-provider.md
"Custom keyboard"keyboard.md
"Photo filter extension"photo-editing.md
"Safari ad blocker"content-blocker.md
"Safari extension"safari.md
"Live streaming / screen recording"broadcast-upload.md
"watchOS app"watch.md
"Screen Time parental controls"device-activity-monitor.md
"Smart home / Matter"matter.md
"Print to network printer"print-service.md
"Spotlight search integration"spotlight.md
用户需求...阅读对应技能
"添加主屏幕小组件"widget.md
"添加分享扩展"share.md
"构建即时应用/App Clip"clip.md
"与Siri集成"intent.mdapp-intent.md
"修改推送通知"notification-service.md
"自定义通知UI"notification-content.md
"构建VPN应用"network-packet-tunnel.md
"密码管理器自动填充"authentication-services.md
"拦截垃圾来电"call-directory.md
"过滤短信垃圾信息"message-filter.md
"添加到文件应用"file-provider.md
"自定义键盘"keyboard.md
"照片滤镜扩展"photo-editing.md
"Safari广告拦截器"content-blocker.md
"Safari扩展"safari.md
"直播/屏幕录制"broadcast-upload.md
"watchOS应用"watch.md
"屏幕使用时间家长控制"device-activity-monitor.md
"智能家居/Matter"matter.md
"打印到网络打印机"print-service.md
"Spotlight搜索集成"spotlight.md

Creating a New Extension with @bacons/apple-targets

使用@bacons/apple-targets创建新扩展

Every skill document includes a "Using with @bacons/apple-targets" section with the three-step setup:
sh
undefined
每个技能文档都包含“与@bacons/apple-targets配合使用”部分,提供三步设置流程:
sh
undefined

1. Run the CLI to scaffold the extension

1. 运行CLI生成扩展脚手架

bunx create-target <type>
bunx create-target <type>

2. Ensure the plugin is in app.json

2. 确保插件已添加到app.json

{ "expo": { "plugins": [["@bacons/apple-targets"]] } }
{ "expo": { "plugins": [["@bacons/apple-targets"]] } }

3. Generate the native project

3. 生成本地项目

npx expo prebuild --clean

The `<type>` parameter corresponds to the extension type slug shown in each skill document's title (e.g., `widget`, `share`, `clip`, `notification-service`).
npx expo prebuild --clean

`<type>`参数对应每个技能文档标题中显示的扩展类型别名(例如`widget`、`share`、`clip`、`notification-service`)。

When to Run Prebuild

何时运行Prebuild

Because target source files live outside the
/ios
directory and are linked into the Xcode project (not copied), Swift code changes are automatically synchronized. You don't need to re-run prebuild when editing code.
  • Run
    prebuild --clean
    when:
    • Initial setup after creating a new target
    • Changing
      expo-target.config.js
      (icon, colors, entitlements, bundle ID, frameworks)
    • Changing
      app.json
      plugin configuration
    • Adding or removing targets
    • Xcode project corruption or mysterious build failures
  • Run
    prebuild
    (without
    --clean
    )
    when:
    • You need to regenerate the project but want to preserve manual Xcode modifications
    • Updating the plugin version with minor project changes
  • No prebuild needed for:
    • Editing Swift code in
      targets/<name>/
      directories — files are linked, changes appear immediately in Xcode
    • Adding/modifying Swift files within an existing target
    • Most day-to-day development work on target implementations
This architecture allows you to iterate on extension code without constantly regenerating the entire Xcode project, speeding up development and preserving manual project customizations.
由于目标源文件位于
/ios
目录之外并链接到Xcode项目中(而非复制),Swift代码更改会自动同步。编辑代码时无需重新运行prebuild。
  • **运行
    prebuild --clean
    **的场景:
    • 创建新目标后的初始设置
    • 修改
      expo-target.config.js
      (图标、颜色、权限、Bundle ID、框架)
    • 修改
      app.json
      插件配置
    • 添加或移除目标
    • Xcode项目损坏或出现神秘构建失败
  • **运行
    prebuild
    (不带
    --clean
    )**的场景:
    • 需要重新生成项目但希望保留手动Xcode修改
    • 更新插件版本且项目变更较小
  • 无需运行prebuild的场景:
    • 编辑
      targets/<name>/
      目录中的Swift代码——文件已链接,更改会立即在Xcode中显示
    • 在现有目标中添加/修改Swift文件
    • 目标实现的大多数日常开发工作
此架构允许你在不频繁重新生成整个Xcode项目的情况下迭代扩展代码,加快开发速度并保留手动项目自定义。

Entitlements & Capabilities Guides

权限与功能指南

The
entitlements/
directory contains guides for iOS entitlements and capabilities that apply across multiple extension types:
GuideWhen to Read
entitlements/app-groups.mdUser needs to share data between the main app and extensions (widgets, share, notifications, App Clips). Covers naming conventions, UserDefaults suite, shared containers, Keychain access groups, and automatic EAS provisioning.
Common questions answered by entitlements guides:
  • "How do I share data between my app and widget?" → Read
    app-groups.md
  • "My extension can't access UserDefaults from the main app" → Read
    app-groups.md
  • "How does EAS handle App Groups code signing?" → Read
    app-groups.md
entitlements/
目录包含适用于多种扩展类型的iOS权限与功能指南:
指南阅读场景
entitlements/app-groups.md用户需要在主应用与扩展(小组件、分享、通知、App Clips)之间共享数据。涵盖命名约定、UserDefaults套件、共享容器、Keychain访问组以及自动EAS配置。
权限指南解答的常见问题:
  • "如何在我的应用与小组件之间共享数据?" → 阅读
    app-groups.md
  • "我的扩展无法访问主应用的UserDefaults" → 阅读
    app-groups.md
  • "EAS如何处理App Groups代码签名?" → 阅读
    app-groups.md

Template for New Skills

新技能模板

If you need to write a new skill document, use
_template.md
as the starting point. It defines the required frontmatter, section structure, code example format, and quality checklist.
如果你需要编写新的技能文档,请以
_template.md
为起点。它定义了必填的前置信息、章节结构、代码示例格式和质量检查清单。

Additional Resources

额外资源