Непрерывная интеграция для проектов Xcode?

После использования Hudson для непрерывной интеграции с предыдущим проектом я хочу настроить сервер непрерывной интеграции для проектов iPhone, над которыми я сейчас работаю. После некоторого исследования выяснилось, что не существует каких-либо механизмов CI, разработанных специально для Xcode, но один парень добился успеха использование круиз-контроля в сочетании с инструментом xcodebuild CLI. Кто-нибудь здесь пробовал это? Существуют ли какие-либо механизмы CI, которые хорошо работают с проектами Xcode?

Я, наверное, попробую круиз-контроль. Я отправлю ответ с моими выводами.

Ссылка в комментарии выше больше не работает

Ilya Kochetov 23.01.2012 15:07

@ yegor256 реально ли запустить Docker с Xcode? Я не нашел базовый образ с OS X в Docker Hub :(

Ponf 04.09.2014 23:25
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
56
2
21 374
9
Перейти к ответу Данный вопрос помечен как решенный

Ответы 9

Adium довольно эффективно использует buildbot с Xcode. Мы написали простой make-файл, который вызывает xcodebuild с правильными целями и конфигурациями, но я уверен, что это необязательно.

Адиум молодец! (э ... извините за комментарий, не относящийся к теме. Не мог устоять перед возможностью выразить некоторую признательность)

pestophagous 23.10.2008 02:45

Я думаю, вы по-прежнему сможете использовать Hudson. Hudson очень гибок и позволяет также использовать сценарии оболочки для сборки: Сценарии оболочки и пакетные команды Windows

Просто введите туда xcodebuild. Взгляните на страницу руководства xcodebuild, чтобы увидеть параметры xcodebuild.

Я использовал CruiseControl с Xcode (аналогично тому, что предлагала Pragmatic Automation), и имел разумный успех. Я также очень хорошо знаком с CruiseControl и его относительно ужасной настройкой формата конфигурации.

Я также использовал BuildBot для хорошего эффекта, но обнаружил, что его сильные стороны не совсем соответствуют моим потребностям (создание распределенных ведомых устройств и создание отчетов по нескольким различным системам). Конфигурирование настроек buildbot может быть искусством само по себе, хотя это несложно. По сути, все дело в написании скриптов на Python.

Поскольку Hudson стал доступен, я бы рекомендовал его как средство непрерывной интеграции. Он имеет веб-интерфейс (на мой взгляд, основной недостаток CruiseControl) и очень гибок в различных поддерживаемых системах. Вы можете легко и очевидно вызывать сборки, управляемые из командной строки. Тем не менее, я не настраивал экземпляр с использованием Hudson и Xcode, в отличие от других систем, так что это отчасти предположение с моей стороны.

Если вы не против жить на передовой, я только что совершил построитель xcode для CruiseControl.

Ответ принят как подходящий

Я успешно использую Hudson на Mac с xcodebuild. С выпуском 3.0 iPhone sdk у вас есть полный контроль над целью, конфигурацией и sdk, на основе которых будет строиться проект.

Это так же просто, как создать этап сборки в hudson и указать xcodebuild для сборки проекта:

xcodebuild -target "myAppAppStore" -configuration "DistributionAppStore" -sdk iphoneos2.1

Предварительная работа окупилась для меня, так как мои сборки работают без каких-либо дополнительных размышлений. Я написал подробное описание в своем блоге, если кому-то интересно.

Распространение приложений для iPhone стало проще

Воскрешая эту ветку. Я не нашел удовлетворительного решения для получения автоматизированных сборок XCode с помощью модульных тестов на сервере сборки, поэтому я провел небольшое исследование и кодирование. Результатом является это сообщение в блоге, объясняющий все это, и этот скрипт Ruby, который преобразует вывод OCUnit из xcodebuild в формат XML, который JUnit использует для отчетов о тестировании. Я выбрал сервер сборки Hudson.

Обновление 3/2 2012: я обновил это, чтобы использовать некоторые пользовательские сценарии оболочки для сборки и запуска. В наличии здесь. Это хорошо не только для непрерывной интеграции, но и для сборки из командной строки на вашем собственном компьютере.

Дженкинс, кажется, хорошо работает для некоторых людей. (Хотя я никогда раньше не использовал CI-сервер.)

https://wiki.jenkins-ci.org/display/JENKINS/Xcode+Plugin

Дженкинс отлично работает. Вы можете либо создать свой проект xcode, написав собственный сценарий оболочки, а затем позволить Jenkins запустить его, либо вы также можете использовать плагин xcode.

Но вы должны осознавать проблему с авторитетом. С небольшими изменениями в конфигурациях Jenkins вы сможете управлять своим CI-сервером за очень короткое время.

Apple только что выпустила (10 июня 2013 г.) для OSX Mavericks (OS X 10.9) новую платформу непрерывной интеграции, которая является наиболее интегрированным решением непрерывной интеграции, которое я видел раньше. Он доступен на сайте developer.apple.com, здесь, на этой странице, есть подробности:

https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/xcode_guide-continuous_integration/

Рекомендую посмотреть презентацию wwdc 2013 по этой теме.

Отлично! Xcode наконец-то получил некоторые подходящие инструменты для тестирования

LightningStryk 18.06.2013 22:14

Другие вопросы по теме