Ios
Installable Agent Skills for integrating the Linkrunner SDK and deep linking, for AI coding agents (Claude Code, Cursor, Windsurf, Copilot)
npx -y skills add linkrunner-labs/skills --skill iosAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 16 days oldThe repository was created 16 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Integrate the Linkrunner mobile attribution SDK into a native iOS (Swift) app - add the package via SPM, initialize it, identify users, track events and revenue, and set up deep linking (Universal Links and custom URL schemes) with domain verification. Use when someone asks to add Linkrunner to an iOS app, wire up attribution, or debug why Linkrunner deep links are not opening the app.
SKILL.md
3.9 KB, 870 tokens by cl100k_base, as published. Nobody here has run it
Linkrunner - iOS (native) integration
You are integrating Linkrunner (mobile attribution + deep linking) into a native iOS Swift app. Work in this order and inspect the project before editing - do not paste snippets blindly.
0. Before you touch anything
- Confirm this is a native iOS app: there is an
.xcodeprojor.xcworkspaceand either aPackage.swiftor Xcode-managed Swift Package dependencies. - Find the app's entry point - the
@mainAppstruct (SwiftUI) orAppDelegate/SceneDelegate(UIKit) - and how it currently initializes. - Ask the user for their project token (dashboard -> Settings). If they
use SDK signing, also get
secretKey+keyId. Never hardcode these in a file that gets committed if the user keeps secrets elsewhere - ask where. - Check current versions against requirements (below) before bumping anything.
1. Decide what the user actually needs
| They want... | Do this |
|---|---|
| "Add Linkrunner / set up attribution" | references/install.md then references/events.md (at minimum init + signup) |
| "Set up deep links" / "links open Safari not my app" | references/deep-linking.md + run scripts/verify-deeplinks.sh |
| "Track purchases / events" | references/events.md |
Most first-time integrations need install -> init -> signup -> handle deeplink, in that order. Deep-link verification (AASA) is separate and is the part that usually breaks - treat it as its own step.
2. Requirements (verify, don't assume)
- iOS 15.0+, Swift 5.9+, Xcode 14.0+
- Install via Swift Package Manager - that is the only method documented
for this SDK. If the project uses CocoaPods for everything else, still add
Linkrunner through SPM (Xcode supports mixing both) rather than inventing a
pod - none is published for
linkrunner-ios.
3. Golden rules
initialize()must run before any other Linkrunner call - in theAppstruct'sinit()(SwiftUI) orapplication(_:didFinishLaunchingWithOptions:)(UIKit), wrapped in aTasksince it'sasync throws.- Call
signup()the moment a user is identified (signup OR login) - this is what ties the install to a user.setUserData()is a later top-up, never a replacement. - For Universal Links, the app changes are worthless until the hosted
apple-app-site-associationfile verifies and Apple's CDN has picked it up - that CDN, not your domain, is what devices actually fetch from. Always finish by runningscripts/verify-deeplinks.sh. appIDin the AASA must be exactlyTEAM_ID.BUNDLE_ID- a mismatch is a common silent failure.- Universal Links never open from a URL typed into Safari's address bar - only test by tapping a link from another app (e.g. Notes).
4. Finish
After editing, build once, and run
scripts/verify-deeplinks.sh <domain> "" <team_id.bundle_id> to confirm deep
-link verification is actually live (the script has no Android check to run
without a package name, so pass "" for it on an iOS-only project). Report
which checks passed and which the user still has to do in the dashboard (host
the AASA under Project Settings -> Domain Verification).
References
references/install.md- SPM install + Info.plist config + initializationreferences/deep-linking.md- Universal Links / custom URL schemes + debuggingreferences/events.md- signup, setUserData, revenue, trackEvent, attribution