Skip to content
Back to skills

Ios Dev

ASecurity

iOS/React Native development with Expo. Use when working on mobile app, running builds, debugging device issues, or setting up development environment including tethering.

  • 666 stars
  • 0 votes
  • 0 copies
  • 5 views
  • Added February 9, 2026
developmentbashreacttestingdebuggingapisecurity

Works with

  • cli
  • api

Security analysis

A92/100
  • mediumUses curl or wget to download content
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro shows the line behind each finding and how to fix it

Scanned February 10, 2026

npx -y skills add majiayu000/claude-skill-registry --skill ios-dev --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Ios Dev?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Ios Dev
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/majiayu000-ios-dev/badge)](https://www.skillsdirectory.com/skills/majiayu000-ios-dev)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: ios-dev
description: iOS/React Native development with Expo. Use when working on mobile app, running builds, debugging device issues, or setting up development environment including tethering.
---

# iOS Development Guide

## Project Structure

```
mobile/
├── app/                    # Expo Router pages
│   ├── _layout.tsx
│   ├── index.tsx           # Home screen
│   └── room/[id].tsx       # Voice call room
├── src/
│   ├── components/         # UI components
│   ├── hooks/              # Custom hooks (WebRTC, Socket, Speech)
│   └── types/
├── ios/                    # Native iOS project (generated by prebuild)
└── .env                    # Environment variables
```

## Key Commands

```bash
cd mobile

# Development (WiFi - same network as Mac)
npx expo start --dev-client

# Development (Tethering - requires tunnel)
npx expo start --dev-client --tunnel

# Build for specific device
npx expo run:ios --device "DEVICE_NAME"

# Clean rebuild (after config changes)
npx expo prebuild --platform ios --clean

# List available devices
xcrun xctrace list devices
```

## Environment Configuration

```bash
# WiFi development
EXPO_PUBLIC_SIGNALING_SERVER_URL=http://192.168.x.x:3001

# Production (Render server)
EXPO_PUBLIC_SIGNALING_SERVER_URL=https://webrtc-signaling-xxxx.onrender.com
```

## Tethering Development

When Mac is connected to iPhone's Personal Hotspot:

1. **Problem**: iPhone cannot directly access devices on its own hotspot
2. **Solution**: Use ngrok tunnel

```bash
# Install ngrok (first time)
npm install -g @expo/ngrok@^4.1.0

# Start with tunnel
npx expo start --dev-client --tunnel

# Get tunnel URL
curl -s http://127.0.0.1:4040/api/tunnels | grep -o '"public_url":"https://[^"]*"'
```

**Important**: Use **HTTPS** URL (iOS App Transport Security requirement)

## Troubleshooting

| Issue | Solution |
|-------|----------|
| "Device is busy" | Unlock iPhone, reconnect USB |
| Metro connection fails | Check IP address, or use `--tunnel` |
| "main" not registered | Restart Metro with `--clear` |
| Build fails after config change | Run `npx expo prebuild --clean` |
| Simulator no audio | Use real device for audio testing |

## Development Workflow

1. Start signaling server: `cd server && npm run dev`
2. Start Metro: `cd mobile && npx expo start --dev-client`
3. Open app on iPhone, enter Metro URL
4. For code changes: Hot reload automatic
5. For native changes: Rebuild with `npx expo run:ios --device`

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.