Apple Targets skill

Evan Bacon's skill teaches an agent to add widgets, App Clips, Safari extensions and other native Apple targets to an Expo app

  • 1,408 ★ on the repository
  • Last commit
Skill

Extended access

Why this level

  • At prebuild the plugin generates the Xcode project and entitlements files in your repository
  • The create-target command and prebuild with the --clean flag regenerate the ios folder
All reasons and checks

evanbacon/expo-apple-targets

Install

In your terminal, with SkillFoxx CLI

npx skillfoxx add skills/apple-targets

Detects the agents on your machine, shows the access level and pins the version.

Other ways to install

Access and checks

How we review

Extended accessThe tool runs code or makes network calls and only reads external data.

  • At prebuild the plugin generates the Xcode project and entitlements files in your repository
  • The create-target command and prebuild with the --clean flag regenerate the ios folder

This is third-party code. Review the repository files before installing.

What it does

Apple Targets is an Expo config plugin with a skill alongside it. The plugin generates native Apple targets, such as widgets or App Clips, and links them to the Xcode project without storing them in the ios folder. Target files live in the root targets folder, so they survive each prebuild run with the --clean flag. With the project open in Xcode you develop a target in the virtual expo:targets folder. The apple-targets skill is written for the agent. It holds a separate reference document for more than forty target types: widgets, App Clips, share and notification extensions, watchOS apps, Safari extensions, App Intents, password and passkey autofill, and Screen Time controls. Each document links to Apple documentation and WWDC sessions and covers the lifecycle, use cases, ready Swift code, minimum OS versions and common pitfalls. When a user asks for a home screen presence or a share sheet, the agent opens the matching document and configures the target through expo-target.config.js, where settings and entitlements are defined.

Who it is for. Mobile developers on React Native and Expo who need iOS widgets and extensions and find Swift and Xcode harder than JavaScript.

Good fit when

  • An Expo app needs a home screen widget, and the native code has to be written in Swift
  • An App Clip or a Safari extension is being added and it is unclear which files and entitlements it takes
  • The agent must pick the right extension type for a task such as showing data on the lock screen
  • A target builds in Xcode but fails on signing or entitlements, and you need a walk through common errors

Not a fit when

  • The project is pure SwiftUI without Expo: the plugin and skill depend on Expo continuous native generation
  • The app does not use prebuild and maintains the ios folder by hand
  • You need an ordinary screen inside React Native, which takes no Apple extension

Example request

Add a home screen widget to our Expo app that shows the daily step goal, and explain what to configure in Xcode

Limitations

The plugin needs CocoaPods 1.16.2 or newer on Ruby 3.2.0, Xcode 16 on macOS 15 and Expo SDK 53 or later. A target can only be built and signed on a Mac with Xcode and an Apple developer account. The skill itself carries reference material and examples and does not run a build. The root Info.plist of a target is not managed by the plugin and can be edited freely, while entitlements files are generated at prebuild and are not edited by hand. Each target type in the reference lists a minimum OS version, and it is worth checking it before you start.

How to disable. Delete the skill from .claude/skills or .agents/skills. To remove the plugin, uninstall the @bacons/apple-targets package and its entry in plugins in app.json, delete the targets folder and run npx expo prebuild -p ios --clean.

FAQ

How do I install the apple-targets skill?

Run npx skills add EvanBacon/expo-apple-targets/tree/main/skills/apple-targets. The command finds your installed agents and copies SKILL.md with its documents into .claude/skills or .agents/skills.

How do I create a first widget?

In an Expo project run npx create-target widget. The command creates files in the targets folder, installs @bacons/apple-targets and adds the plugin to the config. Then npx expo prebuild -p ios --clean generates the Xcode project, which you open with xed ios.

How many extension types does the skill cover?

More than forty: the skill folder holds about forty-six documents. They include widgets, App Clips, share, notification and Safari extensions, watchOS apps, App Intents and Screen Time controls.

Where do target files live if the ios folder can be regenerated?

In the root targets folder. Each subfolder holds expo-target.config.js, and the plugin links it to Xcode at prebuild. Resources from an assets subfolder are attached to the target automatically.

Do I need an Apple developer account?

Building and signing a target takes an Apple team ID. Set it in ios.appleTeamId in app.json or later, on the Signing & Capabilities tab in Xcode.

