Build, install, launch, inspect, and test iOS apps with Simulator and simctl. Use for simulator lifecycle, screenshots, logs, permissions, locations, push payloads, app containers, and repeatable local or CI verification.
91%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Passed
No findings from the security scan
Use Simulator as a reproducible verification environment while keeping device selection and destructive operations explicit.
This skill owns Simulator discovery, boot/shutdown, app install/launch, screenshots, logs, permissions, locations, push simulation, containers, and CI lifecycle. It does not replace real-device verification for hardware, performance, networking conditions, push delivery, camera, Bluetooth, NFC, or other device-only behavior.
Resolve an explicit simulator UDID before mutating state. Prefer an already booted suitable device. Do not erase or delete all simulators, broad CoreSimulator directories, or unrelated devices as a routine recovery step. If an erase/delete is genuinely needed, verify the exact target and preserve user data unless the task authorizes its removal.
Read simctl Command Reference for command syntax and less common operations.
xcrun simctl list devices available
xcrun simctl bootstatus <UDID> -b
xcodebuild -project App.xcodeproj -scheme App \
-destination 'platform=iOS Simulator,id=<UDID>' build
xcrun simctl install <UDID> /path/to/App.app
xcrun simctl launch <UDID> com.example.app
xcrun simctl io <UDID> screenshot /tmp/app.pngUse parsed command output or an explicit known UDID. Do not hardcode a device name when multiple runtimes can contain the same name.
get_app_container before inspecting sandboxed files.When launch or boot fails, inspect device state and the exact error first. Try the narrowest recovery: terminate the app, relaunch, shut down the chosen simulator, or recreate only the disposable device created for the task. Treat erase/delete as destructive and target a validated UDID.
Do not present broad cache deletion or erase all as a default fix. Stop and report when recovery would remove user-owned simulator data outside the requested scope.
Choose checks proportional to the change:
simctl and devicectl can reboot simulators. Runtimes ship a pre-built dyld cache for faster first launch.devicectl JSON output version 5 deprecates hardwareProperties, deviceProperties, and connectionProperties in favor of properties.Sources: https://sosumi.ai/documentation/xcode-release-notes/xcode-27-release-notes, https://sosumi.ai/documentation/ios-ipados-release-notes/ios-ipados-27_2-release-notes
erase all or deleting CoreSimulator folders as a default troubleshooting step.thienqo/ios-skills
6bf8b62
Also appears in
since Oct 29, 2026
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.