Xcode起動時に古い証明書が自動登録される件
文章だけで分かりづらいですがメモ。
Provisioning PotalのCertificatesとmobileprovisionファイルは対になっているので、たとえばCertificatesを更新した場合には、mobileprovisionも新しいものが必要になります。
ただ、旧いmobileprovisionの有効期限が切れておらず、旧いCertificatesがまだMac上に残っている場合には、これをそのまま使用して実機転送することも可能っぽいですね。
しかしながら問題がありまして、
キーチェーンのログイン項目に同じアカウントでProvisioning PotalからダウンロードしたCertificatesが2つ以上あると実機転送時にXcodeがCode Signing Error を吐きます!
そのため、自分が使用したくない方のCertificatesをキーチェーンから削除するのが鉄則のようです。
※「書き出す」などで証明書の一時退避が可能なようです。
さて、無事キーチェーンからの削除が終わりとりあえずXcodeを再起動してもういっかい試してみるか〜と思うと、Xcodeちゃんがまた同じエラーを吐きます。
あれ、よくみるとXcodeの起動時に消したはずの証明書がまたキーチェーンに出現しているよ。
そんな場合は、Organizerから古いmobileprovision(Provisioning Profile)を削除するといいようです。
Xcodeさんは気が利くので、対になったCertificateをこっそり保持していて、足りない場合にキーチェーンに登録してくれるのです!うzやさしい!
参考
xCode 4 -reinstalls keychain certs that I delete - stackoverflow
http://stackoverflow.com/questions/5264481/xcode-4-reinstalls-keychain-certs-that-i-delete
古いmobileprovisionの削除が完了しXcode再起動時に古い証明書も登録されない。
新しいmobileprovisionと証明書の登録も済んでいる。
でも実機転送が失敗するよ!っていう方は、試しに適当なプロジェクトを新規作成してみてください。
もしこれで実機転送がうまくいく場合、プロジェクトファイルにゴミ(古い証明書などを使用する設定)が残っているのかもしれません。
実機転送がうまくいかないプロジェクトのファイル .xcodeprojを右クリックして「パッケージの内容を表示」から下記ブログ記事に記載されているファイルを修正すると、治るようです。
参考
Code Sign error:Provisioning profile 'xx' can't - cowのブログ
http://ameblo.jp/iphone0126/entry-10862455082.html