Поддержка для разработчиков на Windows

Продолжайте разработку на Mac — подключите проект с Windows

Большинство проблем можно самостоятельно проверить двумя способами: через удалённый рабочий стол в браузере и по SSH. Для графических задач откройте рабочий стол, для проверки сборки используйте командную строку. Сначала подключитесь, затем настройте инструменты, подпись и передачу файлов.

Уже арендуете Mac? Войдите в панель и откройте данные подключения в карточке инстанса. Универсальных адреса и пароля нет.

Сначала подключение, затем настройка

Откройте рабочую среду из карточки инстанса

Для работы через браузер не нужно устанавливать клиент удалённого рабочего стола. SSH в Windows — запасной способ подключения: если изображение рабочего стола не отображается, проверьте, доступен ли компьютер. В обоих случаях используйте адрес, порт и имя пользователя из панели.

  1. 01

    Проверьте состояние инстанса

    Войдите в панель и найдите оплаченный заказ и инстанс. Проверьте модель, узел, срок аренды и текущее состояние. Если после оплаты инстанс ещё готовится, сначала посмотрите сообщение на странице — не оформляйте повторно заказ с той же конфигурацией.

  2. 02

    Откройте рабочий стол в браузере

    В карточке инстанса выберите подключение к удалённому рабочему столу. Дождитесь появления macOS и только после этого щёлкните по области рабочего стола. Не передавайте другим адрес страницы подключения, пароль или снимки экрана с конфиденциальными данными.

  3. 03

    Проверьте основные действия

    По очереди проверьте щелчки мышью, ввод латиницы и переключение окон. Откройте Finder и убедитесь, что файлы отображаются, затем запустите Терминал и проверьте инструменты. Если не работает ввод китайских символов, сначала разберитесь, связана ли проблема с локальной раскладкой или источником ввода на удалённом Mac. Не переустанавливайте систему без проверки.

  4. 04

    Настройте SSH как запасной вариант

    Выполните команду ниже в Windows PowerShell. Введите имя пользователя, адрес узла и порт из карточки инстанса. При первом подключении проверьте отпечаток узла. То, что пароль не отображается при вводе, — нормальное поведение.

Введите параметры подключения по одному в Windows PowerShell. Переменные заполняются вашими ответами и не являются готовыми данными для подключения.

$MacUser = Read-Host "Введите имя пользователя инстанса"
$MacHost = Read-Host "Введите адрес инстанса"
$MacPort = Read-Host "Введите порт SSH"
ssh -p $MacPort "$MacUser@$MacHost"

При тайм-ауте проверьте сеть, адрес узла и порт. При ошибке аутентификации проверьте имя пользователя и способ входа. Если отпечаток узла изменился, сначала выясните, переустанавливали ли систему. Не удаляйте старую запись, не проверив причину.

Сохраните вывод для воспроизведения ошибки

По журналу архивации проверьте, на каком этапе остановилась задача

Подключение по SSH ещё не означает, что проект настроен. Сначала проверьте путь и версию Xcode, затем перейдите в каталог проекта и запустите архивацию. Для загрузки нужны настроенные lane в fastlane, материалы для подписи и права на распространение.

Сначала прочитайте команду, затем проверьте последнюю строку

Справа показан пример рабочего процесса, а не результаты тестирования производительности компьютера. Он не гарантирует, что подойдёт любому проекту без изменений. Имя узла указано для примера; для подключения используйте интерактивную команду из предыдущего раздела.

App — пример схемы. Перед архивацией подставьте параметры workspace, project и scheme вашего проекта. Если зависимости ещё не установлены, сначала устраните ошибки зависимостей.

fastlane beta подходит только для проектов с уже настроенным beta lane. После успешной архивации проверьте статус обработки на стороне сервиса распространения. Запуск команды ещё не означает, что загрузка завершена.

osxmesh — ssh
$ ssh developer@your-mac-host
$ xcode-select -p
/Applications/Xcode.app/Contents/Developer
$ xcodebuild -version
$ cd ~/Projects/App
$ xcodebuild -scheme App archive
** ARCHIVE SUCCEEDED **
$ fastlane beta
Successfully uploaded package to TestFlight

Сохраните команду целиком, первую ошибку и сводку ошибок в конце вывода. Одной фразы «Сборка завершилась с ошибкой» обычно недостаточно, чтобы найти причину.

Инструменты и подпись

Настройте Xcode для работы с материалами проекта

В macOS доступны графический интерфейс и командная строка. При первом открытии проекта сначала проверьте инструменты, затем настройте подпись. Установленные версии Xcode и выбранную версию проверяйте непосредственно в инстансе.

Проверьте версии и зависимости

Выполните xcodebuild -version и xcode-select -p. В настройках Xcode проверьте выбор инструментов командной строки, а также SDK и диапазон целевых версий ОС, необходимые проекту.

Если проект использует CocoaPods, Swift Package Manager или другой менеджер зависимостей, восстановите их по инструкциям проекта. Не обновляйте все инструменты одновременно после ошибки.

Импортируйте сертификат для подписи

