場景:Teamcity:Mac構建代理無法使用productsign對.pkg文件進行簽名。 SignData失敗:CSSMERR_CSP_NO_USER_INTERACTION(-2147415840)
我有一個需要使用的TeamCity我們的TeamCity構建完成後簽署了.pkg文件。
理想情況下,這可能是最後運行的構建步驟或腳本。經過研究,我試過如下:
腳本的輸入:
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
OUTPUT:
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的「始終允許」他會在第一次參照Keychain的訪問控制時出現對話框,但是我與該構建代理的唯一已知交互是通過SSH。 是否有一種方法可以使用Teamcity mac build agent上的productsign簽署.pkg,而無需與此「始終允許」提示進行交互?或者,有沒有辦法登錄到構建代理並查看gui,所以我可以點擊這個「始終允許」來啓用它?
注:我也試過保存(本地簽名機)的私鑰的訪問控制「允許所有應用程序訪問此項目」,出口,它導入到生成代理的login.keychain,然後再次嘗試以上,只有相同的輸出。當我在我的macbookpro上執行同樣的過程時,一切正常,但我不記得我是否從很久以前點擊「始終允許」。
有什麼想法?非常感激。