03
Сборка, симуляторы и подпись остаются отдельными нативными этапами
Сборка приложения и проверка симулятора
Если задача вызывает xcodebuild, использует Xcode SDK или должна проверить iOS-приложение на симуляторе, планируйте её как macOS-этап. Документация Apple описывает выбор схемы и назначения запуска в Xcode, включая симуляторы и физические устройства; доступность платформенной поддержки также влияет на то, можно ли выбрать соответствующее назначение. Linux-образ такую среду не предоставляет. (Apple: запуск приложения на симуляторе или устройстве)
Не смешивайте проверку компилируемого кода с доказательством поведения на устройстве. Симулятор полезен для тестов и отладки, но он не повторяет производительность и возможности физического устройства во всех деталях. Если функция зависит от конкретного аппаратного поведения, это требует отдельного тестового плана и, где необходимо, реального устройства. Это ограничение действует независимо от того, где запускаются вспомогательные Linux-тесты.
Архив, подпись и публикация
Архивация и экспорт — не просто продолжение сборки, которое можно считать успешным, если предшествующий Linux-этап завершился без ошибок. Apple описывает создание Xcode-архива, выбор способа распространения и экспорт подписанного приложения; для автоматизации документированы действия archive и exportArchive в xcodebuild. Следовательно, этапы Apple-публикации должны выполняться в совместимой macOS-среде и проходить собственную проверку результата. (Apple: создание и распространение подписанного приложения)
Разделите полномочия: Linux-задачи получают только входные данные, необходимые для проверки, а секрет подписи доступен лишь выделенному шагу на Mac. После передачи артефакта принимающая сторона должна проверить его происхождение и целостность, а этап подписи — убедиться, что подписывается именно ожидаемый результат. Если задание контейнера может менять архив после проверки, последующая подпись не должна молча превращать изменённый результат в доверенный релиз.
Подготовьте независимый release gate. Зафиксируйте, какой job создал архив, где он был сохранён, кто и каким способом передал его на Mac, прошла ли проверка подписи и какие подтверждения нужны для загрузки или отправки на публикацию. Apple описывает шаги экспорта и распространения в документации Xcode; конкретную схему контроля доступа и аудита команда проектирует под свои требования. (Apple: распространение приложения для тестирования и выпуска)