linkrunner-expolisted
Install: claude install-skill linkrunner-labs/skills
# Linkrunner - Expo integration
You are integrating **Linkrunner** (mobile attribution + deep linking) into an
Expo app. `expo-linkrunner` is **only a config plugin** - it does the native
setup during prebuild. Every runtime call (`init`, `signup`, `handleDeeplink`,
`trackEvent`, ...) comes from the underlying **`rn-linkrunner`** package, with
the exact same API as the React Native SDK. Work in this order and **inspect
the project before editing** - do not paste snippets blindly.
## 0. Before you touch anything
1. Confirm this is an Expo app: `app.json` or `app.config.js/ts` with an
`expo` key, and `expo` in `package.json` dependencies.
2. Check whether `android/` and `ios/` exist and whether they're gitignored.
- Gitignored (or absent) = **managed / Continuous Native Generation (CNG)**:
native projects are regenerated from `app.json` on every `expo prebuild`.
Native config must go through `app.json` or a config plugin.
- Committed = bare-ish workflow: the native files are edited directly and
persist, but you then own keeping them in sync with any future prebuild.
3. Confirm the app uses a **development build**, not Expo Go - Linkrunner
relies on native modules, so Expo Go cannot run it.
4. Find the app's entry point (`app/_layout.tsx` for expo-router, or `App.tsx`)
and how/where it currently initializes any SDKs.
5. Ask the user for their **project token** (dashboard → Settings). If they use
SDK signing, also get `secretKey` + `keyId`. Nev