2013-04-29 1 views

ответ

3

Я решил это случайно - после расчесывания веб часами - при воспроизведении шагов при подаче отчета об инциденте с поддержкой Apple.

От Mac (в отличие от сеанса ssh) та же команда генерировала всплывающее окно с запросом разрешения на доступ к Keychain.

После выбора «Всегда разрешать» проблема исчезла. Навсегда.

+0

Это может быть проблемой, если вы пытаетесь подписать пакет, и вы получаете доступ к машине mac через ssh. – bikram990

+0

@ bikram990 -значно! Вот что вызвало проблему - и это решение. –

3

попытаться разблокировать связку ключей от этого терминала:

security -v unlock-keychain -p "<Password>" "/Users/<UserName>/Library/Keychains/login.keychain" 
2

на основе Danny Schoemann's ответа и моих собственных исследований я нашел полное решение для меня:

  1. Вам действительно нужно войти в свой макинтош машине, используя GUI, первый раз и подписывать что-либо с сертификатом, который вам нужен. Затем вы получите окно запроса с доступной опцией «Всегда разрешайте» использовать этот сертификат (или smth).

    • Важно: если вам нужно использовать productsign с SSH или другой сеанс консоли (как Дженкинс), ваш сертификат должен путем установки в систему сферы, но не в область действия пользователя. enter image description here enter image description here
  2. Если вам нужно сохранить сертификат в области видимости пользователя, вам необходимо разблокировать брелка каждый раз, когда в консоли сессии, когда вам нужно что-то подписать (как Alex писал):

    security -v unlock-keychain -p "Password" /Users/<UserName>/Library/Keychains/login.keychain" 
    

    Вы можете поместить его в свой скрипт сборки.

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

+1

Мне также пришлось добавить параметр '--keychain' в' productign', иначе он попытается открыть логин-логин и завершится ошибкой с помощью 'CSSMERR_CSP_NO_USER_INTERACTION'. – UrOni