Передайте сертификат в инстанс безопасным способом и импортируйте нужные сертификат и закрытый ключ в «Связку ключей». Пароль к защищённому файлу храните отдельно, через другой канал.

Без соответствующего закрытого ключа сертификат нельзя использовать для подписи от имени этой учётной записи. Не добавляйте закрытый ключ или пароль от сертификата в репозиторий, историю команд и общедоступные вложения к обращениям.

Подберите профиль подготовки

Импортируйте профиль, необходимый проекту. Убедитесь, что Bundle Identifier, идентификатор команды, срок действия и тип распространения соответствуют цели, затем проверьте настройки подписи каждого target.

Для первой попытки выполните архивирование в графическом интерфейсе, чтобы получить воспроизводимый результат. После проверки настроек перенесите те же параметры в скрипт или CI — так будет меньше расхождений между графическим интерфейсом и командной строкой.

Сначала устраните явные пробелы в настройках, затем повторите архивацию
Ошибка или симптом Сначала проверьте Что делать дальше
No signing certificate Есть ли в текущей связке ключей нужный сертификат для подписи и связанный с ним закрытый ключ. Ещё раз проверьте импортированные материалы и срок действия. Не скачивайте многократно один и тот же сертификат.
No profiles for… Совпадают ли идентификатор приложения, команда и тип распространения профиля с текущим target. Импортируйте подходящий профиль и проверьте выбор подписи в проекте.
User interaction is not allowed Пользователя, запустившего сборку, состояние блокировки связки ключей и разрешения инструментов подписи. Проверьте разблокировку и разрешения доступа в рабочем столе, затем повторите попытку от имени того же пользователя.
Несовместимая версия SDK или целевой ОС Выбранный путь Xcode, установленные SDK и целевую версию развёртывания проекта. Выберите совместимую цепочку инструментов. Перед обновлением проверьте зависимости проекта — не заменяйте среду вслепую.
Загрузите проект, скачайте результат

Чётко обозначьте пути передачи и каталог сборки

Храните исходный код, материалы для подписи и результаты сборки отдельно. Сначала создайте каталог проекта на удалённом Mac, затем передайте файлы. После получения IPA проверьте размер и контрольную сумму — одного имени файла недостаточно, чтобы подтвердить успешную передачу.

Передайте проект на облачный Mac

Если проект уже размещён в репозитории, клонируйте его в инстанс способом аутентификации, принятым в команде. Не записывайте токен доступа в общий скрипт. Если проект есть только в локальном каталоге, воспользуйтесь Windows OpenSSH и командой scpили загрузите файлы с помощью инструмента с поддержкой SFTP.

Сначала выполните в удалённом терминале mkdir -p ~/Projects. Затем запустите приведённую ниже команду PowerShell. Она использует три переменные, заданные при первом подключении, и запросит путь к локальному проекту.

$ProjectPath = Read-Host "Введите каталог локального проекта"
scp -P $MacPort -r "$ProjectPath" "${MacUser}@${MacHost}:~/Projects/"

Обратите внимание:ssh для указания порта использует строчную -p, аscp — прописную -P. Перед загрузкой проверьте целевой каталог, чтобы не смешать старые зависимости с новым проектом.

Скачайте IPA на Windows

Архив Xcode и экспортированный IPA — разные файлы. Сначала выполните экспорт, необходимый проекту, затем в Терминале macOS командой ls -lh проверьте фактический путь к IPA.

В команду ниже введите абсолютный путь к IPA на удалённом Mac и существующий локальный каталог для сохранения. Если в пути есть пробелы, оставьте кавычки. Проверьте файл после завершения загрузки.

$IpaPath = Read-Host "Введите абсолютный путь к удалённому IPA"
$SavePath = Read-Host "Введите локальный каталог для сохранения"
scp -P $MacPort "${MacUser}@${MacHost}:$IpaPath" "$SavePath"

При необходимости проверьте контрольную сумму: на Mac выполните shasum -a 256, а в Windows — Get-FileHash -Algorithm SHA256. Сравните результаты для одного и того же файла.

Решайте проблему по симптомам

Сначала проверьте, не изменяя среду

Запишите, что происходило в момент появления проблемы, и начните с действий, которые можно отменить. Чёрный экран, неправильный ввод и нехватка места сами по себе не означают, что нужна переустановка. Она затрагивает существующую среду и не должна быть первым шагом.

Чёрный экран или долго не появляется изображение в браузерном рабочем столе

Сначала убедитесь, что инстанс доступен для подключения, затем закройте старую вкладку и откройте рабочий стол заново из карточки инстанса. Проверьте, не блокирует ли локальная сеть долгие соединения. Для сравнения попробуйте другую сеть или сеанс браузера.

Если по SSH подключиться удаётся, зафиксируйте, что рабочий стол не работает, а командная строка доступна. Сначала сохраните выполняемые задачи и не перезапускайте систему многократно подряд. Если не работают оба способа, приложите к обращению состояние инстанса, текст ошибки и время её появления.

Неправильные символы на клавиатуре, не работают сочетания клавиш

