构建iOS App Clip,支持调用URL、App Clip Code、NFC、二维码、Safari横幅、地图、信息、目标设置、App Store Connect体验、大小/能力限制、NSUserActivity路由、SKOverlay推广、App Group/钥匙串交接、临时通知、位置确认以及完整应用迁移。在创建App Clip或配置App Clip调用、体验设置或完整应用交接时使用。
App Clips
构建轻量级、即时可用的iOS应用版本,用于专注的即时体验或演示。
目录
App Clip目标设置
App Clip是与完整应用在同一Xcode项目中的独立目标:
- 文件 → 新建 → 目标 → App Clip — Xcode创建App Clip目标,向完整应用目标添加嵌入App Clip构建阶段,并关联相关授权。
- App Clip的bundle ID必须以完整应用的bundle ID为前缀:
com.example.MyApp.Clip。 - 在诊断归档、签名或App Store Connect失败时,验证原始授权键:
- App Clip目标:
com.apple.developer.on-demand-install-capable - App Clip目标父应用链接:
com.apple.developer.parent-application-identifiers - 完整应用目标关联的App Clip链接:
com.apple.developer.associated-appclip-app-identifiers
- App Clip目标:
使用Swift包或共享源文件来包含两个目标所需的代码。使用APPCLIP活动编译条件添加App Clip特定的编译分支,并避免将仅完整应用的框架链接到App Clip目标中。
验证检查点: 归档两个目标并检查其归档的授权。如果签名或验证失败,请更正上述三个原始键/目标分配,并重新归档直到两者都通过。
调用与体验路由
在实现调用URL路由、App Store Connect体验、本地体验、Safari智能应用横幅、QR/NFC/App Clip Code、AASA或关联域时,请阅读references/routing-and-experiences.md。
App Clips接收NSUserActivityTypeBrowsingWeb活动。保持调用路由器与完整应用共享,因为安装后,完整应用会替换App Clip并接收未来的调用。
- SwiftUI:使用
.onContinueUserActivity(NSUserActivityTypeBrowsingWeb)。 - UIKit冷启动:在
scene(_:willConnectTo:options:)中检查connectionOptions.userActivities。 - UIKit延续:在
scene(_:continue:)中处理实际的NSUserActivity。 scene(_:willContinueUserActivityWithType:)仅作为提前通知,不提供URL。
在App Store Connect中配置所需的默认App Clip体验。使用高级体验进行地图集成、位置关联、生产App Clip Code、按位置卡片以及精确的物理位置路由;演示App Clip Code可以使用简短的演示App Clip链接。
对于自定义URL,在完整应用和App Clip目标的关联域中添加appclips:example.com,并托管包含App Clip应用标识符的AASA文件。对于Safari横幅,使用app-id、app-clip-bundle-id和可选的app-clip-display=card;不要依赖app-argument进行App Clip启动。
验证检查点: 使用_XCAppClipURL和本地体验测试每个URL,修复路由/AASA/体验不匹配,并重复直到App Clip和已安装的完整应用到达相同目的地。
大小与能力决策
使用大小、能力与推广作为可行性审查、大小层级与测量、后台资源、CloudKit、实时活动、不支持的功能以及完整应用推广的权威清单。当涉及这些主题时,请加载该文档。
将产品审查保持在边界层面:说明大小依据、调用和下载适配、能力排除以及交接目标。仅在用户要求实现时添加实现API。
数据、通知与位置
在实现App Group/完整应用迁移、钥匙串或通过Apple登录交接、临时通知、通知重新启动路由或物理位置确认时,请阅读references/data-handoff-notifications-location.md。
将App Group存储视为非秘密的交接状态,而非信任边界。该参考资料涵盖了iOS 15.4+单向钥匙串规则、通过Apple登录验证、临时通知权限和重新启动路由以及物理位置确认——包括其所需的原始键和目标。
常见错误
超过适用的App Clip大小限制
使用大小限制选择并测量适用的限制。
设计仅营销或大量使用Web视图的App Clip
App Clips应让用户无需安装应用即可完成聚焦任务或完整演示。避免仅营销的剪辑、广告密集的流程、启动画面、阻塞启动的下载、重复安装提示以及大量使用Web视图的体验(这些更适合作为网站)。
审查清单
在通过所有适用的关卡之前不要发布;修复失败并重新运行同一关卡。
- [ ] 目标ID、所有三个原始授权键以及共享代码边界正确。
- [ ] 调用在SwiftUI/UIKit冷启动和延续中工作,然后交接给完整应用。
- [ ] 关联域、AASA、App Store Connect体验和本地调用测试通过。
- [ ] 大小、能力、用户体验、实时活动和推广决策通过可行性审查。
- [ ] 数据、凭据、通知和位置流程通过详细的交接检查。
参考资料
- 路由与体验
- 数据交接、通知与位置
- 大小、能力与推广
- App Clips框架
- 使用Xcode创建App Clip
- 配置App Clip体验
- 响应调用
- 选择正确的功能
- 确认用户的物理位置
- 在App Clip和完整应用之间共享数据
- 在App Clips中启用通知
- 支持来自网站和信息应用的调用
- 使用App Clip提供实时活动
- 向App Clip用户推荐您的应用
- APActivationPayload
- SKOverlay.AppClipConfiguration
- NSUserActivityTypeBrowsingWeb
- 创建App Clip Code
- 分发App Clip
- App Clips人机界面指南






