2014-01-15 3 views
0

У меня есть три хранилища для моего текущего проекта. Они содержат некоторые совместно используемые основные функциональные возможности и индивидуальные компоненты:Xcode bot: клонирование нескольких репозиториев до сборки

  • MainApp.git
  • Components.git
  • Controls.git

xcworkspace лежит в MainApp.git и ссылки на его собственной xcodeproj файл, а также другие xcodeprojs в двух других репозиториях.

При создании бота на сервере Xcode есть возможность выбрать один репозиторий для клонирования. Это позволяет сбою сборки в конечном счете, поскольку он не может найти какие-либо ресурсы, необходимые из компонентов Components.git и Controls.git.

Как я могу создать рабочую сборку с моей конфигурацией рабочего пространства?

ответ

4

Вы могли:

1) Добавить весь код в основной репозиторий (я настоятельно советую против него)

2) Используйте менеджер зависимостей, таких как Cocoapods, где вы должны создать podspecs для ваши зависимости. Если они отлично работают с открытым исходным кодом, они, вероятно, уже находятся в GitHub в Specs. Интеграция между ботами Xcode и Cocoapods сейчас разрывается. У вас может быть сценарий предварительной сборки, выполняющий команду:

pod install

Среди прочего. См. here

3) Использовать git submodules. Они могут дать вам некоторые головные боли, но они обычно выполняют работу, когда дело доходит до управления зависимостями предприятия. Опять же, к сожалению, они полностью сломана в Xcode ботов:

Xcode bots with git submodules

Problems with Xcode Bots

Список велик, просто поиск на твиттере проблем, связанных с GIT/cocoapods и Xcode ботов покажите вам, как это может расстраивать.

Мое личное мнение, если это небольшой проект, и вы хотите посмотреть, что у Apple было, боты Xcode великолепны, также встроенная интеграция внутри IDE удивительна и что-то, что нужно искать в предстоящих итерациях ,

Однако, если проект сложный, с некоторыми зависимостями, возможно, UI Automation, интеграция с Testflight/HockeyApp и т. Д., Я бы пошел либо с Jenkins, либо с Travis CI. Придерживайтесь того, что отличное сообщество, годы разработки, плагины.

1

Я сам искал этот ответ, но не был удовлетворен предложениями.

Оказывается, можно делать все внутри Xcode с небольшой помощью от терминала.

Я подробно его здесь: http://swiftrien.blogspot.com/2016/04/xcode-server-and-multiple-repositories.html

Но подведут здесь.

1) Создайте каталог рабочей области. Ни один из проектов, которые должны быть в рабочей области, должен находиться в этом каталоге (или в любом из его подкаталогов).

2) Используя Xcode, создайте рабочее пространство. Вы можете добавить проекты сейчас.

3) Выход Xcode.

4) В терминале перейдите в каталог рабочего пространства и сделать "$ GIT INIT"

5) Добавить файл ".gitignore" с ".DS_Store" и "xcuserdata".

6) Добавьте файлы с помощью "$ git add."

7) Зафиксируйте файлы с '$ мерзавца совершить -m "Initial совершить"'

8) Выход терминала, запустите Xcode и откройте рабочую область

9) Используйте меню "Control Source" для убедитесь, что теперь у вас есть git repo для рабочей области.

10) Используйте меню «Управление источником», чтобы добавить удаленное репо на сервере.

11) Для всех проектов используйте меню «Управление источником -> Настроить ...», чтобы сообщить Xcode, что это репо необходимо включить в выписку.

Вам нужно будет создать новые боты или обновить старые.

Удачи.

+0

Следуйте этим инструкциям. Got Error: Assertion: Конфигурированная схема («Blah») не найдена, она может быть переименована или удалена после создания бота. Схема определенно 100% разделена и совершенна. Weird. –

Смежные вопросы