| name | ios-physical-device |
| description | Prepare and run privacy-aware physical iPhone automation with Xcode, WDA/Appium, or XCTest UI tests. |
iOS Physical Device
Use this skill for physical iPhone automation.
Hard Boundary
Do not install apps, start WDA, launch host apps, or take screenshots without explicit user approval for the target device and adapter.
Preflight
Check:
- Xcode version
xcrun devicectl availability
- device visibility
- device lock/readiness state
- signing keychain and identity availability
- Automation Mode readiness
- privacy policy in the adapter
Pattern
- Resolve the device by adapter-provided name.
- Fail fast if the device is locked or not launch-ready.
- Start with readiness mode: verify Xcode,
devicectl, approved-device resolution, lock state, and Automation Mode without install, launch, WDA/Appium, screenshots, or UI tests.
- Build with explicit destination and derived data path only after readiness receipts are repeatable.
- Verify the built bundle identifier before installing.
- Install or test only the expected app when the private approval covers that action.
- Capture artifacts according to the privacy policy.
- Emit and validate an
ios-physical-device/v1 receipt.
Use prepare-ios-physical-device and validate-ios-physical-device-receipt when the repo uses Apple Agent Kit. The public output should name only a sanitized device alias, command classes, pass/fail status, hashes, counts, and withheld evidence reasons.
Automation Mode
If Xcode times out while enabling Automation Mode, retry only within the adapter-configured limit and surface a clear operator action. Do not loop indefinitely.