2010年7月11日星期日

在實機測試時如出現 xxxxx ambiguous (matches xxxxx in System.keychain and xxxx in login.keychain xxxx) codesign error 的解決方法

Error: "iPhone Developer: ***** ****** (**********): ambiguous (matches "iPhone Developer: ***** ****** (**********)" in /Library/Keychains/System.keychain and "iPhone Developer: ***** ****** (**********)" in /Users/***********/Library/Keychains/login.keychain) Command /usr/bin/codesign failed with exit code 1"

0係 Keychain Access 度明明得一張 cert 0係 login 度,但又話你有一張相同0既0係 System 度,點解呢?

如果你之前手多裝0左 cert 落 System 度,又 delete 0左佢,就會有呢個問題,因為 Keychain Access 係唔識 delete 真實0個張 cert, 所以要人手去 delete 多次,呢個係 bug or....

先開 Terminal: (0的 ******** 即係你個名...)
打入:“$ sudo /usr/bin/security find-certificate -a -Z -c "iPhone Developer: ***** ****** (**********)" |grep SHA-1

就會出:
SHA-1 hash: 1XXX24A3XXXX9763XXXX44C3XXXXC4F5XXXX940C
SHA-1 hash: 2XXX24A3XXXX9763XXXX44C3XXXXC4F5XXXX940C
SHA-1 hash: 2XXX24A3XXXX9763XXXX44C3XXXXC4F5XXXX940C


第一條係 login.keychin, 第二三條就係 System.keychain 0既 cert 0既 key, 如果唔確定,就打入:“$ sudo /usr/bin/security find-certificate -a -Z -c "iPhone Developer: ***** ****** (**********)" 去慢慢睇一次,跟住就用 security 去 delete 0個兩條 cert, 如下:

$ sudo /usr/bin/security delete-certificate -Z 2XXX24A3XXXX9763XXXX44C3XXXXC4F5XXXX940C
$ sudo /usr/bin/security delete-certificate -Z 2XXX24A3XXXX9763XXXX44C3XXXXC4F5XXXX940C
$ sudo /usr/bin/security delete-certificate -Z 2XXX24A3XXXX9763XXXX44C3XXXXC4F5XXXX940C
Unable to delete certificate matching "2XXX24A3XXXX9763XXXX44C3XXXXC4F5XXXX940C"


再去 compile 一次!YEAH!得0左

沒有留言: