Arm Line M4
M4 / 16GB / 256GB
Подходит для первой сборки Xcode, одной линии CI и временной сборки iOS-приложений. Сначала проверьте установку зависимостей, размер кэша и процесс сборки на реальном проекте.
$21.2/день
Арендовать Arm Line M4Арендуйте выделенный физический узел Apple Silicon и последовательно проверьте подключение, инструменты и сборку. Сначала запустите один проект, затем подключайте командный CI.
Две модели, 5 узлов, от $21.2 в день. Весь Mac в вашем распоряжении, не виртуальная машина. Статус выдачи и фактическая доступность отображаются в консоли.
Для обычной компиляции и первых проверок начните с Arm Line M4. Для инференса моделей и задач, требующих больше общей памяти, выберите Arm Grid M4 Pro. Оценивайте потребность в памяти не только по размеру проекта: учитывайте параллельные задачи и нагрузку инструментов.
M4 / 16GB / 256GB
Подходит для первой сборки Xcode, одной линии CI и временной сборки iOS-приложений. Сначала проверьте установку зависимостей, размер кэша и процесс сборки на реальном проекте.
$21.2/день
Арендовать Arm Line M4M4 Pro / 64GB / 2TB
Подходит для инференса моделей, больших кэшей сборки и задач с высоким потреблением памяти. Совместимость с конкретной моделью проверьте с учётом квантования, длины контекста и параметров запуска.
$59.8/день
Арендовать Arm Grid M4 ProСингапур, Япония (Токио), Южная Корея (Сеул), Гонконг и восток США. Для интерактивной работы учитывайте сетевой маршрут от команды до узла. Для сборки без участия пользователя важны также загрузка кода, скачивание зависимостей и передача артефактов. Расстояние — лишь ориентир, а не показатель фактической задержки.
Для первой аренды можно выбрать оплату за день и проверить весь процесс на одном проекте, а затем решить, нужен ли более длительный срок. Полные цены на четыре периода аренды и дополнительные опции указаны на странице тарифов.
Принимаются только USDT-TRC20 и Visa / Mastercard / Amex через Stripe. Расчёты — только в долларах США (USD). Доступность платёжных шлюзов проверяйте по ответу серверного интерфейса.
Проверьте модель, срок, узел и дополнительные опции. Для USDT обязательно выберите сеть TRC20 и сверяйте реквизиты и сумму со страницей оплаты. Не используйте данные для оплаты из старого заказа.
Платёж в блокчейне требует подтверждений, а скорость зачисления зависит от состояния сети. При оплате картой ориентируйтесь на результат платежа и статус заказа. Не платите повторно, если страница ещё не обновилась, и не считайте успешную оплату подтверждением выдачи узла.
Проверьте статус выдачи в консоли. Когда узел станет доступен, сверьте IP-адрес, имя пользователя, временный пароль и порт подключения. Если квитанция не совпадает со статусом заказа, создайте обращение в поддержку, указав номер заказа и хеш транзакции или квитанцию об оплате.
Выполняйте команды ниже в терминале на своём компьютере. Подставьте адрес, порт и имя пользователя из консоли. Не используйте примеры из документации как данные для подключения.
read -r -p "Node IP: " NODE_IP
read -r -p "SSH port: " SSH_PORT
read -r -p "Login user: " NODE_USER
ssh -p "$SSH_PORT" "$NODE_USER@$NODE_IP"
При первом подключении появится отпечаток хоста. Сверьте его по доверенному каналу, прежде чем принимать. Если сохранённый отпечаток изменился, сначала выясните, переустанавливали ли систему или меняли узел, — не пропускайте проверку.
whoami
hostname
passwd
passwd Выполните команду в SSH-сеансе облачного Mac. Введите старый, а затем новый пароль по запросу; символы при вводе не отображаются. Не используйте пароль от других сервисов и не записывайте его в журналы сборки.
| Поле | Что указать | Как проверить |
|---|---|---|
| Адрес сервера | IP-адрес узла из консоли | Используйте адрес из текущего заказа, а не IP своего компьютера. |
| Порт | Порт VNC из консоли | Если в клиенте есть отдельное поле для порта, укажите его отдельно. Не подбирайте порт наугад. |
| Данные для входа | Данные для графического подключения из консоли | Не предполагайте, что пароль VNC всегда совпадает с паролем SSH. |
| Начальные параметры экрана | Начните с низкого разрешения | Сначала проверьте изображение и ввод, затем повышайте качество с учётом пропускной способности сети. |
В macOS можно также использовать системную функцию «Общий экран». После смены пароля проверьте по инструкции к узлу, нужно ли обновить данные для графического подключения. Не открывайте VNC напрямую для недоверенных сетей.
Выполняйте команды ниже на облачном Mac. Сначала проверьте систему и уже установленные инструменты, затем установите недостающие компоненты. Не заменяйте закреплённые командой версии Xcode, Ruby или зависимостей только ради копирования примера.
sw_vers
uname -m
df -h /
ls /Applications
xcode-select -p
xcodebuild -version
xcode-select Если xcode-select указывает на отдельные инструменты командной строки, это не подтверждает наличие полного Xcode. Если полный Xcode не установлен, подготовьте дистрибутив, разрешённый командой, распакуйте его и поместите в /Applications; на диске должно хватить места для распаковки, зависимостей и артефактов архива.
sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
sudo xcodebuild -license
sudo xcodebuild -runFirstLaunch
xcodebuild -version
xcodebuild -showsdks
В этом примере приложение называется Xcode.app. Если установлено несколько версий, укажите фактический путь. Перед принятием лицензии прочитайте её условия. Чтобы не менять инструментарий для других задач, для отдельной сборки можно задать DEVELOPER_DIR и указать нужную версию.
command -v brew
brew --version
ruby --version
bundle --version
Если Homebrew ещё не установлен, воспользуйтесь проверенной командой инструкцией команды. Не вставляйте удалённые скрипты установки из неизвестных источников. На Apple Silicon Homebrew обычно установлен в /opt/homebrew, но ориентируйтесь на фактический вывод. Если Homebrew установлен, но не найден в текущем сеансе, загрузите его окружение:
eval "$(/opt/homebrew/bin/brew shellenv)"
brew install ruby
export PATH="$(brew --prefix ruby)/bin:$PATH"
gem install bundler
bundle install
bundle exec fastlane --version
Последние четыре команды выполните в каталоге проекта. Предполагается, что в репозитории есть Gemfile с закреплёнными зависимостями Fastlane Gemfile и файл блокировки зависимостей. Если этих файлов нет, сначала согласуйте версии зависимостей в команде и добавьте файл блокировки в репозиторий, а затем устанавливайте их. Не устанавливайте массово зависимости сборки в системный Ruby с правами администратора.
read -r -p "Workspace path: " WORKSPACE
read -r -p "Shared scheme: " SCHEME
xcodebuild -list -workspace "$WORKSPACE"
xcodebuild \
-workspace "$WORKSPACE" \
-scheme "$SCHEME" \
-destination 'generic/platform=iOS' \
-archivePath "$HOME/BuildArtifacts/FirstBuild.xcarchive" \
CODE_SIGNING_ALLOWED=NO \
archive
Сначала перейдите в каталог проекта, установите заявленные в нём зависимости и убедитесь, что схема доступна другим пользователям. Если проект содержит только .xcodeproj , замените -project вместо -workspace. Эта команда проверяет компиляцию и создание архива, но не создаёт подписанный пакет для распространения и не гарантирует успешную работу всех скриптов, которым требуется подпись.
Выберите GitHub Actions или GitLab Runner в зависимости от платформы, где хранится код. Сначала проверьте задачу на доверенной ветке, убедитесь в настройке пользователя службы, переменных среды и доступе к связке ключей, а затем передайте управление основной CI-сборке.
В настройках runner репозитория или организации выберите macOS и ARM64. Следуйте актуальным инструкциям платформы: скачайте пакет, проверьте его и распакуйте в отдельный каталог. Выполните команды ниже из этого каталога. URL регистрации и временный токен возьмите на текущей странице настроек.
read -r -p "Repository or organization URL: " RUNNER_URL
read -r -s -p "Registration token: " RUNNER_TOKEN
printf '\n'
./config.sh \
--url "$RUNNER_URL" \
--token "$RUNNER_TOKEN" \
--labels armvnc,macos,arm64
unset RUNNER_TOKEN
./svc.sh install
./svc.sh start
./svc.sh status
В workflow укажите runs-on: [self-hosted, macOS, ARM64, armvnc], сверив метки с фактическими метками, показанными платформой. Запуск службы пользователя зависит от сеанса входа в систему. После установки проверьте её работу после повторного входа и перезагрузки: успешная регистрация не означает, что задачи будут выполняться при любом состоянии системы.
Создайте runner в настройках проекта или группы и получите токен аутентификации. После настройки Homebrew установите runner и зарегистрируйте его, следуя подсказкам. Служба работает от имени текущего пользователя; файлы сборки и учётные данные должны принадлежать этому пользователю.
brew install gitlab-runner
read -r -p "CI server URL: " CI_SERVER_URL
read -r -s -p "Runner authentication token: " RUNNER_TOKEN
printf '\n'
gitlab-runner register \
--url "$CI_SERVER_URL" \
--token "$RUNNER_TOKEN" \
--executor shell \
--description "ArmVNC macOS ARM64"
unset RUNNER_TOKEN
gitlab-runner install
gitlab-runner start
gitlab-runner status
gitlab-runner verify
Настройте метки и правила для защищённых веток в параметрах платформы; значение tags в конвейере должно совпадать с метками runner. Службе пользователя обычно нужен сеанс входа. Проверьте работу LaunchAgent и запуск по документации к используемой версии runner. Не запускайте один экземпляр повторно через другую систему управления службами.
whoami、xcode-select -p и xcodebuild -version, чтобы убедиться, что задача выполняется в нужной среде.Узел работает круглосуточно, 365 дней в году, но за процесс CI отвечаете вы. После выхода из системы, обновления или перезагрузки проверьте, что служба runner, сеть и среда подписи восстановились. Перед завершением аренды удалите регистрацию runner на платформе, отзовите учётные данные и скачайте артефакты.
Чтобы понять, важен ли термин, выясните, на какой этап он влияет: выделение ресурсов, подключение, выполнение задач или совместную работу нескольких устройств.
Запишите в репозитории проверенную версию Xcode, файл блокировки зависимостей и команды сборки. При проблемах сначала определите, связаны ли они с подключением, инструментами или проектом, а затем обратитесь за помощью с минимальным примером для воспроизведения.
Начните с аренды на день и проверьте подключение, зависимости и создание архива. Принимаются только USDT-TRC20 и Visa / Mastercard / Amex через Stripe; расчёты — в USD.