← ClaudeAtlas

add-app-cliplisted

Add an iOS App Clip target to an Expo app. Use when the user mentions App Clip, AASA, apple-app-site-association, appclips, smart app banner, or wants to ship a lightweight iOS Clip invoked from a URL alongside their parent app.
tassiovale/claude-code-kit · ★ 10 · AI & Automation · score 69
Install: claude install-skill tassiovale/claude-code-kit
# Add an App Clip to an Expo App Adds an iOS App Clip target to an Expo project. The Clip lives in `targets/clip/`, ships alongside the parent app, and is invoked from a URL on the app's domain via an Apple App Site Association (AASA) file. The parent app's bundle ID becomes `com.<username>.<app-name>` and the Clip's is automatically derived as `<parent>.clip` (e.g. `com.bacon.may20.clip`). ## 1. Set `bundleIdentifier` and `appleTeamId` `bun create target` warns if these are missing. Add to `app.json`: ```json { "expo": { "ios": { "bundleIdentifier": "com.<username>.<app-name>", "appleTeamId": "XX57RJ5UTD" } } } ``` ## 2. Add the App Clip target ```sh bun create target clip ``` This installs [`@bacons/apple-targets`](https://github.com/EvanBacon/expo-apple-targets), adds it to the `plugins` array in `app.json`, and writes: - `targets/clip/expo-target.config.js` — the target's config plugin - `targets/clip/Info.plist` — Clip Info.plist - `targets/clip/AppDelegate.swift`, `Assets.xcassets`, etc. Pick a good icon or reuse the existing one defined in the app — check it with `bunx expo config` under the `icon` or `ios.icon` key. ## 3. Wire up associated domains The parent app and the Clip each need the Associated Domains entitlement pointing at the domain that hosts the AASA file. In `app.json`, add both `applinks:` (parent) and `appclips:` (Clip invocation) entries: ```json { "expo": { "ios": { "associatedDomains": [ "appl