ns-setup-ios — Local iOS dev environment
SkillDev toolsSet up the local iOS dev/build toolchain for NowStack Mobile: Xcode, Simulator, CocoaPods, Watchman, mobile deps, and first `expo run:ios`. Use for `/ns setup-ios`, simulator preview, `expo run:ios` failures, or before local TestFlight builds. macOS only; signing is `/ns ios setup`.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the ns-setup-ios — Local iOS dev environment skill
What this skill tells your AI
The instructions your AI receives, as published by melvynx/saveit.now in .agents/skills/ns-setup-ios/SKILL.md and read by ahel’s review.
It is NOT /ns ios setup — that wires EAS + Apple signing for TestFlight builds. This skill never touches an Apple account, never signs, never uploads. Everything here runs on this machine against the Simulator.
Detect what's missing, propose the whole batch in one confirmation, install, then run the first build.
<platform_guard> iOS development requires macOS — Xcode and the Simulator do not exist on Linux/Windows.
uname -s # must be "Darwin"
If not Darwin: stop. Explain that local iOS builds need a Mac, and the alternatives are (a) an EAS cloud iOS build (/ns ios testflight, builds on Apple-hosted macOS) or (b) developing the Android/web surfaces locally. Do not attempt any install.
</platform_guard>
| Component | Check | Fix (macOS) |
|---|---|---|
| Xcode.app (~7 GB, the full IDE — not just CLT) | xcodebuild -version succeeds | Install via App Store, or brew install xcodes && xcodes install --latest. If absent, offer to run /ns doctor (it owns the big GUI install). |
| Active developer dir → Xcode (not the CLT shim) | xcode-select -p ends in /Xcode.app/Contents/Developer | sudo xcode-select -s /Applications/Xcode.app/Contents/Developer |
| Xcode license accepted | xcodebuild -version doesn't error about a license | sudo xcodebuild -license accept |
| First-launch components | n/a (idempotent) | xcodebuild -runFirstLaunch |
| iOS Simulator runtime (an iPhone device available) | xcrun simctl list devices available | grep -i iphone returns a row | xcodebuild -downloadPlatform iOS (Xcode 15+), or Xcode ▸ Settings ▸ Components |
CocoaPods (prebuild runs pod install) | pod --version | brew install cocoapods |
| Watchman (Metro file watching) | command -v watchman | brew install watchman |
Mobile node_modules (provides the expo binary) | ls mobile-app/node_modules/.bin/expo | cd mobile-app && npm install — see note ↓ |
Mobile deps note: mobile-app/.npmrc pins legacy-peer-deps=true (Expo + React 19 pull react-dom at a newer patch than the pinned react, which trips npm's strict peer resolver → empty node_modules → expo: command not found). Keep that file; verify the tree actually landed, don't trust a bare "exit 0". This overlaps /ns onboard step 2 — skip if already populated.
Signals
- GitHub stars
- 31
- Forks
- 5
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
ns-setup-ios- Source
- github.com/melvynx/saveit.now