
Xcode Cloud — это служба непрерывной интеграции Apple для разработчиков. Вот как начать использовать его для создания собственного программного обеспечения.
На WWDC 2021 Apple представила новый сервис облачной сборки для своей среды разработки под названием Xcode Cloud.
Xcode Cloud — это служба сборки непрерывной интеграции (CI), размещенная на серверах Apple, которая позволяет командам разработчиков сотрудничать и автоматизировать службы сборки и упаковки программного обеспечения для настройки и сборки программного обеспечения.
Идея непрерывной интеграции заключается в том, что бот или набор ботов отслеживают репозитории исходного кода на предмет изменений кода, а затем через определенные промежутки времени извлекают исходный код, автоматически создают программные компоненты и автоматически распространяют их среди заинтересованных сторон.
Используя CI, разработчики и компании могут ускорить сборку и распространение, позволяя другим компьютерам управлять процессом сборки вручную. С появлением CI прошли те времена, когда разработчикам приходилось тратить время на сборку вручную.
Думайте о CI как об автоматизированном инженере сборки — боте, который может управлять всеми аспектами сборки и распространения за вас.

Требования
Чтобы использовать Xcode Cloud, вы должны соответствовать следующим требованиям:
Зарегистрируйтесь в программе разработчиков Apple. Используйте Xcode 14.0.1 или более позднюю версию. Добавьте свой Apple ID в настройки Xcode. Создайте запись о своем приложении в App Store. Подключитесь к Xcode Cloud и своей онлайн-системе управления исходным кодом.
Расходы
Apple теперь предоставляет 25 бесплатных часов вычислений для Xcode Cloud для каждой учетной записи разработчика Apple. Дополнительные вычислительные часы доступны в размере 100, 250 и 1000 вычислительных часов по цене от 49,95 до 399,99 долларов США в месяц.
Сложность
Имейте в виду, использование Xcode Cloud — нетривиальная задача. Apple попыталась облегчить начало работы с Xcode, но эти усилия оказались неудачными.
Xcode Cloud сложен, и чтобы полностью понять, как его использовать, вам может потребоваться прочитать до десяти или более различных разделов документации Apple для разработчиков, а документация Apple для разработчиков уже слишком многословна и разрознена.
Вы можете переходить от одной ссылки к другой на страницах разработчиков Apple Xcode Cloud только для того, чтобы обнаружить, что вы так далеко изучили документацию, что забыли, какую тему вы намеревались понять.
App Store Connect — это веб-портал Apple, на котором разработчики и команды управляют членами команды, настройкой приложений, деталями и сотрудничеством между разработчиками. Как для App Store Connect, так и для Xcode Cloud вам потребуется учетная запись разработчика Apple и Apple ID для входа в систему.
Существуют проблемы с учетными записями, проблемы с командой и разрешениями, настройкой и конфигурацией управления исходным кодом, а также проблемы с App Store Connect.
В частности, если у вас есть более старый идентификатор приложения в разделе «Сертификаты, идентификаторы и профили» App Store Connect и вы не настроили его после выпуска Xcode Cloud, вы можете просто найти вкладку Xcode Cloud на портале App Store Connect. не будет работать для этого приложения:

Сбой Xcode Cloud на старых идентификаторах приложений.
У Apple нет текущего объяснения этому, и ваш единственный выход в этом случае — сначала удалить приложение из App Store, удалить идентификатор приложения, затем создать новое с тем же идентификатором пакета приложений, а затем настроить Xcode. Облако в App Store Connect для этого идентификатора приложения.
Это смешная и непростительная оплошность со стороны Apple.
Хуже того, если вам все же придется удалить и заново создать идентификатор приложения, вы, скорее всего, также потеряете все прошлые показатели и аналитические данные для приложения, и вам придется заново вводить и повторно загружать все характеристики приложения, снимки экрана и фильмы, чтобы Магазин приложений Connect.
Вы или один из членов вашей команды также должны быть знакомы с управлением исходным кодом, например git, GitHub или одной из других поддерживаемых систем управления исходным кодом.
Как минимум вам нужно будет прочитать большую часть документации для:
Сертификаты, идентификаторы и профили App Store Connect для App Store Connect. Управление командой и участниками для App Store Connect. Управление исходным кодом Xcode. Пение и возможности Xcode. Схемы и совместное использование Xcode. О непрерывной интеграции и доставке с помощью Xcode Cloud. Настройка Xcode Cloud для вашей команды. Требования к Xcode Cloud для использования Xcode Cloud. Требования к системе управления версиями. Настройка первого рабочего процесса Xcode Cloud.
Кроме того, Apple изменила систему сборки Xcode в Xcode 10, поэтому, если вы еще не знакомы с этими изменениями, вам необходимо прочитать страницу «Примечания к выпуску системы сборки для Xcode 10» в примечаниях к выпуску Xcode 10.
Будьте готовы потратить часы или даже дни на изучение документации Apple для разработчиков.
Требования к проекту и рабочему пространству
Существует длинный список вещей, которые вы должны настроить в своем проекте или рабочей области, чтобы использовать Xcode Cloud. Список огромен, поэтому мы не будем вдаваться в него здесь.
Как только ваш проект будет соответствовать требованиям, вы должны настроить Xcode Cloud для доступа к учетной записи управления исходным кодом вашего проекта на GitHub, GitLab, BitBucket или на сервере BitBucket. Для работы Xcode Cloud требуется сетевая система SCM на базе git.
Если в вашем проекте есть администратор SCM (управление исходным кодом), попросите его настроить Xcode Cloud и учетную запись вашей команды разработчиков для доступа к вашей учетной записи SCM в Xcode Cloud, используя одну из вышеупомянутых служб SCM.

