Непрерывная интеграция для проектов XCode? - PullRequest
55 голосов
/ 17 октября 2008

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

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

Ответы [ 9 ]

37 голосов
/ 25 июля 2009

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

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

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

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

Легко распространять приложения для iPhone

13 голосов
/ 31 января 2010

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

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

9 голосов
/ 14 июня 2013

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 по теме.

9 голосов
/ 17 октября 2008

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

8 голосов
/ 20 октября 2008

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

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

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

4 голосов
/ 27 ноября 2008

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

4 голосов
/ 18 октября 2008

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

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

1 голос
/ 07 июня 2012

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

https://wiki.jenkins -ci.org / дисплей / Дженкинс / Xcode + Plugin

0 голосов
/ 21 августа 2012

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

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

...