Поручите задачи узлу
Четыре сценария работы — один выделенный узел
Это примеры рабочих процессов, а не отзывы клиентов и не обещание результатов тестирования. Команды показывают, как запускать задачи; перед началом подготовьте зависимости проекта, материалы для подписи и необходимые лицензии.
Независимые разработчики
Пишите на SwiftUI днём, собирайте приложение на облачном Mac ночью
После отправки кода launchd или runner получает нужный коммит, устанавливает зависимости, запускает тесты, архивирует и экспортирует приложение. Загрузите сборку в TestFlight через Fastlane, а на следующий день проверьте журналы и результаты тестов, прежде чем распространять её среди тестировщиков.
Зафиксируйте Scheme, конфигурацию и параметры экспорта, а материалы для подписи храните в Keychain узла. Сначала проверьте подпись в графическом интерфейсе, а затем настройте автоматический запуск задач.
xcodebuild -scheme MyApp archive -archivePath build/MyApp.xcarchive
Команды CI
Запускайте сборку после слияния PR и управляйте очередью командой
Зарегистрируйте на узле self-hosted runner для GitLab или GitHub и направляйте задачи по меткам проекта, инструментов и среды. После принятия pull request запустите Fastlane gym, экспортируйте подписанные артефакты основного приложения и Extension, а журналы сохраняйте для повторного запуска после ошибки.
Выделенный узел исключает конкуренцию за ресурсы с задачами других арендаторов, но не управляет очередью внутри вашей команды. Настройте разумную параллельность runner и изолируйте рабочие каталоги. Изменения сертификатов, версии Xcode и очистку кэша оформите в версионируемых скриптах.
fastlane gym --scheme MyApp --export_method app-store
Эксперименты с ИИ
Дообучайте небольшие модели с 64GB унифицированной памяти
Загрузите модель в MLX, подготовьте данные и выполните дообучение LoRA. При необходимости преобразуйте модель в Core ML с помощью coremltools, если это поддерживается моделью. Добавьте результат в проект iOS и проверьте совместимость операций, потребление памяти при выводе и качество результата.
Модель, состояние обучения и macOS используют общую память: 64GB не означают, что весь объём доступен модели. Сначала проверьте работу на небольшом наборе данных, затем увеличивайте длину контекста. Не запускайте обучение и сборку одновременно без необходимости.
python -m mlx_lm.lora --model ./base --train --data ./data
Аудио и видео
Настройте рендеринг на удалённом рабочем столе и перекодируйте файлы ночью
Подключитесь к графическому интерфейсу macOS через VNC и настройте рендеринг в Logic или Final Cut при наличии соответствующей лицензии. Для задач командной строки используйте кодирование через VideoToolbox, а готовые файлы заберите по SSH или rsync.
Сначала загрузите небольшой примерный файл и проверьте плагины, шрифты, кодеки и параметры экспорта. Скорость передачи больших файлов зависит от вашей пропускной способности и сетевого маршрута; объёмную загрузку материалов и рендеринг лучше планировать на разное время.
ffmpeg -i in.mov -c:v hevc_videotoolbox -b:v 12M out.mp4