Agent skills for iOS, iPadOS, Swift, SwiftUI, and modern Apple framework development.
90
90%
Does it follow best practices?
Impact
—
Average score across 248 eval scenarios
Advisory
Suggest reviewing before use
Use this when implementing invocation URL routing, App Store Connect experiences, Local Experiences, Safari Smart App Banners, QR/NFC/App Clip Codes, AASA, or associated domains.
App Clips receive an NSUserActivity of type NSUserActivityTypeBrowsingWeb. Route from the invocation URL and keep the same router available to the full app.
@main
struct DonutShopClip: App {
var body: some Scene {
WindowGroup {
ContentView()
.onContinueUserActivity(NSUserActivityTypeBrowsingWeb) { activity in
handleInvocation(activity)
}
}
}
private func handleInvocation(_ activity: NSUserActivity) {
guard let url = activity.webpageURL,
let components = URLComponents(url: url, resolvingAgainstBaseURL: true)
else { return }
let locationID = components.queryItems?
.first(where: { $0.name == "location" })?.value
routeToLocation(id: locationID)
}
}For UIKit scene-based apps, distinguish notification from handling:
connectionOptions.userActivities in scene(_:willConnectTo:options:).NSUserActivity in scene(_:continue:).scene(_:willContinueUserActivityWithType:) can tell you a continuation is coming, but it does not provide the activity or URL.Key rule: The full app must handle every invocation URL the App Clip supports. After a user installs the full app, it replaces the App Clip and receives future invocations.
Configure experiences in App Store Connect after uploading a build containing the App Clip.
appclip.apple.com URL.For custom URLs, add entries to the Associated Domains entitlement on both the full app and App Clip targets, and host an AASA file:
appclips:example.com| Method | Requirements |
|---|---|
| App Clip Codes | Advanced experience for production; short demo App Clip link for demo codes; NFC-integrated or scan-only |
| NFC tags | Encode invocation URL in an NDEF payload; physical trigger for size-policy decisions |
| QR codes | Encode invocation URL; physical trigger for size-policy decisions |
| Safari Smart App Banners | Associate the App Clip with the website and add the banner meta tag |
| Maps | Advanced experience with place association |
| Messages | Share invocation URL as text; demo links have limited preview behavior |
| Siri Suggestions | Location-based; requires advanced experience for location suggestions |
| Other apps with Link Presentation | Can surface App Clip experiences through rich link metadata |
Other apps using SwiftUI Link / UIApplication.open(_:) | Open default, associated-website, or demo-link URLs; advanced App Clip experiences are not supported for this launch path |
Add this meta tag to your website to show the App Clip banner:
<meta name="apple-itunes-app"
content="app-id=YOUR_APP_ID, app-clip-bundle-id=com.example.MyApp.Clip,
app-clip-display=card">Use app-clip-display=card when the webpage should display the App Clip card in Safari or SFSafariViewController on iOS 15+. Do not rely on app-argument for App Clips; Apple documents app-argument for full-app Smart App Banners, not App Clip launches.
Test the invocation path, not just direct Xcode launch:
// Use the _XCAppClipURL environment variable in the scheme,
// or register a Local Experience in Settings → Developer → Local Experiences.A direct Xcode launch can skip the invocation path and hide routing bugs.
.tessl-plugin
skills
accessorysetupkit
references
activitykit
references
adattributionkit
references
alarmkit
references
app-clips
app-intents
references
app-store-optimization
app-store-review
apple-on-device-ai
appmigrationkit
references
audioaccessorykit
references
authentication
references
avkit
references
background-processing
references
browserenginekit
references
callkit
references
carplay
references
cloudkit
references
contacts-framework
references
core-bluetooth
references
core-data
core-motion
references
core-nfc
references
coreml
references
cryptokit
references
cryptotokenkit
references
debugging-instruments
device-integrity
references
dockkit
references
energykit
references
eventkit
references
financekit
references
focus-engine
gamekit
references
healthkit
references
homekit
references
ios-accessibility
ios-localization
ios-networking
ios-simulator
references
mapkit
metrickit
references
musickit
references
natural-language
references
paperkit
references
passkit
references
pdfkit
references
pencilkit
references
permissionkit
references
photokit
push-notifications
realitykit
references
relevancekit
references
scenekit
references
sensorkit
references
speech-recognition
references
spritekit
references
storekit
swift-api-design-guidelines
swift-architecture
swift-charts
references
swift-codable
swift-concurrency
swift-formatstyle
swift-language
swift-security
references
swift-testing
swiftdata
swiftlint
swiftui-animation
swiftui-gestures
references
swiftui-layout-components
swiftui-liquid-glass
references
swiftui-patterns
swiftui-performance
swiftui-uikit-interop
swiftui-webkit
tabletopkit
references
tipkit
references
vision-framework
weatherkit
references
widgetkit
references