У меня есть .pkg файл, который должен быть подписан с помощью TeamCity после нашего TeamCity завершения сборки.
В идеале это может быть шаг сборки или скрипт, который выполняется в конце. После исследования, я попробовал следующее:
Сценарий ВХОД:
security import applicationkey.p12 -k login.keychain -P "password"
security import installerkey.p12 -k login.keychain -P "password"
security -v unlock-keychain -p "password" /Users/administrator/Library/Keychains/login.keychain
security -v unlock-keychain -u /Library/Keychains/System.keychain
productsign --keychain /Users/administrator/Library/Keychains/login.keychain --sign 'Developer ID Installer: Company LLC' CompanyInstaller.pkg CompanyInstallerSigned.pkg
pkgutil --check-signature CompanyInstallerSigned.pkg
ВЫВОД:
unlock-keychain "-p" "mypassword" "/Users/administrator/Library/Keychains/login.keychain"
unlock-keychain "-u" "/Library/Keychains/System.keychain"
productsign: using timestamp authority for signature
productsign: signing product with identity "Developer ID Installer: Company LLC" from keychain /Users/administrator/Library/Keychains/login.keychain
productsign: adding certificate "Developer ID Certification Authority"
productsign: adding certificate "Apple Root CA"
2016-10-05 14:57:11.484 productsign[9385:29611120] SignData failed: CSSMERR_CSP_NO_USER_INTERACTION (-2147415840)
Error signing data.
productsign: error: Failed to sign the product.
ВОПРОС:
Я заметил много решений это упоминание, чтобы щелкнуть «Всегда разрешать» от t он откроет диалоговое окно в первый раз, когда он появится в ссылке на Control Access Keychain, однако мое единственное известное взаимодействие с этим агентом сборки - через SSH. Есть ли способ подписать .pkg с использованием productsign в Teambuilding mac build agent без взаимодействия gui с подсказкой «Всегда разрешать»? Или, есть способ войти в агент сборки и просмотреть gui, чтобы я мог нажать на это «Всегда разрешать», чтобы включить это?
Примечание: Я также попытался сохранением (машина местного подписания) частный ключ управление доступом к «Разрешить все приложения для доступа к этому элементу», экспортировать его, импортировать его в login.keychain агента построения, а затем попробовал выше, чтобы иметь только один вывод. Когда я делаю тот же процесс на моем macbookpro, все работает, однако я не помню, если бы я давно нажал «Alway Allow».
Любые мысли? Очень признателен.