Подключение Xcode Cloud к GitHub.
Apple также предоставляет это предупреждение на странице требований Xcode Cloud об использовании сторонних инструментов, которые генерируют или изменяют проекты или рабочие области Xcode:
Важный
Для Xcode Cloud требуется согласованный проект или рабочее пространство Xcode, которое всегда присутствует. Если вы используете сторонний инструмент, который динамически генерирует или редактирует ваш проект или рабочую область, первоначальная настройка Xcode Cloud и последующие сборки могут завершиться неудачно.
Если вы еще не подключили Xcode Cloud к своей системе SCM, когда вы открываете проект Xcode, идентификатор приложения и идентификатор пакета которого были установлены в App Store Connect, вы можете увидеть следующее предупреждение в Xcode при следующем открытии проекта Xcode. :

Углубляемся в особенности сборки
После того, как вы просмотрели и поняли всю информацию для разработчиков Xcode Cloud и App Store Connect, подключили Xcode Cloud к GitHub или другой поддерживаемой облачной службе SCM и настроили свой идентификатор приложения для использования Xcode Cloud, вы можете начать использовать его из Xcode. сам.
Как служба CI, Xcode Cloud позволяет вам указывать репозитории исходного кода для мониторинга, в том числе, какие ветки использовать, настраивать сборки, запускать и отслеживать сборки, а также проверять сборки на наличие ошибок. Бот Xcode Cloud позволяет вам настраивать, когда запускать сборки, отслеживать сборки и автоматизировать время распространения сборок с помощью приложения и службы Apple для распространения сборок TestFlight.
Например, вы можете настроить ботов Xcode Cloud для запуска ночной сборки, а также сборок на определенных этапах проекта, при фиксации исходного кода или только при изменении определенных ветвей в репозиториях.
Боты Xcode Cloud могут сообщить вам, когда и если сборка не удалась, что стало причиной и кто несет ответственность.

Панель обзора Xcode Cloud в Xcode.
После того как вы настроите своих ботов Xcode Cloud, сборки запускаются автоматически в указанное вами время, и вам больше не нужно беспокоиться о создании программного обеспечения — Xcode Cloud выполняет все сборки за вас.
Текущая версия Xcode Cloud имеет возможность входить в ваши репозитории GitHub после того, как вы его авторизуете, и получать исходный код для автоматической сборки в частном порядке на серверах Apple Xcode Cloud. Все загрузки и сборки кода происходят на серверах Apple, поэтому вам не нужно беспокоиться о настройке машин сборки для работы в качестве серверов сборки.
Вы также можете просмотреть все состояния сборки и ошибки всей команды или только для вас, щелкнув вкладку «Мое» на вкладке «Сводка сборки Xcode».

Используйте вкладку «Мои», чтобы увидеть только свои результаты.
Использование Xcode Cloud из Xcode
После того, как все проблемы с настройкой и документацией устранены, Apple сделала Xcode Cloud довольно простым в использовании из приложения Xcode IDE. Вы также можете просмотреть и настроить некоторые детали Xcode Cloud на веб-портале Apple App Store Connect для разработчиков.
Чтобы начать работу с Xcode Cloud в Xcode IDE на вашем Mac, запустите Xcode, затем выберите Xcode Cloud->Create Workflow… в меню «Продукт» в строке меню вверху экрана:

Обратите внимание, что до тех пор, пока идентификатор приложения проекта Xcode, настройки команды и подписи, а также информация SCM не будут подключены к Xcode Cloud, пункт меню Xcode Cloud не отображается в Xcode.
Затем в редакторе проектов Xcode в левой части окна проекта или рабочего процесса выберите вкладку «Облако» рядом с вкладкой «Локальный». Это переключит представление в Xcode на представление Xcode Cloud.
В представлении «Облако» вы можете увидеть все рабочие процессы и задачи сборки для текущего проекта. В этом представлении вы также можете просмотреть результаты последних сборок.
Справа от представления «Облако» также имеется кнопка «Начать сборку», позволяющая немедленно запустить сборку. Представление макета сборки в App Store Connect аналогично веб-версии.
Если сборка завершается неудачей из-за ошибок, на панели обзора появляется кнопка «Перестроить».
Рабочие процессы Xcode Cloud
Xcode Cloud использует рабочие процессы для настройки условий сборки, которые будут запускаться при запуске сборки.
Чтобы создать новый рабочий процесс Xcode Cloud в проекте Xcode, выберите вкладку «Облако» в навигаторе окна проекта слева, затем выберите «Продукт» -> «Xcode Cloud» -> «Создать рабочий процесс» в строке меню Xcode.
Откроется лист адаптации проекта Xcode Cloud в Xcode:

Отсюда вы можете предоставить доступ к репозиторию исходного кода на GitHub или к одному из других поддерживаемых сервисов на основе Git. Предполагается, что ваша система SCM уже подключена на этапах настройки Xcode Cloud, упомянутых выше.

Предоставление доступа к GitHub.
После предоставления доступа вы можете настроить начальные условия для рабочего процесса Xcode Cloud на листе. К ним относятся начальные условия, среда, действия и действия после завершения.
Вы также можете настроить уведомления по электронной почте или в Slack.
В строке «Общие» вы можете дать рабочему процессу имя и описание, выбрать репозиторий из всплывающего меню и выбрать проект или рабочую область. Вам нужно будет установить их перед установкой начальных условий сборки на следующем шаге.

Установите информацию о рабочем процессе на вкладке «Общие».
В разделе «Условие запуска» вы можете выбрать, какую ветку git использовать для вашей сборки, когда запускать сборку на основе изменений SCM и запускать ли сборку при изменении какого-либо файла или на основе пользовательских условий.
Когда вы задали все условия запуска сборки, нажмите кнопку «Сохранить».

Задайте условия начала сборки.
Вы также можете установить параметры среды и действия, которые необходимо выполнять во время и после сборки.
После настройки рабочего процесса Xcode Cloud Xcode Cloud начнет выполнять облачные сборки на основе заданных вами условий.
Мониторинг
В любое время вы можете проверить статус сборок, щелкнув вкладку «Облако» в окне навигатора проекта Xcode или в App Store Connect на вкладке «Облако Xcode».
Вкладка «Облако» в навигаторе проекта Xcode предоставляет сводную информацию обо всех сборках, результатах каждой сборки и любых ошибках, которые могут возникнуть для каждого участника проекта. Панель сводки «Обзор» позволяет быстро просмотреть все результаты сборки.
Крутая кривая обучения, но очень полезная
Xcode Cloud имеет большой потенциал, как только вы преодолеете крутую кривую обучения. Но если вы не очень быстро читаете, будьте готовы потратить хотя бы несколько дней на просмотр документации и экспериментирование с функциями Xcode Cloud и Xcode, чтобы освоить продукт.
Чтобы сделать Xcode Cloud простым и простым в использовании, Apple необходимо сначала исправить проблемы App Store Connect, а затем упростить настройку в Apple Store Connect. Было бы неплохо выполнить некоторую автоматическую настройку способов обновления функций подписи и возможностей.
Первостепенное значение имеет то, что Apple сокращает, упрощает и консолидирует документацию для разработчиков, чтобы сделать изучение и использование облака Xcode более быстрым и простым.
С точки зрения команды и автоматизации нет никаких сомнений в том, что Xcode Cloud полезен. Освобождение от инфраструктуры и управления сервером сборки — это победа для любой команды разработчиков.
И даже на самом высоком уровне ежемесячные затраты на Xcode Cloud, вероятно, будут намного ниже, чем на эквивалентную команду инженеров по сборке и серверу.
Как только Apple устранит упомянутые выше проблемы, Xcode Cloud станет огромным активом для любой компании или команды разработчиков.
В будущих статьях мы углубимся в использование рабочих процессов Xcode и способы запуска тестов в Xcode Cloud.









