После того, как set-key-partition-list codeign по-прежнему запрашивает доступ к ключам
Я импортирую файл PEM
, содержащий общедоступные и закрытые ключи для моего идентификатора подписи кода с помощью следующей команды:
security import "${PEM_FILE}" -k ~/Library/Keychains/login.keychain -T /usr/bin/codesign -T /usr/bin/security
В OS X 10.11 El Capitan
я мог бы codesign
без подсказки:
codesign --force --sign "${IDENTITY_HASH}" --timestamp=none `mktemp`
Однако, поскольку другие имеют , OS X 10.12 Sierra
теперь требуется, чтобы вы set-key-partition-list
после import
:
security set-key-partition-list -S apple-tool:,apple: -s -k "${PASSWORD}" ~/Library/Keychains/login.keychain
Однако даже после set-key-partition-list
я все еще получаю диалоговое окно пользовательского интерфейса, запрашивающее разрешение на доступ к моему закрытому ключу для подписи кода:
![" codeign хочет получить доступ к диалоговому окну]()
Если я нажимаю Always Allow
, тогда будущие вызовы codesign
не запрашивают, но я никогда не хочу, чтобы этот диалог интерфейса отображался. Я хочу, чтобы все это было написано сценарием.
Почему set-key-partition-list
работает для других людей, а не для меня?
Ответы
Ответ 1
В моей первоначальной команде import
я не предоставил пароль для моей брелка. Если я поставлю пароль для команды import
, set-key-partition-list
предотвратит отображение диалогового окна:
security import "${PEM_FILE}" -k ~/Library/Keychains/login.keychain -P "${PASSWORD}" -T /usr/bin/codesign -T /usr/bin/security
security set-key-partition-list -S apple-tool:,apple: -s -k "${PASSWORD}" ~/Library/Keychains/login.keychain
Затем codesign
не отображает диалоговое окно. Он просто работает!
codesign --force --sign "${IDENTITY_HASH}" --timestamp=none `mktemp`