Build and deploy iOS app to connected iPhone via USB. Fast deployment (~8-10 seconds) for development iteration. Use when deploying, installing, or building apps to physical iPhone.
Scanned 2/12/2026
Install via CLI
openskills install majiayu000/claude-skill-registry---
name: ios-deploy-usb
description: Build and deploy iOS app to connected iPhone via USB. Fast deployment (~8-10 seconds) for development iteration. Use when deploying, installing, or building apps to physical iPhone.
---
# iOS USB Deploy
## Overview
Builds an iOS app using xcodebuild and installs it directly to a USB-connected iPhone. This is the fastest way to test on real hardware during development, taking only 8-10 seconds vs TestFlight's longer review process.
## When to Use
Invoke this skill when the user:
- Asks to "deploy to iPhone"
- Wants to "install the app on device"
- Says "build and deploy"
- Mentions testing on physical iPhone
- Wants to "push to device"
## Prerequisites
- iPhone connected via USB
- Device trusted (user tapped "Trust This Computer" on iPhone)
- Developer Mode enabled (Settings → Privacy & Security → Developer Mode)
- Valid code signing identity configured
- The project must be in an iOS app directory with .xcodeproj
## Instructions
1. Navigate to the iOS app directory (look for .xcodeproj file):
```bash
cd path/to/ios/app
```
2. Run the install-device.sh script:
```bash
./install-device.sh
```
3. The script will:
- Auto-detect the connected iPhone
- Build the app with xcodebuild (using LD="clang" workaround)
- Install the .app to the device
- Report success
4. After successful installation, automatically start the app:
```bash
./restart-app.sh
```
5. Inform the user:
- The build typically takes 8-10 seconds
- The app will be automatically launched on the iPhone
- If errors occur, check that iPhone is properly connected and trusted
## Expected Output
```
📱 Installing NoobTest directly to connected device...
✅ Found device: ashphone16
Device ID: 00008140-0001684124A2201C
🔨 Building...
✅ Build complete
📲 Installing to device...
🎉 Installation complete!
🔄 Restarting NoobTest on device...
✅ App restarted
The app is now running on your iPhone.
```
## Common Issues
**No device detected**:
- Check USB connection
- Ensure "Trust This Computer" was accepted on iPhone
- Enable Developer Mode in Settings
- Try disconnecting and reconnecting
**Build fails with linker error**:
- Script uses `LD="clang"` to avoid Homebrew linker conflicts
- This is automatically handled
**Script hangs during build or install**:
- **Most common cause**: VPN is enabled on the Mac
- If the install-device.sh script hangs and doesn't complete:
1. Ask the user: "Is your VPN currently enabled? If so, please disable it and try again."
2. Wait for user to disable VPN
3. Retry the deployment
- This happens because VPN can interfere with USB device communication
- After disabling VPN, the deployment should complete normally
## Implementation Details
The script:
- Uses `xcodebuild -showdestinations` to find the device ID
- Builds with `-allowProvisioningUpdates` for automatic code signing
- Finds the built .app in DerivedData by modification time
- Uses `xcrun devicectl device install app` to deploy
## Platform-Specific Notes
This is an iOS-specific skill. For Android deployment, use the `android-deploy-usb` skill.
No comments yet. Be the first to comment!