expo-app-clip

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

Updated Sep 11, 2026
One-click install
npx skills add https://github.com/CYRUS-pinto/pi-bot --skill expo-app-clip-cyrus-pinto
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: expo-app-clip
Source: https://github.com/CYRUS-pinto/pi-bot/tree/main/.agents/skills/expo-app-clip
Command: npx skills add https://github.com/CYRUS-pinto/pi-bot --skill expo-app-clip-cyrus-pinto

SYSTEM DOCUMENTATION & REQUIREMENTS

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

What problem does it solve? Setting up an iOS App Clip for an Expo app involves many error-prone manual steps: creating the native target, configuring associated domains, hosting an apple-app-site-association file, registering bundle IDs with Apple, and submitting to TestFlight. This Skill walks through the entire pipeline so the Clip can be invoked from a URL on your domain. ## Core Features & Use Cases - App Clip Target Creation: Uses bun create target clip with @bacons/apple-targets to scaffold the Clip 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 file via EAS Hosting, and adds the Smart App Banner meta tag. - App Store and TestFlight Setup: Registers bundle IDs, syncs capabilities, configures App Clip metadata in store.config.json, and submits builds with bunx testflight. - Use Case: You have an Expo app and want users to launch a lightweight Clip from a URL on your website without installing the full app, including an SKOverlay prompt to install the parent app from within the Clip. ## Quick Start Ask the assistant to add an iOS App Clip target to your Expo app and configure the associated domain and AASA file for your website.

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 `bundleIdentifier` and `appleTeamId` in app.json. This installs @bacons/apple-targets and scaffolds the Clip in targets/clip/ with its config plugin and Info.plist.

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

Place the AASA file with no extension in public/.well-known/ and deploy with `bunx expo export -p web` and `eas deploy --prod`. It must include an appclips block listing the Clip's full app ID as <TeamID>.<BundleID>.

Does an Expo App Clip require an Apple Developer account?

Yes. Adding the target is open source, but shipping requires Apple Developer Program membership and App Store review. The AASA file must also be served over HTTPS on your domain.

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

The warning appears when the Clip target lacks the associated domains entitlement. Add `appclips:yourdomain` to the entitlements in targets/clip/expo-target.config.js and to ios.associatedDomains in app.json.

How do I detect App Clip context in React Native JavaScript?

Create a local Expo module with `bunx create-expo-module --local` that checks for the NSAppClip key in the bundle's Info.plist. The module can expose an isAppClip constant and present an SKOverlay install prompt.

What are the limitations of App Clip metadata in App Store Connect?

Only up to 3 invocation URLs can launch the Clip, and the header image must be a 1800x1200 PNG with no opacity. Configure these under apple.appClip in store.config.json and push with `eas metadata:push`.