2011年7月5日火曜日

codesign failed

アップルのデベロッパー登録は1年毎に更新する必要がありますが、この時アップルの説明書の通りに更新しても、いざ新しくビルドを行おうとする時に以下のエラーが出てハマる場合があります。


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

・・・の部分は開発者ごとに異なります。

この原因はキーチェインに以前登録した古い開発者用の証明書が残っていて、「証明書ユーティリティが新しいのと古いのとどっちを使っていいのか分からない」のが原因みたいです。
この場合、 【アプリケーション】→【ユーティリティ】にあるキーチェーンアクセスを起動してみると、☓印がついた証明書(期限切れの証明書)があると思うので、削除します。

☓印がついた証明書が見えない場合もあり(私はこれでハマりました)、この場合は検索ボックスで「iphone」と検索すると表示されるようになります。


【追記】
xcode4.0.1を使っている時にエラーが出る場合もあります。
この場合、xcode4.1がひっそりとリリースされていて、をれを使えば直る場合があります。
バージョン4以降は【product】→【edit scheme】でArchiveのBuild ActionをDistributionに変えておくのも忘れないようにしましょう。

【更に追記】
同じcodesignエラーですが、エラーの内容が以下の様になる場合があります。

Code sign error: The identity "iPhone Developer" doesn't match any valid certificate / private key pair in the default keychain.

これはキーチェインがデフォルトになっていないからだそうです。
【アプリケーション】→【ユーティリティ】でキーチェインアクセスを起動し、左上の窓からログインを右クリック。【キーチェーン”ログイン”をデフォルトにする】を選択するとエラーが出なくなります。

0 件のコメント:

コメントを投稿