Devin в облаке на Mac: от Xcode до проверки iOS-приложения в симуляторе

Devin Cloud получил поддержку macOS: облачный агент закрывает полный цикл для iOS и нативных Mac-приложений — от сборки в Xcode до проверки в запущенном приложении. Хосты идут на AWS EC2 Mac с гостевой macOS через Virtualization.framework, а снимки сессии сохраняют зависимости, файлы и правки кода между запусками.
Локально агент спокойно правит Swift и гоняет компиляцию, но «собралось без ошибок» и «работает как надо» — разные проверки. Пример из блога: iPhone-игра должна возобновляться с паузы даже после закрытия. Devin может сам поиграть, свернуть, выйти, открыть снова и сверить состояние.
Что сделали под капотом
- Снимки диска. На Linux виртуалка цепляется к хранилищу через vhost-user; у Apple такого нет — к тому же бэкенду добавили фронтенд Network Block Device, гость видит обычный диск, а сессия переживает остановку VM.
- Сеть. Вместо встроенного NAT, который спорил с правилами pf, подняли свой Ethernet-шлюз в user space: ответ на ARP, проверка адресов, дальше трафик идёт через туннель с правилами доступа сессии.
- Образ. В гостевой macOS заранее лежат учётка, рабочий стол, Xcode и разрешения на контроль приложений; остальное догоняют при первом буте и отключают лишние фоновые службы.
Пользователь смотрит рабочий стол через VNC и отдельную панель iOS Simulator; если видеопоток отстаёт, его подтягивают с нового ключевого кадра, чтобы не показывать устаревшую картинку. Для computer use на нативных приложениях Devin читает дерево доступности — роли, имена и состояния элементов — вместо цепочки «скриншот → поиск кнопки Resume по координатам → ещё скриншот». Тот же приём, что в браузерной автоматизации, только для macOS и симулятора.
Источник: Bringing macOS to Devin | Devin.