Discussion

No questions or reviews yet.

Skills
Editors’ pick

Expo's official agent skills: building, deploying, updating and debugging Expo and EAS apps

PluginExtended access4.1KRepository stars

Skills for Apple development: SwiftUI, UIKit and Liquid Glass references, Swift 6 guides and a router for iOS 26+ tasks

SkillMinimal access355Repository stars

An agent checks Apple app code against every App Store guideline and shows what could trigger a rejection before you submit

SkillMinimal access443Repository stars

A set of skills for iOS 26+, Swift 6.3 and SwiftUI that gives the agent knowledge of modern Apple frameworks

SkillMinimal access1.3KRepository stars

Two skills for building mobile screens at top-app quality: studying real screens through the Appllama MCP and a strict bar for native Expo and React Native UI

SkillExtended access4.9KRepository stars

A skill that builds in-app screen and element capture for a SwiftUI app and loops it across every locale for the App Store

SkillExtended access265Repository stars

Comparison with similar tools

Cards that share the main search query, and how they differ.

ToolOfficialRepository starsMain difference
Apple Targets (this card)no1,408
Expo Skillsno4,069the official Expo skills cover building, deploying and debugging an app, while this one covers native Apple targets inside the project
SwiftUI Expert Skillno3,830teaches writing SwiftUI in a native project, while here Swift targets are attached to an Expo app

README in short

The README explains the idea: Apple targets sit outside the ios folder and survive regenerating the project. It then walks through the steps from npx create-target to a build in Xcode, how the targets folder works, entitlements and details of individual target types. The agent skill lives in the skills/apple-targets directory.

README badge

Original SKILL.md

---
name: apple-targets
description: Build, configure, and debug native Apple extension and target types (widgets, App Clips, share extensions, watchOS apps, Safari extensions, notification extensions, VPN/network extensions, and 40+ more) in an Expo app using the @bacons/apple-targets config plugin. Use when a user wants to add home screen presence, share sheets, custom keyboards, Siri/App Intents, push notification handling, AutoFill/passkeys, Screen Time controls, or any other Apple app extension to a React Native / Expo project.
---

# Apple Extension Target Skills Reference

This directory contains comprehensive skill documents for all supported Apple extension and target types. Each skill document provides everything an AI agent needs to understand, implement, and troubleshoot a specific Apple extension type, including:

- Apple documentation links and WWDC session references
- Runtime behavior and lifecycle explanation
- Real-world use cases and implementation patterns
- Production-ready Swift code examples
- Platform availability and version requirements
- Common gotchas and debugging tips

## Installing This Skill

Install this skill into your coding agent (Claude Code, Cursor, Codex, etc.) with [`npx skills`](https://github.com/vercel-labs/skills):

```sh
npx skills add EvanBacon/expo-apple-targets/tree/main/skills/apple-targets
```

The CLI auto-detects which agents you have installed and copies `SKILL.md` (plus the supporting reference docs in this directory) into the agent's skills directory (e.g. `.claude/skills/` or `.agents/skills/`). Once installed, the agent loads this guidance automatically whenever you ask it to build an Apple extension or target.

## How to Use These Skills

**For AI Agents:**

1. **When a user asks about a specific extension type** (e.g., "How do I build a widget?" or "I need to add a share extension"), read the corresponding skill document to get complete implementation guidance.

2. **When planning a feature** that might require an extension (e.g., "Add home screen presence" → read `widget.md`), consult the skill document to understand requirements and constraints.

3. **When debugging extension issues**, refer to the "Gotchas" section of the relevant skill document — these capture common pitfalls from Apple Developer Forums and real-world experience.

4. **When uncertain which extension type fits a use case**, scan the "Use Cases" sections across related skills to find the best match.

**Structure of Each Skill Document:**

Every skill document follows the template defined in `_template.md`:
- **Frontmatter**: Title, one-line description, minimum OS version
- **Apple Documentation**: Official reference links
- **WWDC History**: Session links showing evolution of the feature
- **What It Does**: Step-by-step runtime behavior

Report a problem

Foxx AIApple Targets
Foxx AI

I am Foxx AI and I have already vetted this tool. Ask about install, setup or anything else, and I will keep it simple.