Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Generate deep linking infrastructure with URL schemes, Universal Links, and App Intents for Siri/Shortcuts. Use when handling custom URL schemes, Universal Links/Associated Domains, or routing to specific content from external sources.
.claude/skills/rshankras-deep-linking/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-13 | ✗→✓ | ▲ Improved | 11% | 0% |
| case-07 | ✓→✓ | = Same ✓ | 257% | 0% |
| case-04 | ✓→✓ | = Same ✓ | 133% | 0% |
| case-05 | ✓→✓ | = Same ✓ | 32% | 0% |
| case-06 | ✓→✓ | = Same ✓ | 121% | 0% |
Generate deep linking infrastructure with URL schemes, Universal Links, and App Intents for Siri/Shortcuts.
Before generating, verify:
bash # Check for existing URL handling grep -r "onOpenURL\|open.*url\|handleOpen" --include="*.swift" | head -5
bash # Check for CFBundleURLTypes find . -name "Info.plist" -exec grep -l "CFBundleURLSchemes" {} \;
bash find . -name "*.entitlements" -exec grep -l "associated-domains" {} \;
myapp)myapp://path/to/content links/users/{id}/items/{id}/actions/share, /actions/createSources/DeepLinking/
├── DeepLinkRouter.swift # Central router
├── DeepLink.swift # Route definitions
└── UniversalLinkHandler.swift # Universal link processingSources/AppIntents/
├── OpenContentIntent.swift # Open specific content
├── AppShortcuts.swift # Shortcuts provider
└── ContentEntity.swift # Entities for Spotlight/Siri.well-known/
└── apple-app-site-association # AASA file templateswiftenum DeepLink: Equatable { case home case profile(userId: String) case item(itemId: String) case settings case action(ActionType) enum ActionType { case share(itemId: String) case create } }
swiftextension DeepLink { init?(url: URL) { guard let components = URLComponents(url: url, resolvingAgainstBaseURL: true) else { return nil } let pathComponents = components.path.split(separator: "/").map(String.init) switch pathComponents { case ["users", let userId]: self = .profile(userId: userId) case ["items", let itemId]: self = .item(itemId: itemId) case ["settings"]: self = .settings default: self = .home } } }
swift@main struct MyApp: App { @State private var router = DeepLinkRouter() var body: some Scene { WindowGroup { ContentView() .environment(router) .onOpenURL { url in router.handle(url) } } } }
swiftstruct OpenItemIntent: OpenIntent { static let title: LocalizedStringResource = "Open Item" @Parameter(title: "Item") var target: ItemEntity func perform() async throws -> some IntentResult { await router.navigate(to: .item(itemId: target.id)) return .result() } }
swiftstruct AppShortcuts: AppShortcutsProvider { static var appShortcuts: [AppShortcut] { AppShortcut( intent: OpenItemIntent(), phrases: [ "Open \(\.$target) in \(.applicationName)", "Show \(\.$target)" ], shortTitle: "Open Item", systemImageName: "doc" ) } }
xml<key>CFBundleURLTypes</key> <array> <dict> <key>CFBundleURLSchemes</key> <array> <string>myapp</string> </array> <key>CFBundleURLName</key> <string>com.yourcompany.myapp</string> </dict> </array>
xml<key>com.apple.developer.associated-domains</key> <array> <string>applinks:yourapp.com</string> <string>applinks:www.yourapp.com</string> </array>
Host at https://yourapp.com/.well-known/apple-app-site-association:
json{ "applinks": { "apps": [], "details": [ { "appID": "TEAMID.com.yourcompany.yourapp", "paths": [ "/items/*", "/users/*", "/share/*" ] } ] } }
swift@main struct MyApp: App { var body: some Scene { WindowGroup { ContentView() .onOpenURL { url in handleDeepLink(url) } } } }
swift// In SceneDelegate func scene(_ scene: UIScene, continue userActivity: NSUserActivity) { guard userActivity.activityType == NSUserActivityTypeBrowsingWeb, let url = userActivity.webpageURL else { return } handleUniversalLink(url) }
bash# Simulator xcrun simctl openurl booted "myapp://items/123" # Device # Open Safari and navigate to myapp://items/123
bash# Test AASA file curl -I "https://yourapp.com/.well-known/apple-app-site-association" # Should return Content-Type: application/json # Validate with Apple # Use Apple's tool or Branch.io validator
Other measured skills in the registry, with their headline benchmark lift.