iOS 12 USB pairing with Anka VM for iOS CI

In iOS 12 the lockdown procedure (mutual authentication of USB host and iOS device on each other) was modified. This lockdown procedure affects the workflow of attaching iOS devices to Anka VMs with USB pass-through for iOS CI real device testing using Anka Build or Anka Flow.



We have fixed this issue in Anka version 1.4.3 and also determined that a specific set of instructions are required to pair iOS 12 device with the Anka VM Template and then it can be used in a fully automated manner as part of CI.



Step 1 – If the device in the past, was already connected to host (on which the VM is going to run), then remove host record from the device DB, i.e., make the device forget the host. Execute the following to do this.

  • Detach the device from the host
  • On the device, Select Settings -> General -> Reset -> Reset Network Settings.
  • Step 2 – Attach the device to host and “Don’t Trust” the host in the dialog box that appears on the Device.




    If a dialog box also appears on the host, don’t ‘trust’ the device on the host.




    Step 3 – In the terminal window on the host, claim the device with these commands.


    sudo anka usb list

    sudo anka sub claim -n ios12iphone iphone/location

    “-n” flag can be used to associate a name with the claimed device. You can claim multiple devices connected to the same host with the same name, thus creating a group(name).






    Step 4 – Attach the device to the VM.


    anka start -d iPhone VMNAME


    The trust dialog will appear again on the device. Click on ‘trust’ the VM.





    and allow access to the device in the VM (trust device)





    Now the VM and the device are paired and accessible in Xcode and iTunes. You could detach the device, suspend or stop the VM. Next sessions of the VM or its clones on any other host should silently connect the device without additional prompts.




    Important – To pair another iOS12 device or other VMs, repeat steps 2 – 5, and make sure to “Don’t Trust” host on which you are performing the pairing. Contact us in our slack channel with additional questions on how to use the real devices with Anka Build dynamically provisioned VMs.

    Share this post

    Anka wordmark above a coding agent sending a commit to a CI agent in a fresh Anka VM inside a network boundary, with the Git mirror allowed and the host Mac and neighbor VM blocked
    Why CI Agents for macOS and iOS Need Network-Secure Disposable Environments
    AI coding agents hand commits to CI agents that make decisions while the job runs. On macOS and iOS, each CI agent needs a fresh VM per commit and a network boundary that limits what it can reach.
    Read More
    Anka wordmark above two macOS VMs and the host Mac, with VM-to-host and VM-to-VM links blocked by block local and --no-local
    Network Isolation for macOS VMs: VM-to-VM, VM-to-Host, and ARP Spoofing Prevention
    Meet macOS VM compliance requirements with Anka: block local for VM-to-VM and VM-to-host isolation, --no-local for a hard cut from the host, ARP spoofing prevention, and ipf-style IP filters on shared networking.
    Read More
    Diagram of Anka Build Cloud monitoring: anka_agent and Controller feed the Anka Prometheus Exporter, Prometheus scrapes it, promtail pushes Node and container logs to Loki, and Grafana reads both for dashboards and alerts
    Monitor Anka Build Cloud Disk Space with Prometheus, Grafana, and Loki
    Anka Build Cloud exposes node disk, capacity, and instance metrics through the Anka Prometheus Exporter, and its agent and container logs reach Loki through promtail. Here is how to scrape the metrics into Prometheus, graph free disk in Grafana, and alert...
    Read More
    Cursor Origin logo above an Origin PR to Buildkite to Anka VM flow for macOS CI on hardware you control.
    Cursor Origin, Buildkite, and Anka: macOS CI on Agent-Hosted Repos
    Cursor Origin now connects Buildkite for CI on Origin-hosted repos. Pair that with Anka's Buildkite plugin so each job runs in a disposable macOS VM on hardware you control.
    Read More
    Anka wordmark above two isolated VM windows: macOS 14 with Xcode 15, and macOS 15 with Xcode 16, on one Mac.
    Running Several macOS and Xcode Versions Side by Side on One Mac
    Run concurrent Anka macOS VMs with different OS and Xcode stacks on one host: density math for vCPU and RAM, and why per-project templates beat a shared mutable machine.
    Read More
    anka-and-kubernetes
    On-Demand macOS VMs in Azure DevOps Pipelines with Anka
    Run macOS VMs in Azure DevOps Pipelines with Anka. Anklet-style on-demand agents are blocked by Microsoft self-hosted pools today; use a registered agent plus per-job Anka VMs.
    Read More
    AWS + Anka Build Cost Diagramv3
    Ephemeral macOS VMs on AWS EC2 Mac with Anka
    Run ephemeral macOS VMs on AWS EC2 Mac with Anka and Anklet. Pack more iOS CI capacity per instance, start jobs in seconds, and cut cost.
    Read More
    Screenshot 2025-01-08 at 2.16
    Enterprise macOS GitHub Actions Runners with Anka
    Run self-hosted macOS GitHub Actions at enterprise scale with Anka and Anklet: ephemeral Apple Silicon VMs, more control than hosted runners.
    Read More
    The Anka product ladder: Develop, Flow, Build, and EC2 Mac as four ascending steps, with Crypt, MCP, Anka Scan, and AMI Scan named below
    Which Anka Product Do You Actually Need? A Walkthrough of the Whole Lineup
    A situation-first guide to every Veertu product: Anka Develop, Anka Flow, Anka Build, AWS EC2 Mac, Anka Crypt, Anka MCP, Anka Scan, and EC2 Mac AMI Scan, including the moment you move from one to the next.
    Read More
    anka2024v1-1536x768
    A Year of Anka: Highlights from 2024
    We’re starting a new annual tradition here at Veertu with our A Year of Anka blog posts. We want our customers to know how the product has grown over the past year and think this is a great avenue to do so. Please enjoy and happy holidays from all...
    Read More