Руководство

Работа в Xcode из Windows через удалённый Mac

Xcode для Windows не существует. Apple выпускает его только для macOS, а Xcode 26.6 требует macOS Tahoe 26.2 или новее. Работает другое: настоящий Mac где-то с Xcode на нём и его экран на вашем PC. Здесь описаны два способа подключения. А ещё задержка, клавиатура и симулятор.

Почему не виртуальная машина?

Поиск Xcode на Windows приводит к инструкциям по виртуальным машинам с macOS. Лицензия macOS от Apple привязывает macOS к железу марки Apple, так что этот путь выходит за её рамки. Настоящий Mac, к которому вы подключаетесь по сети, снимает проблему. Вот что лицензия говорит об аренде Mac.

Способ 1: VNC-клиент через частную сеть

«Общий экран» в macOS работает по протоколу VNC, поэтому к нему могут подключаться клиенты на Windows. На Mac, который вы настраиваете сами, переключатель находится в «Системных настройках»: «Основные», «Общий доступ», «Общий экран». Включите параметр, который разрешает VNC-клиентам управлять экраном по паролю. Apple отмечает, что «Общий экран» и «Удалённое управление» нельзя включить одновременно.

Никогда не открывайте порт 5900 в интернет. Это известная мишень для сканеров. Вместо этого поместите Mac и свой PC в частную сеть. В MacRun каждый Mac находится в частной сети Tailscale без публичных портов. Установите Tailscale на PC и примите доступ. Затем направьте RealVNC Viewer или TightVNC на адрес Mac в Tailscale, порт 5900. «Общий экран» уже включён. Точные шаги есть в нашей документации по настройке.

Способ 2: рабочий стол во вкладке браузера

На нашем тарифе «Агент» в личном кабинете есть кнопка «Open my Mac». Рабочий стол Mac открывается в новой вкладке браузера. Введите пароль экрана, указанный в кабинете. На PC ничего ставить не нужно, и это выручает на закрытом рабочем ноутбуке. Ссылка на каждую сессию через какое-то время истекает. Нажмите кнопку ещё раз, чтобы получить новую.

Нативный VNC-клиент обычно лучше работает с клавиатурой, чем браузер. Браузер оставляет часть сочетаний клавиш себе. Для долгой работы в Xcode берите клиент. Для быстрой проверки с любого компьютера проще вкладка.

Какой задержки ждать

Каждое нажатие клавиши уходит на Mac, и каждое изменение экрана возвращается обратно. Поэтому расстояние важно. Наши Mac стоят в Нью-Джерси. С восточного побережья США путь туда и обратно короткий. Из Европы или Азии он длиннее. Обещать конкретную цифру мы не будем, потому что она зависит от вашего соединения. Измерьте сами:

tailscale ping <your-mac-name>
tailscale status

В документации Tailscale описаны два вида маршрута. Прямое соединение самое быстрое. Ретранслируемое идёт через серверы DERP от Tailscale и обычно медленнее. Вывод status покажет, какое у вас. Задержка заметнее всего, когда меняются большие части экрана, например при прокрутке длинного файла. Меньшее разрешение удалённого экрана означает меньше пикселей для передачи, и это помогает.

Раскладка клавиатуры

На PC нет клавиши Command, поэтому клиент назначает на неё одну из ваших. Какую именно, решает клиент, обычно это клавиша Windows или Alt. Проверьте настройки клавиатуры в клиенте. Затем проверьте в TextEdit: скопируйте и вставьте слово. Некоторые сочетания Windows оставляет себе, например Alt Tab и одиночную клавишу Windows.

Выучите несколько сочетаний клавиш Xcode, и мышь понадобится редко:

  • Command B собирает. Command R собирает и запускает.
  • Command U запускает тесты. Command и точка останавливают.
  • Command Shift K очищает папку сборки.
  • Command Shift O открывает любой файл по имени.

Разделите работу: правки по SSH, просмотр по VNC

Не обязательно делать всё через удалённый экран. Расширение Remote SSH для VS Code поддерживает в качестве хоста macOS 10.14 и новее с включённым «Удалённым входом». Редактор работает на Windows, поэтому при наборе текста нет задержки экрана. Файлы и терминал находятся на Mac.

Из этого терминала можно собирать через xcodebuild и запускать тесты. Открывайте удалённый экран, только когда он нужен: для симулятора, отладчика Xcode, Instruments или диалога подписи. В MacRun SSH работает через ту же частную сеть Tailscale, что и «Общий экран».

Удалённая работа с симулятором

Симулятор это окно на экране Mac, поэтому вы видите его в клиенте. Клик работает как касание, перетаскивание как прокрутка. В MacRun вместе с Xcode 26.6 установлена среда выполнения симулятора iOS 26.5. Им можно управлять и из терминала по SSH, вообще без экрана:

xcrun simctl list devices
xcrun simctl boot "iPhone 17"
xcrun simctl install booted MyApp.app
xcrun simctl launch booted com.example.MyApp
xcrun simctl io booted screenshot shot.png

Возьмите имя устройства из вывода первой команды. С iPhone, подключённым к вашему PC, всё иначе. Удалённый Mac не видит его по USB. Ставьте сборки на телефон через TestFlight. Это описано в нашем руководстве о публикации без Mac.

Кому это не подходит

Некоторая работа через медленное или далёкое соединение превращается в мучение. Например, целый день в превью SwiftUI. Тогда лучше Mac на вашем столе. Apple продаёт базовый Mac mini за $899. Мы не сдаём машины на Windows, а все наши Mac стоят в одном месте. Поэтому очень далёкие пользователи почувствуют большую задержку. SLA нет.

Если удалённый Mac вам подходит, у нас это выделенный Mac mini на M6 с правами администратора. Оба тарифа есть на странице цен.

Частые вопросы

Можно ли установить Xcode на Windows 11?

+

Нет. Apple выпускает Xcode только для macOS, а Xcode 26.6 требует macOS Tahoe 26.2 или новее. Рабочий вариант это настоящий Mac, которым вы управляете из Windows через удалённый рабочий стол.

Чем подключиться к Mac из Windows?

+

С «Общим экраном» macOS работает любой VNC-клиент, например RealVNC Viewer или TightVNC. Подключайтесь через частную сеть вроде Tailscale, а не через открытый порт. Некоторые провайдеры ещё и открывают рабочий стол во вкладке браузера.

Какая клавиша работает как Command, когда я управляю Mac с PC?

+

Это решает клиент, обычно клавиша Windows или Alt. Проверьте его настройки клавиатуры, а потом попробуйте скопировать и вставить текст в TextEdit.

Можно ли тестировать на своём iPhone с удалённым Mac?

+

Не по USB, потому что удалённый Mac не видит телефон, подключённый к вашему PC. Загрузите сборку в TestFlight и установите её на телефон оттуда.

Похожие руководства