vphone-cli-ios-lane

Runs iOS E2E tests on vphone-cli virtual iPhones with Simulator fallback and SIP gating.

1|Updated Aug 27, 2025
One-click install
npx skills add https://github.com/IgorGanapolsky/Random-Timer --skill vphone-cli-ios-lane-igorganapolsky
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: vphone-cli-ios-lane
Source: https://github.com/IgorGanapolsky/Random-Timer/tree/main/.claude/skills/vphone-cli-ios-lane
Command: npx skills add https://github.com/IgorGanapolsky/Random-Timer --skill vphone-cli-ios-lane-igorganapolsky

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? iOS end-to-end testing for the Random Timer app often depends on a single physical CEO iPhone, creating contention and blocked QA loops. This Skill routes device E2E work to a Lakr233/vphone-cli virtual iPhone (or iOS Simulator) instead, with a doctor check that fails closed when SIP/AMFI requirements are not met. ## Core Features & Use Cases - Environment gating: Runs python3 scripts/vphone_doctor.py --json first and requires citing status and blockers before any device work. - Ordered device preference: Enforces vphone (when ready) → iOS Simulator + Maestro → never the CEO physical handset. - Fail-closed fallback: When status is blocked_sip_amfi or blocked_cli_missing, runs ./scripts/device-tests/run-ios-simulator.sh --maestro --smoke-only. - Use Case: Before running a StoreKit sandbox paywall smoke test, an agent checks vphone readiness, and if blocked, automatically falls back to a Maestro Simulator smoke run without touching the physical phone. ## Quick Start Ask the agent to run the vphone doctor check and then execute an iOS smoke test on the virtual iPhone or Simulator fallback.

Frequently Asked Questions about vphone-cli-ios-lane

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

FAQPage Schema
How do I run iOS E2E tests without a physical iPhone?▼

Use vphone-cli to boot a virtual iPhone via Apple Virtualization.framework, or fall back to the iOS Simulator with Maestro. Run `python3 scripts/vphone_doctor.py --json` first to confirm the environment is ready before launching any device test.

What is vphone-cli and how does it work for iOS testing?▼

vphone-cli (Lakr233/vphone-cli, MIT) boots a virtual iPhone using Apple's Virtualization.framework PCC research VM. It supports variants like `less`, `regular`, `jb`, and `exp`, with `less` or `regular` recommended for app QA.

Why does vphone-cli require SIP changes on macOS?▼

The virtual iPhone guest needs AMFI restrictions relaxed, which requires Recovery-mode changes like `csrutil enable --without debug` plus allow-research-guests, or full `csrutil disable` with boot-args. Only the CEO may approve these changes; agents never flip SIP themselves.

What happens when vphone-cli is blocked or not installed?▼

When the doctor reports `blocked_sip_amfi` or `blocked_cli_missing`, the workflow fails closed and runs the Simulator fallback: `./scripts/device-tests/run-ios-simulator.sh --maestro --smoke-only`. The CEO physical phone is never used as a fallback.

Can I claim device E2E coverage using vphone-cli?▼

Only when `claim_device_e2e_on_vphone` is true and Maestro exits with code 0. Otherwise results from the virtual iPhone must not be reported as device E2E coverage.