🆕 В
Xcode 26.3 и 27 Apple открыла часть своих внутренних возможностей через MCP и это позволило автоматизировать рендеринг SwiftUI превью для CI/AI воркфлоу. Автор подробно описывает практические проблемы:
➡️ нельзя явно задать модель устройства для рендера через
MCP/инструменты рендера (поэтому приходится возвращаться к устаревшему PreviewProvider, если нужен конкретный iPhone)➡️ рендер возвращает старый скриншот даже после изменения кода - из‑за частичных сборок или кэширования, особенно заметно при
Swift пакетах.Еще там есть набор проверенных обходов:
➡️ отмечать предпросмотр типом отпечатком (
fingerprint) в коде, чтобы заставить компилятор пересобирать нужный файл и проверять совпадение отпечатка с возвращённым JSON➡️ переключать активное устройство через
XcodeSwitchRunDestination для более широкой поддержки семьёй устройств➡️ рекомендации по стилю
#Preview (писать не в одну строку). Автор перечисляет ещё ряд мелких граблей - краши хоста превью при hot‑replace, задержки при добавлении/удалении файлов в headless‑режиме и т. п.👀 Если вы автоматизируете снимки интерфейса для
CI или интегрируете превью в AI‑инструменты, учитывайте эти ограничения и держите отдельный набор preview‑файлов для автоматизации. Полезны приёмы с встраиваемым fingerprint и контрольным JSON, а также осторожность с выбором рабочего формата проекта (SPM vs .xcodeproj) и последовательностью операций при рендере.