使用喚醒網址、App Clip Code、NFC、QR Code、Safari 橫幅、地圖、訊息、目標設定、App Store Connect 體驗、大小與功能限制、NSUserActivity 路由、SKOverlay 推廣、App Group/鑰匙圈交接、暫時性通知、位置確認以及完整 App 遷移,來建置 iOS App Clip。適用於建立 App Clip 或設定 App Clip 喚醒、體驗配置或完整 App 交接。
App Clips
建置輕量、可立即使用的 iOS App 版本,專注於當下的即時體驗或展示。
目錄
App Clip 目標設定
App Clip 是與完整 App 位於同一個 Xcode 專案中的獨立目標:
- File → New → Target → App Clip — Xcode 會建立 App Clip 目標,在完整 App 目標中加入 Embed App Clip 建置階段,並自動設定關聯的權利。
- App Clip 的 Bundle ID 必須以完整 App 的 Bundle ID 為前綴:
com.example.MyApp.Clip。 - 在診斷封存、簽署或 App Store Connect 失敗時,請檢查原始權利鍵值:
- App Clip 目標:
com.apple.developer.on-demand-install-capable - App Clip 目標的父 App 連結:
com.apple.developer.parent-application-identifiers - 完整 App 目標的關聯 App Clip 連結:
com.apple.developer.associated-appclip-app-identifiers
- App Clip 目標:
使用 Swift Package 或共享原始碼檔案來提供兩個目標所需的程式碼。透過 APPCLIP 有效編譯條件來加入 App Clip 專屬的編譯分支,並避免在 App Clip 目標中連結僅完整 App 使用的框架。
驗證檢查點: 封存兩個目標並檢查其封存後的權利。如果簽署或驗證失敗,請修正上述三個原始鍵值/目標指派,然後重新封存直到兩者都通過。
喚醒與體驗路由
在實作喚醒網址路由、App Store Connect 體驗、本地體驗、Safari 智慧型 App 橫幅、QR/NFC/App Clip Code、AASA 或關聯網域時,請參閱 references/routing-and-experiences.md。
App Clip 會接收 NSUserActivityTypeBrowsingWeb 活動。請保持喚醒路由器與完整 App 共享,因為安裝後,完整 App 會取代 App Clip 並接收後續的喚醒。
- SwiftUI:使用
.onContinueUserActivity(NSUserActivityTypeBrowsingWeb)。 - UIKit 冷啟動:在
scene(_:willConnectTo:options:)中檢查connectionOptions.userActivities。 - UIKit 延續:在
scene(_:continue:)中處理實際的NSUserActivity。 scene(_:willContinueUserActivityWithType:)僅為預先通知,不提供網址。
在 App Store Connect 中設定必要的預設 App Clip 體驗。使用進階體驗來整合地圖、位置關聯、正式版 App Clip Code、每個位置的卡片以及精確的實體位置路由;示範用 App Clip Code 可使用簡短的示範 App Clip 連結。
對於自訂網址,請在完整 App 和 App Clip 目標的 Associated Domains 中加入 appclips:example.com,並託管包含 App Clip App 識別碼的 AASA 檔案。對於 Safari 橫幅,請使用 app-id、app-clip-bundle-id 以及可選的 app-clip-display=card;請勿依賴 app-argument 來啟動 App Clip。
驗證檢查點: 使用 _XCAppClipURL 和本地體驗測試每個網址,修正路由/AASA/體驗不符的問題,並重複測試直到 App Clip 和已安裝的完整 App 到達相同目的地。
大小與功能決策
使用 Size, capabilities, and promotion 作為可行性審查、大小分級與測量、背景資源、CloudKit、即時活動、不支援功能以及完整 App 推廣的權威檢查清單。當涉及這些主題時,請務必參考。
將產品審查維持在邊界層級:說明大小基準、喚醒與下載適用性、功能排除項目以及交接目的地。僅在使用者要求實作時才加入實作 API。
資料、通知與位置
在實作 App Group/完整 App 遷移、鑰匙圈或「透過 Apple 登入」交接、暫時性通知、通知重新啟動路由或實體位置確認時,請參閱 references/data-handoff-notifications-location.md。
請將 App Group 儲存視為非機密的交接狀態,而非信任邊界。該參考文件涵蓋 iOS 15.4+ 單向鑰匙圈規則、「透過 Apple 登入」驗證、暫時性通知權限與重新啟動路由,以及實體位置確認——包括所需的原始鍵值和目標。
常見錯誤
超過適用的 App Clip 大小限制
使用 Size Limits 選擇並測量適用的限制。
設計僅行銷或大量使用 Web View 的 App Clip
App Clip 應讓使用者完成專注的任務或完整展示,而無需安裝 App。避免僅行銷的 Clip、大量廣告的流程、啟動畫面、阻擋啟動的下載、重複的安裝提示,以及大量使用 Web View 的體驗(這類體驗以網站形式呈現會更好)。
審查清單
在每個適用的關卡通過之前請勿發布;修正失敗項目並重新執行相同關卡。
- [ ] 目標 ID、所有三個原始權利鍵值以及共享程式碼邊界皆正確。
- [ ] 喚醒在 SwiftUI/UIKit 冷啟動和延續中正常運作,然後交接給完整 App。
- [ ] 關聯網域、AASA、App Store Connect 體驗以及本地喚醒測試通過。
- [ ] 大小、功能、使用者體驗、即時活動和推廣決策通過可行性審查。
- [ ] 資料、憑證、通知和位置流程通過詳細的交接檢查。
參考資料
- Routing and experiences
- Data handoff, notifications, and location
- Size, capabilities, and promotion
- App Clips framework
- Creating an App Clip with Xcode
- Configuring App Clip experiences
- Responding to invocations
- Choosing the right functionality
- Confirming a person's physical location
- Sharing data between App Clip and full app
- Enabling notifications in App Clips
- Supporting invocations from your website and the Messages app
- Offering Live Activities with your App Clip
- Recommending your app to App Clip users
- APActivationPayload
- SKOverlay.AppClipConfiguration
- NSUserActivityTypeBrowsingWeb
- Creating App Clip Codes
- Distributing your App Clip
- App Clips HIG






