Mobile Virtual Device Lab
Use this skill when the user asks to install, configure, boot, control, reset, inspect, automate, or troubleshoot mobile virtual devices.
Read tools/README.md and references/mobile-quality-and-release.md when
installation, simulator/emulator command shape, host mutation, device evidence,
or cleanup boundaries matter.
Boundaries
- Do not silently install or upgrade Xcode, Android Studio, Android SDK packages, emulator system images, simulator runtimes, Expo Orbit, app-store CLIs, MCP servers, or automation tools.
- Do not erase AVDs, simulators, snapshots, app data, logs, screenshots, or provider-shared tool directories without explicit approval.
- Treat Android SDKs, AVDs, emulator images, Xcode components, simulator runtimes, CoreSimulator devices, app installs, logs, screenshots, videos, and derived build output as host or project runtime state.
- Keep signing keys, provisioning profiles, API keys, service-account files, app-store credentials, crash dumps, screenshots, and device logs out of Role source.
Workflow
- Classify the request:
- capability check;
- install or repair toolchain;
- create virtual device;
- boot or stop device;
- install and launch app;
- capture logs, screenshots, videos, or performance evidence;
- wipe/reset/cleanup;
- automate tests.
- Identify host and project context:
- host OS and CPU architecture;
- current stack: native iOS, native Android, React Native, Expo, Flutter, SwiftUI, or Jetpack Compose;
- repo scripts and build outputs;
- available tools such as
xcrun,xcodebuild,sdkmanager,avdmanager,emulator,adb,npx expo,eas, andflutter; - existing simulator runtimes, AVD names, connected devices, and SDK paths.
- Start with non-mutating checks:
- iOS/macOS:
xcode-select -p,xcodebuild -version, andxcrun simctl list. - Android:
sdkmanager --list,avdmanager list,emulator -list-avds, andadb devices. - Expo/RN: package scripts,
npx expo diagnostics,eas --version, and Metro/dev-client setup when present. - Flutter:
flutter doctor,flutter devices, andflutter emulators.
- iOS/macOS:
- Produce an install/control plan before mutation:
- exact SDK packages, system images, simulator runtimes, AVD names, device profiles, app artifact paths, environment variables, and commands;
- expected disk/network/time impact;
- cleanup and rollback approach;
- commands that require user or Host Adapter approval.
- Apply only after approval:
- Android: install SDK packages, create AVDs, boot emulators, install APKs, launch activities, inspect logs, capture screenshots, and shut down or wipe when requested.
- iOS: install Xcode components or simulator runtimes, create or boot
simulators with
simctl, install simulator-compatible apps, launch bundle identifiers, capture screenshots/videos, and shut down or erase when requested. - Expo/RN/Flutter: prefer project-native scripts for build, install, launch, and test flows.
- Report evidence:
- tools and versions;
- devices created or used;
- app artifact installed;
- commands run;
- findings and failures;
- files produced outside Role source;
- cleanup status and remaining host state.
Output
Virtual Device Lab
- scope:
- host:
- stack:
- non-mutating checks:
- proposed mutations:
- approval needed:
- commands:
- evidence:
- cleanup:
- residual risk:
Do not block all mobile review if virtual devices are unavailable. Continue with source-level review and state which emulator or simulator evidence is missing.