The Expo Apple Targets CLI provides commands for scaffolding and managing Apple targets in your Expo project.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/EvanBacon/expo-apple-targets/llms.txt
Use this file to discover all available pages before exploring further.
create-target
Create a new Apple target with Swift templates and configuration files.Basic syntax
Arguments
The type of target to create. If omitted, displays an interactive selection menu.Examples:
widget, clip, share, action, notification-content, etc.Options
Skip installing the
@bacons/apple-targets package.Use this when the package is already installed or when you want to install dependencies manually.Display the current version of create-target.Alias:
-vShow help information with usage examples and available options.Alias:
-hCommand output
Successful creation
When a target is successfully created:Terminal
Version check
Terminal
Help output
Terminal
Interactive selection
Terminal
Overwrite warning
Terminal
Workflow
The typical workflow for creating and working with targets:1. Create the target
2. Review generated files
3. Configure the target
Edit the config file to customize icon, colors, entitlements, etc:targets/widget/expo-target.config.js
4. Generate Xcode project
Terminal output
5. Open in Xcode
6. Build and test
- Select your target from the Xcode scheme picker
- Build and run (⌘R)
- Develop Swift code in the
expo:targetsfolder - Changes are saved to
/targets/widget/automatically
7. Rebuild after config changes
If you modifyexpo-target.config.js or app.json:
Target types reference
Quick reference for commonly used target types:| Target Type | Description | Common Use Cases |
|---|---|---|
widget | WidgetKit home screen widget | Live data display, quick actions |
clip | App Clip | Instant experiences, QR codes |
share | Share extension | Share sheet integration |
action | Action extension | Context menu actions |
notification-content | Rich notification UI | Custom notification layouts |
notification-service | Notification service | Modify notifications before display |
intent | Siri Intent extension | Siri shortcuts, voice commands |
intent-ui | Siri Intent UI | Custom UI for Siri shortcuts |
keyboard | Custom keyboard | Third-party keyboards |
safari | Safari extension | Browser extensions |
watch | Apple Watch app | Companion watch apps |
watch-widget | Watch face complication | Watch complications |
content-blocker | Safari content blocker | Ad blockers, tracking protection |
Network extensions
| Target Type | Description |
|---|---|
network-packet-tunnel | VPN packet tunnel provider |
network-app-proxy | Per-app VPN proxy |
network-filter-data | Network content filter |
network-dns-proxy | DNS proxy provider |
File and authentication
| Target Type | Description |
|---|---|
file-provider | Document provider extension |
file-provider-ui | Document provider UI |
credentials-provider | Password AutoFill provider |
account-auth | Account authentication |
Media and broadcast
| Target Type | Description |
|---|---|
broadcast-upload | ReplayKit broadcast upload |
broadcast-setup-ui | ReplayKit setup UI |
photo-editing | Photo editing extension |
Other extensions
| Target Type | Description |
|---|---|
quicklook-thumbnail | Quick Look thumbnails |
quicklook-preview | Quick Look previews |
spotlight | Spotlight indexing |
call-directory | Call blocking and identification |
message-filter | SMS/MMS filtering |
Advanced usage
Multiple targets
Create multiple targets for complex apps:Custom target names
The target type and directory name don’t have to match. You can create multiple targets of the same type:expo-target.config.js with type: "widget".
CI/CD integration
.github/workflows/build.yml
Debugging
Enable debug mode
Terminal output
Common issues
Issue:Could not find Expo project root directory
See also
- Configuration Reference - Configure targets with expo-target.config.js
- Target Types - Complete guide to all target types
- Xcode Integration - Develop targets in Xcode