用途:指导用户创建、配置、实现、调试和学习 Apple App Clips——iOS 应用的轻量版本,用于即时体验或演示,无需从 App Store 安装。App Clip 不出现在主屏幕,系统在一段时间不活跃后自动移除。
主要能力:覆盖 Xcode 项目设置(添加 App Clip 目标、共享代码、验证体积)、调用与启动体验(App Clip Codes、二维码、NFC、Safari 智能横幅、Messages 链接、Maps、Spotlight)、调用 URL 配置(默认体验、演示链接、高级体验)、App Clip Codes 生成、网站关联 AASA 文件、数据共享(App Group、Keychain、Sign in with Apple、CloudKit 只读)、SKOverlay 推荐完整应用、通知、Live Activities、位置确认、框架与隐私限制、测试与分发清单。
必要用法:在 Xcode 中通过 App Clip 模板添加目标,自动生成 scheme、On Demand Install Capable 能力与父应用标识符权限;用 Active Compilation Conditions 的 APPCLIP 区分代码;归档后导出并查看 App Thinning Size Report.txt 验证体积。调用 URL 需在 App Store Connect 配置,App Clip 与完整应用都必须处理所有已注册 URL。SwiftUI 用 onContinueUserActivity(NSUserActivityTypeBrowsingWeb) 响应,Scene 生命周期用 scene(_:willConnectTo:options:)。AASA 文件放在 https://yourdomain.com/.well-known/apple-app-site-association,Content-Type 为 application/json,大小 ≤128 KB。CLI 生成示例:AppClipCodeGenerator generate --url https://example.com/shop --index 0 --output ~/Downloads/AppClipCode.svg --logo badge。
适用场景:即时任务(点餐、停车缴费、租滑板车)、演示版本(试玩游戏关卡、健身或功能)。
限制:体积上限 iOS 15 及更早 10 MB、iOS 16 及更早 15 MB、iOS 17 及以后 100 MB(仅数字调用、需可靠网络、不支持 iOS 16 及更早;App Store Connect 演示链接例外)。多个框架不可用(App Intents、HealthKit、HomeKit、PhotoKit、Speech 等);无 SKAdNetwork 与 ATT;UIDevice.name 与 identifierForVendor 返回空字符串;无持续定位、无 Face ID;不能与其他应用共享数据;应用扩展、设置包、应用内购买、自定义 URL scheme、后台网络等仅限完整应用。测试可用 _XCAppClipURL 环境变量、TestFlight 及设置中的诊断与清除体验缓存。ARKit 追踪 App Clip Code 需设备具备 Apple Neural Engine。