С недавним выпуском программного обеспечения Apple я не мог найти никаких современных решений для непрерывной интеграции и развертывания с использованием новых Xcode 6.1, OS X Server 4 и TestFlight (платформа распространения альфа/бета-версии Apple). После нескольких часов разочарования я смог добиться от вас всего гладко. Я разделяю это в надежде, что я могу спасти некоторых из вас от необходимости делать то же самое.
Этот пост - это обновленная версия сообщения блога Мэтта Влашаха, найденного здесь.
В любом случае, вот шаги...
1. Создать и опубликовать новую схему
- Открыть проект в Xcode
- Перейдите к верхней панели и выберите "Продукт" > "Схема" > "Управление схемами"
- Создайте новую схему и нажмите галочку "общий"
2. Настроить архив схемы Последействия
- Перейдите к верхней панели и выберите "Продукт" > "Схема" > "Управление схемами"
- Выберите новую схему и нажмите править
- Разверните раскрывающийся список "Архив" и выберите "Пост-действия"
- Нажмите "+" внизу, чтобы создать действие "Новая рабочая среда запуска Script"
- Скопируйте этот script и отредактируйте 5 значений, заключенных в теги "< > ", чтобы соответствовать вашей среде
3. Установить идентификаторы распространения и профили Provisioning на сервер OS X
ПРИМЕЧАНИЕ. Эти шаги должны выполняться на Mac с OS X Server
- Если у вас нет действующего сертификата распространения, создайте (или экспортируйте) сертификат распространения на вашу цепочку ключей
- Сертификат по умолчанию будет принадлежать категории "login" в цепочке ключей, просто перетащите сертификат в категорию "Система" (расположенную на боковой панели приложения "Доступ к Keychain" ).
- Скопируйте необходимые профили подготовки в /Library/Developer/XcodeServer/ProvisioningProfiles/
- Примечание. Вам необходимо будет изменить права доступа к папке для доступа к ней.
- Напоминание: убедитесь, что профили обеспечения были подписаны с сертификатом распространения, установленным на вашем компьютере.
4. Изменить правила доступа к ресурсам правил для подписей
ПРИМЕЧАНИЕ. Этот шаг является обходным решением проблемы Xcode, которая, как представляется, была вновь введена в Xcode 6.1
- Открыть проект в Xcode
- Перейдите к настройкам сборки
- В разделе "Подписание кода" добавьте
$(SDKROOT)/ResourceRules.plist
в "Путь правил ресурсов подписи кода"
5. Commit Changes to Remote Repository
- Зафиксировать и нажать изменения в удаленном репозитории
6. Создание и настройка Xcode Bot
ПРИМЕЧАНИЕ. Эти шаги должны быть выполнены на Mac с OS X Server. Кроме того, если вы используете SSH для доступа к репозиторию проекта git, существует множество ресурсов, которые помогут вам выполнить дополнительные шаги, чтобы ваш бот Xcode мог получить доступ к вашему репо.
- Проект клонирования из удаленного репозитория (при необходимости) и открыт в Xcode
- Перейдите в верхнюю панель и выберите "Продукт" > "Создать бот".
- Выберите созданную схему.
- Введите учетные данные для доступа к репозиторию проекта (при необходимости)
- Выберите желаемую частоту расписания, действия и т.д. и создайте бот
После того, как вы закончите эти шаги, вы должны увидеть, что бот запускает интеграцию, которая должна клонировать ваш проект из удаленного репозитория, строить его и загружать в TestFlight!
ПРИМЕЧАНИЕ. Если вы используете CocoaPods, при создании новой схемы убедитесь, что цель установлена в рабочее пространство. Кроме того, поскольку Xcode-боты и CocoaPods по-прежнему плохо взаимодействуют друг с другом, у вас нет файлов, связанных с CocoaPods в вашем .gitignore. Есть решения для предотвращения того, чтобы отслеживать все эти файлы в вашем репозитории, но мне еще предстоит найти надежное решение.