1. 程式人生 > >一個簽名錯誤的解決——codesign failed with exit code 1

一個簽名錯誤的解決——codesign failed with exit code 1


前日,Macbook的硬碟不幸掛了,於是將開發環境遷移到Mac Mini下。大家知道,對於Xcode來說,最麻煩的就是各種證書、ProvisioningProfile的配置問題。將原來的各種開發證書和.p12證書匯入到mini上,接下來就碰到了各種莫名其妙的問題。先是無法development(可以debug),發現是證書導錯了(沒有用Agent證書,只有Agent可以釋出)。於是製作證書請求,重新下載證書。

等到部署的問題解決後,又發現無法除錯——真機可以,但模擬器不行,一進入程式就退出,不報任何錯誤。試了各種招數都不行,懷疑是模擬器問題。於是卸了Xcode重灌。重啟後問題解決。

但又出現新的問題。模擬器可以除錯程式了,真機除錯可以編譯,但無法執行,報錯codesign failded with exit code 1。網上查了下資料,沒解決問題。

後來開啟錯誤日誌發現下列描述:

iPhone Developer: Hongyan Yang (GNF23CPXYK):ambiguous (matches "iPhone Developer: Hongyan Yang (GNF23CPXYK)" in/Users/km-cn/Library/Keychains/login.keychain and "iPhone Developer:Hongyan Yang (GNF23CPXYK)" in /Library/Keychains/System.keychain)

Command/usr/bin/codesign failed with exit code 1

原來是鑰匙串系統帳號和登入帳號中的證書衝突了。開啟鑰匙串,檢視登入帳號中的開發者證書(注意identifier為 GNF23CPXYK 的證書):


檢視系統帳號下也有兩個identifier為GNF23CPXYK 的證書,顯然導證書的時候不知道怎麼把證書導進了系統帳號,並且還重複了。把這兩個證書刪除,關閉鑰匙串,問題解決。