expo-app-clip

Adds an iOS App Clip target to an Expo app with AASA hosting and TestFlight setup.

Updated Sep 13, 2026
One-click install
npx skills add https://github.com/aadilmallick/myfitness-pal-clone --skill expo-app-clip-aadilmallick
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: expo-app-clip
Source: https://github.com/aadilmallick/myfitness-pal-clone/tree/main/.agents/skills/expo-app-clip
Command: npx skills add https://github.com/aadilmallick/myfitness-pal-clone --skill expo-app-clip-aadilmallick

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires @bacons/apple-targets, and includes references (resource) components.

What problem does it solve? Shipping an iOS App Clip alongside an Expo app requires coordinating many Apple-specific pieces: a second Xcode target, associated domains entitlements, an apple-app-site-association (AASA) file served over HTTPS, Smart App Banner meta tags, App Store Connect metadata, and dual provisioning profiles. This Skill walks through the entire setup so nothing is missed. ## Core Features & Use Cases - App Clip target scaffolding: Uses bun create target clip with @bacons/apple-targets to generate the Clip target in targets/clip/ with its own config plugin and Info.plist. - AASA and associated domains: Configures applinks: and appclips: entitlements, generates and hosts the apple-app-site-association JSON via EAS Hosting, and adds the Smart App Banner meta tag in src/app/+html.tsx. - Store submission: Registers bundle IDs with bunx setup-safari, builds both targets with bunx testflight, and pushes App Clip metadata (invocation URLs, header image) via eas metadata:push. - Use Case: You have an Expo app live on the App Store and want users to launch a lightweight Clip from a URL on your marketing site. Follow the steps to add the Clip target, host the AASA file, and submit a TestFlight build containing both targets. ## Quick Start Ask the agent to add an iOS App Clip target to your Expo app and configure the associated domains, AASA file, and TestFlight build for your domain.

Frequently Asked Questions about expo-app-clip

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I add an App Clip to an Expo app?

Run `bun create target clip` after setting `ios.bundleIdentifier` and `appleTeamId` in app.json. This installs @bacons/apple-targets and generates the Clip target under `targets/clip/` with its own config plugin and Info.plist.

How do I host an apple-app-site-association file for App Clips?

Place the AASA JSON at `public/.well-known/apple-app-site-association` with an `appclips` block listing your Clip's full app ID, then export the web build and deploy with EAS Hosting. iOS fetches it over HTTPS from your domain to authorize Clip invocation.

Does an Expo App Clip require an Apple Developer account?

Yes. Adding the Clip target is open source, but shipping one requires Apple Developer Program membership, App Store review, and an HTTPS-hosted AASA file. Building via EAS Build or `bunx testflight` also consumes your EAS plan's build minutes.

Why does expo prebuild warn about missing associated domains for my App Clip?

The warning appears when the Clip target lacks the associated domains entitlement. Add `appclips:your-domain` to the entitlements in `targets/clip/expo-target.config.js` and include both `applinks:` and `appclips:` entries in app.json.

Can JavaScript detect when the app is running inside an App Clip?

Yes, by creating a local Expo module that checks for the NSAppClip key in the bundle's Info.plist and exposes an `isAppClip` constant. The module can also present an SKOverlay prompt to recommend installing the full app.