2017-02-12 57 views
1

我在Mac Sierra上建立了Jenkins CI,使用Xcode 8.2和自動簽名構建iOS應用程序。當使用Xcode作爲開發人員時,所有工作都很好。然而,詹金斯使用xcodebuild聯編與以下故障:Jenkins iOS構建在Mac Sierra上xcodebuild 8.2代碼簽名期間失敗(SecKey API返回-25308)

SecKey API returned: -25308, (null)/Users/Shared/Jenkins/Home/workspace/App/build/Build/Intermediates/ArchiveIntermediates/App/InstallationBuildProductsLocation/Applications/App.app/Frameworks/GTMSessionFetcher.framework: unknown error -1=ffffffffffffffff 

我遵循了security/codesign in Sierra: Keychain ignores access control settings and UI-prompts for permission的意見,但沒有成功。

我已經嘗試將兩個私鑰和證書放入系統鑰匙串中,無濟於事。

如果我以Jenkins用戶身份登錄並手動運行codesign命令,我總是允許訪問鑰匙串,並且它可以反覆使用。但是,Jenkins CI所調用的運行不會。 (詹金斯大師是Mac,我正在使用這個相同的Mac來構建。)

錯誤提到了CocoaPod GTMSessionFetcher。這與CocoaPods有關嗎?

任何想法,將不勝感激。

回答

3

我遇到了完全相同的問題,我確信它與CocoaPods無關,它是一個代碼問題。我做的一些事情:

  1. 檢查我沒有重複的鑰匙串入口。這post是有用的。事實證明,我有一個重複的項目。

  2. 檢查私鑰被允許所有的應用程序,如解釋here

  3. 嘗試this(注意,因爲MacOS的塞拉利昂login.keychain已更改爲login.keychain-DB),其是你提到的建議中的第二個答案,但沒有奏效。

  4. 將私鑰和證書移至系統密鑰鏈(只在登錄鑰匙串上保留證書)。最後一步是讓事情順利進行的一步。

如果這是沒有幫助的,你可以嘗試手動解鎖登錄鑰匙串在你詹金斯的工作(即做的把戲我之前,我感動密鑰的證書到系統鑰匙圈):

node("macOS-sierra") { 

    ......... 

    stage("Build"){ 
    sh 'security unlock-keychain -p KEYCHAIN_PASS "/Users/YOUR-CI-USER/Library/Keychains/login.keychain-db" && fastlane beta' 

    } 

你可以用這個檢查你的鑰匙扣:

$ security list-keychains 
+0

2.解決了這個問題對我來說=>協同設計 - 總是有很多的樂趣;-) – d4Rk

+0

最後,我有一個重複證書。刪除所有並重新添加後,它再次工作!非常感謝所有這些提示......非常有幫助! –

相關問題