Ответ 1
Запуск Дженкинса без запуска. Я использовал следующую команду:
sudo su jenkins -c "JENKINS_HOME=/Users/Shared/Jenkins/Home /Library/Application\ Support/Jenkins/jenkins-runner.sh"
Я запускаю сервер Jenkins CI на машине OS X. Сервер работает как стандартный пользовательский "john" и запускается при запуске launchctl. Одна из вещей, которые делает этот сервер, - это сборка проектов XCode с использованием ключей и сертификатов, хранящихся в цепочке ключей "xcode.keychain":
Jenkins (который работает под пользователем "john" в соответствии с монитором активности) вызывает эти команды из script, когда пользователь нажимает кнопку на веб-интерфейсе.
security default-keychain -s /Users/john/Library/Keychains/xcode.keychain
security unlock-keychain -p password /Users/john/Library/Keychains/xcode.keychain
xcodebuild ...
Если я попаду на сервер как "john" через пользовательский интерфейс, брелок будет разблокирован правильно, когда Дженкинс называет эти команды. Но, если я не вошел в систему, xcode.keychain не разблокируется и сборка не выполняется. Любые идеи?
Запуск Дженкинса без запуска. Я использовал следующую команду:
sudo su jenkins -c "JENKINS_HOME=/Users/Shared/Jenkins/Home /Library/Application\ Support/Jenkins/jenkins-runner.sh"
Мне пришлось:
Это очистило меня для меня.
Дополнительная информация в этих комментариях: fooobar.com/questions/47411/... fooobar.com/questions/47411/...
Я наткнулся на тот же самый вопрос недавно.
security list-keychains -s /Users/john/Library/Keychains/xcode.keychain
вероятно, исправит вашу проблему. Дайте мне знать, если это сработает.
Недавно я нашел решение для этого: Отсутствие сертификатов и ключей в цепочке ключей при использовании Jenkins/Hudson в качестве непрерывной интеграции для разработки iOS и Mac
Вы можете попробовать Jenkins.app, альтернативный способ запустить Дженкинса. Он запускает Jenkins в сеансе пользователя, поэтому Keychain не должен быть проблемой.