Моя конфигурация.Подписание кода на Jenkins с дистанционным Mac Mini
- сервер Jenkins с Keychains and Provisioning Profiles Plugin
- Mac Mini в качестве удаленного сервера сборки
- Личный аккаунт разработчика Apple.
Очевидно, что я пытаюсь получить код, работающий на удаленном сервере.
Я считаю, что факт, что у меня есть отдельная учетная запись Apple, означает, что я не могу выдавать «разрешение» другим разработчикам для работы над моим проектом и что у узла не может быть только собственный Apple ID.
Следуя инструкциям плагина, я считаю, что раздел «профили профилей» правильный.
Брелки, по-видимому, не работают. Сначала я загружал файлы .cert и .p12, и он был ошибочен при загрузке. Затем я загрузил весь файл login.keychain, который он успешно проанализировал. Я даю ему пароль для ключей. Я получил строку «identity», украв ее из раздела «информация», щелкнув правой кнопкой мыши по ключу в менеджере ключей; «Разработчик iPhone: William Guynes (XXXXXXXXXX)». Прошедшая успешная загрузка у меня нет способа узнать, правильны ли другие два поля. Я считаю, что желаемым паролем является пароль login.keychain, но описание поля немного расплывчато. Я нашел частично размытый пример строки «identity», но я догадываюсь, где его получить.
Это не тот случай, когда мой ключ был моим именем пользователя и Дженкинсом, используя имя пользователя «Jenkins». Когда задание отбрасывается на пульт дистанционного управления, он запускается как пользователь с именем «ci». Я могу дать все необходимые разрешения, в том числе напрямую манипулировать своими связующими звеньями. Я не получил этого, чтобы работать, но я чувствую, что обходной взлом вроде этого не должен быть необходим с плагином в первую очередь.
Выходной ток сборки:
Console Output
Started by user William Guynes
Building remotely on mini (osx) in workspace /Users/ci/workspace/websocketclient
> git rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repository
> git config remote.origin.url ssh://lion.guynes.net/var/git/WebSocketClient.git/ # timeout=10
Fetching upstream changes from ssh://lion.guynes.net/var/git/WebSocketClient.git/
> git --version # timeout=10
using GIT_SSH to set credentials
> git -c core.askpass=true fetch --tags --progress ssh://lion.guynes.net/var/git/WebSocketClient.git/ +refs/heads/*:refs/remotes/origin/*
> git rev-parse refs/remotes/origin/master^{commit} # timeout=10
> git rev-parse refs/remotes/origin/origin/master^{commit} # timeout=10
Checking out Revision 51c15eabd01c443ef6fee24cc755af60f706a4f0 (refs/remotes/origin/master)
> git config core.sparsecheckout # timeout=10
> git checkout -f 51c15eabd01c443ef6fee24cc755af60f706a4f0
> git rev-list 51c15eabd01c443ef6fee24cc755af60f706a4f0 # timeout=10
[websocketclient] $ /bin/bash /var/folders/54/kvd8ytzd6yl3d2y7zdxf_ygw0000gp/T/hudson2702132375138804077.sh
Executing do/all
Executing do/setup
Executing do/build
=== BUILD TARGET WebSocketClient OF PROJECT WebSocketClient WITH THE DEFAULT CONFIGURATION (Release) ===
Check dependencies
Code Sign error: No code signing identities found: No valid signing identities (i.e. certificate and private key pair) were found.
** BUILD FAILED **
The following build commands failed:
Check dependencies
(1 failure)
Executing do/test
Finished: SUCCESS
Я провел целый день прибегая к помощи и пытается найти ответ. Многие ссылки возвращаются к this blog post, но он описывает ручное копирование файла инициализации и перемещение ключей с «входа» в «Система». Не следует принимать во внимание удаленный сервер. Кажется, это временный взлом для решения проблемы, которую плагин был разработан для решения в первую очередь!