Щёлкните по полю ввода на удалённом компьютере, переключитесь на английскую раскладку и проверьте буквы, цифры и знаки препинания. Сравните источник ввода macOS с раскладкой клавиатуры Windows. Проблемы с локальным методом ввода и неправильной удалённой раскладкой нужно проверять отдельно.

В Windows и macOS используются разные клавиши-модификаторы, а некоторые сочетания могут перехватываться локальным браузером. Сначала выполните то же действие через меню приложения, затем проверьте сопоставление клавиш. Не вводите пароль, пока не убедитесь, что фокус находится в нужном поле.

При архивации не хватает места на диске

Выполните в Терминале macOS команду df -hи сначала определите, на каком томе не хватает места. Проверьте старые архивы, экспортированные файлы, данные симуляторов и кэш проекта. Перед очисткой убедитесь, что они больше не нужны. Не удаляйте сертификаты, исходный код и единственную резервную копию, считая их кэшем.

Если места действительно не хватает, рассмотрите дополнительные варианты: SSD на +1TB или +2TB. После подключения проверьте, смонтирован ли диск и где именно, а также использует ли проект новое расположение. Не считайте, что места на текущем томе стало больше, только потому, что дополнение появилось в заказе.

SSH подключается к узлу, но не удаётся пройти аутентификацию

По очереди проверьте имя пользователя инстанса, порт и текущий способ аутентификации. Убедитесь, что при копировании не добавились пробелы. При входе по ключу проверьте нужный файл закрытого ключа и его разрешения. Не вставляйте содержимое ключа в текст обращения.

После переустановки данные подключения могут измениться — проверьте карточку инстанса ещё раз. Сохраните исходный текст ошибки: отказ в аутентификации и тайм-аут подключения — разные проблемы. Не ограничивайтесь фразой «SSH не работает».

Сохраните среду до завершения работы

Проверяйте срок аренды в заказе, перед переустановкой сделайте резервную копию

Узлы работают круглосуточно, 365 дней в году, но право пользования зависит от срока заказа. Перед запуском долгой задачи проверьте дату окончания аренды в панели. Не откладывайте продление до того, как начнётся последняя сборка.

Проверьте дату окончания аренды

Войдите в панель и проверьте срок аренды и дату окончания в заказе или карточке инстанса. Если вы работаете в другом часовом поясе, ориентируйтесь на время и часовой пояс, указанные на странице. Не принимайте время поступления платежа за дату окончания аренды.

Храните отдельные резервные копии исходного кода, материалов для подписи, конфигурации среды и результатов сборки. Не используйте инстанс после окончания аренды как постоянное хранилище файлов.

Мои заказы

Выберите следующий период

Доступна оплата за день, неделю, месяц или квартал; расчёты ведутся в долларах США. Сначала проверьте в панели доступные варианты продления и цены для текущего заказа, затем выберите период под срок задачи.

Оплата принимается только в USDT-TRC20 и картами Visa / Mastercard / Amex через Stripe. Доступные способы оплаты определяются ответом серверного интерфейса.

Посмотреть все цены

Перед переустановкой составьте список резервных копий

Переустановка заново подготавливает среду и не сохраняет существующие файлы. Сначала остановите сборку и скопируйте проект, сертификаты и результаты. Затем запишите версии инструментов, зависимости и скрипты запуска.

Проверьте доступные операции с системой в карточке инстанса. Убедитесь, что выбрали нужный инстанс и прочитали предупреждения, прежде чем продолжать. После завершения заново проверьте данные подключения и инструменты.

Мои инстансы
Передайте результаты всех проверок

Подготовьте обращение, по которому можно продолжить диагностику

По техническим вопросам, связанным с заказом, сначала войдите в панель и создайте обращение — так оно будет связано с нужным инстансом. По вопросам до покупки, оплаты или входа напишите на support@osxmesh.com. Не отправляйте пароли, закрытые ключи, полный номер карты или пароль от сертификата.

  1. 01

    Укажите нужный инстанс

    Приложите номер заказа или идентификатор инстанса, модель и узел. Доступны узлы в Сингапуре, Токио, Сеуле и Гонконге; модели — Mesh M4 и Mesh M4 Pro. Не пишите только «мой Mac».

  2. 02

    Опишите ход событий

    Укажите время и часовой пояс, ожидаемый и фактический результат, а также последнее действие, после которого всё работало. Добавьте короткие шаги для воспроизведения и уточните, возникает ли ошибка постоянно или время от времени.

  3. 03

    Приложите материалы для диагностики

    Для проблем с подключением укажите браузер и версию системы, приложите снимок экрана с ошибкой и сообщите, доступен ли SSH. Для проблем со сборкой приложите версии инструментов, команду и первую ошибку. Перед отправкой скройте конфиденциальные данные на снимках и в журналах.

Продолжите диагностику с уже полученных результатов

Укажите в одном обращении инстанс, симптомы и шаги, которые уже пробовали. На странице контактов описано, что подготовить для вопросов до покупки, по оплате и технических обращений.