ios-qa

Runs vision-driven QA loops against SwiftUI apps on physical iPhones over USB.

Updated Sep 13, 2026
One-click install
npx skills add https://github.com/abdulazeezoj/monovella-poc --skill ios-qa-abdulazeezoj
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: ios-qa
Source: https://github.com/abdulazeezoj/monovella-poc/tree/main/.agents/skills/gstack/ios-qa
Command: npx skills add https://github.com/abdulazeezoj/monovella-poc --skill ios-qa-abdulazeezoj

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Testing SwiftUI apps on real iPhones normally requires manual tapping or simulator-only automation that misses device-specific bugs. This Skill connects to a physical iPhone over a USB CoreDevice tunnel and drives an autonomous screenshot-analyze-act-verify loop against the running app, so bugs surface on real hardware without a human holding the phone. ## Core Features & Use Cases - Live-device agent loop: Connects via CoreDevice IPv6 tunnel, reads Swift source to map every screen, then iterates screenshot, analyze, decide, act, verify against an embedded HTTP StateServer in the app under test. - DebugBridge instrumentation: Ships Swift and Objective-C templates (StateServer, touch synthesis, accessibility tree snapshot, debug overlay) that are compiled into DEBUG builds only, with bearer-token auth, session locking, and snapshot/restore of app state. - Remote QA over Tailscale: Optionally exposes the device so remote HTTP-capable agents can run iOS QA without physical access to the hardware. - Use Case: Ask the agent to QA your iPhone app before a release; it walks every screen on the connected device, taps through flows, and reports concrete bugs with file and line references. ## Quick Start Ask the agent to run iOS QA on your iPhone app with the device connected over USB.

Frequently Asked Questions about ios-qa

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I test my SwiftUI app on a real iPhone automatically?

Connect the iPhone over USB, integrate the DEBUG-only DebugBridge package into the app, then invoke the ios-qa skill. It opens a CoreDevice IPv6 tunnel and runs a screenshot-analyze-act-verify loop against the app's embedded StateServer over HTTP.

How does automated tapping work on SwiftUI buttons?

Taps prefer accessibility activation, falling back to KIF-derived UITouch synthesis with IOHIDEvent digitizer events. On iOS 18+ it uses _UIHitTestContext so SwiftUI Buttons resolve correctly instead of silently dropping the tap.

Can remote agents run iOS QA without the physical device?

Yes. The skill can expose the device over Tailscale so any HTTP-capable remote agent, such as OpenClaw or Codex, can drive the same StateServer endpoints from anywhere without touching the hardware.

Does the DebugBridge code ship in Release builds?

No. Every file is guarded by #if DEBUG, including the Objective-C touch synthesis, so Release builds contain no DebugBridge symbols or private API references. A CI check runs nm on the Release binary to enforce this.

Is the embedded HTTP server in the app secure?

The StateServer binds loopback plus the CoreDevice ULA range only, requires a rotated bearer token for all endpoints except healthz, and enforces a per-device session lock with a five-minute mutation timeout.