2013-10-27 4 views
2

Я просто изучаю, как настроить мои непрерывные интеграционные боты в xcode 5 и иметь очень плохое время. Во-первых, у меня были проблемы с идентификаторами подписи кода, но после прочтения этого замечательного сообщения в блоге эта проблема исчезла.проблемы с непрерывной интеграцией в xcode 5

Сообщение:

http://matt.vlasach.com/xcode-bots-hosted-git-repositories-and-automated-testflight-builds/#comment-21

Теперь, после исправления этих ошибок, возникли другие ошибки. Каждый раз, когда я интегрирую, я получаю предупреждение:

Файл «Pods.xcconfig» не может быть открыт, потому что такого файла нет.

И также я получаю сообщение об ошибке, заявив, что заголовок для стручка не найден. Я предполагаю, что эта ошибка является следствием предыдущего предупреждения.

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

Должен ли я добавить что-то в PodFile? или это что-то на сервере osx?

Мне очень нужна помощь, прежде чем сойти с ума!

спасибо.

+0

Вы проверяете в вашей папке Pods? Как вы запускаете 'pod install'? И просмотрели этот поток в группе google https://groups.google.com/d/msg/cocoapods/eYL8QB3XjyQ/10nmCRN8YxoJ – MishieMoo

ответ

0

Вы получаете эту ошибку, потому что ваш сервер Mac не имеет контейнеров, созданных в каталоге, в котором бот Xcode проверяет их. Это так, как ожидалось, потому что было бы странно регистрировать результаты pod install в вашей системе управления версиями. Я не смог найти способ для СЭП чтобы запустить pod install/update команды, так что я придумал следующий обходной путь:

  • Убедитесь, что ваш бот сконфигурирован, чтобы не очищать перед каждой интеграции
  • Запуск бота затем выполните поиск в результирующих журналах для пути, в который файлы проверяются.
    • Поиск «IDEDerivedDataPathOverride» Этот путь завершится в/DerivedData, если вы посмотрите в родительской папке, вы увидите папку «source». Здесь ваш бот будет продолжать проверять обновления для вашего проекта.
    • Примечание: исходный каталог принадлежит пользователю вашего сервера, вам необходимо получить к нему доступ в качестве этого пользователя. Используйте команду su сделать так
  • Установите cocoapods на вашем компьютере сервера, если у вас нет уже
  • На сервере макинтош, в исходном каталоге найденного выше, перейдите туда, где ваш Podfile находится
  • Запустите pod install и убедитесь, что установлены все указанные вами контейнеры.
    • Двойная проверка разрешений файлов только что созданных каталогов поддонов и обеспечение их принадлежности тем же пользователем, что и другие файлы. Используйте chown, чтобы исправить, если необходимо
  • Пожар с бота и полная проверка!

Единственная проблема с этим решением заключается в том, что если чистка выполняется всегда, вам нужно будет снова запустить pod install. Этого было достаточно для сегодняшнего вечера, мне нужно искать способ сценария установки pod позже, используя предварительные действия в разделе «Сборка» Схемы, используемой в определении бота.

1

Лучшее решение заключается в том, чтобы добавить новую схему, которая используется только через сервер (дублируйте вашу обычную схему). Затем выберите вариант управления схемы, расширение «сборки» и добавить новый Pre-действие с помощью следующего кода:

cd ${SRCROOT} 
echo "Installing Pods" 
pod install 

Вы можете обновлять и многое другое здесь. Единственная проблема заключается в том, что сборка, в которой он обновляется, имеет старый контент, вам нужно снова нажать «Интегрировать». Не забудьте оставить эту схему совместной.

--edit-- Вы OFC должен совершить это и запустить бот на этой схеме (вы можете изменить его на сервере -> сафари местного Xcode бот URL -> Настройка -.> Схемы

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