iOS Image (vphone-cli)

openDeviceCloud expects iOS devices to be created from managed images. That means your first iOS task is usually importing a prepared VM directory into the image catalog.

1. Prepare A VM On The Agent Host

Follow the vphone-cli setup flow on the agent host and create a bootstrapped VM directory that the agent can access.

Common locations are inside the agent runtime tree, for example:

$HOME/.open-device-cloud/runtime/vms/base-ios-template

2. Import The VM As A Managed Image

Send the source directory to the backend:

curl -s http://127.0.0.1:8000/api/images \
  -H 'Content-Type: application/json' \
  -d '{
    "agent_id": "00000000-0000-0000-0000-000000000000",
    "name": "iPhone 15 Base",
    "model": "iPhone 15",
    "os_version": "17.4",
    "source_path": "/Users/agent/.open-device-cloud/runtime/vms/base-ios-template"
  }'

This creates a managed image under the agent runtime image store.

3. Confirm The Image Exists

curl -s http://127.0.0.1:8000/api/images

Look for an item similar to:

  • platform: "ios"

  • source: "imported"

  • runtime_path: "runtime/images/<image-id>"

4. Optional: Capture A Running Device Later

Once you have created and customized a device, stop it and capture it into a new image:

curl -s http://127.0.0.1:8000/api/images/from-device \
  -H 'Content-Type: application/json' \
  -d '{
    "device_id": "00000000-0000-0000-0000-000000000000",
    "name": "iPhone 15 QA Snapshot"
  }'

Note

For iOS, the backend rejects device creation requests that do not include a managed image_id.