@mr_zadre
Java Developer

Как сбилдить iOS библиотеку (framework) на Jenkins?

Всем привет, есть сложности в понимании одного вопроса. Заранее прошу прощения за скомканный и не до конца понятно описанный вопрос.

Есть Jenkins установленный на Ubuntu 16.04 и git-репозиторий с Xcode проектом, над которым нужно проводить билды, тесты, прочее (с помощью Jenkins)... Задача состоит в том, чтобы собрать .framework (библиотека) и провести архивацию артефактов (той же либы) таким образом, чтобы из Jenkins можно было её выкачать или залить в тот же HockeyApp.
Возможно ли провести билд исходного кода проекта Xcode в другой операционной системе? И если да, то, что можно для этого сделать?

Попытался использовать баш-скрипт с выполнением команды xcodebuild, но так как на Ubuntu нет Xcode, то и соответственно Jenkins не может выполнить эту команду.

P.S.: На MacOS выполняется билд за счёт наличия Xcode в системе, и соответственно всё работает, как надо, но вопрос в том, а реально ли провести билд без Xcode и на другой операционной системе?
  • Вопрос задан
  • 120 просмотров
Решения вопроса 3
Думаю, что без макоси ни как)
Ответ написан
Комментировать
@iMaximus
Не реально. Весь цивилизованный мир, подключает ноду на Mac OS, достаточно полу-убитого mac mini и делает там эти вещи. Это я вам, как DevOps на пол ставки говорю :)
Ответ написан
Комментировать
@mr_zadre Автор вопроса
Java Developer
Нашёл решение вопроса :)

iMaximus Дмитрий Арушанов

Во-первых, спасибо за отклики, ваши ответы помогли разобраться со всем и решить задачу более конкретную, чем ту, что описана в вопросе.
Во-вторых, да, нужен онли MacOS для билдов с помощью Xcode.

В-третьих, для выполнения билда в Jenkins с Ubuntu, нужно использовать MacOS, как Slave для Ubuntu, который является Master. Если вкратце - выкачать плагины, которые нужны для работы с Xcode, создать job, настроить все пути к xcode, avgtools, etc.., прописать айпи-адрес, по которому Jenkins будет стучаться к MacOS, прописать логин и пароль от MacOS (думаю, есть другие способы для авторизации), по крайней мере я таким образом решал этот вопрос и добавить возможность собрать артефакты (*.framework).. После всех настроек перепроверить или агент Jenkins пингует MacOS (т.е. является запущенным) и провести билд.

Также может выскочить ошибка характера "xcode not found". Мне помогло следующее решение - нужно прописать в терминале MacOS следующую команду:

sudo xcode-select -s /Applications/Xcode.app/Contents/Developer

После выполнения команды выше и повторной попытки сбилдить job - результат стал положительным, таким образом мы получили нужные артефакты.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы