iOS Developer Program 2年目に突入してしばらくの間、実機でのデバッグをしていなかった。
先日、久し振りにデバッグしようとしたら、開発者証明書(Development Certificate) や Provisioning Profile が expire していたので、新たに作成することにした。
Development Certificate の再作成
鍵ペアや証明書署名要求(CSR)、更にはオレオレ証明書まで、OS付属のユーティリティ「キーチェーンアクセス」の「証明書アシスタント」で作る事ができる。Development Certificate を作成するためにはCSRを作成してそれをAppleに送る必要があるため、この証明書アシスタントのお世話になることになる。
公式のヘルプによると、英語で「証明書アシスタントから『認証局に証明書を要求…」を選んでね」と書いてある。去年、初めて Development Certificate を作った時も同じような手順だったので、鵜呑みにした。
その後、指示通りにCSRを作成すると、次のような状態になった。
orz...
まさか鍵ペアが同名で2つ作られることになるなんて!しかも、どうやら作成日や変更日なんかの情報は記録されていないらしく、どっちが今作ったやつなのか見分けがつかない。削除しようにも、誤って古いの消したらとても困るし、これじゃ管理できないじゃないか。せめて作る前に警告くらい発してくれよ…。
まあ、出来てしまったものはどうしようもないので諦める。
それでは、既存の鍵ペアを使ってCSRを作るには、どうすれば良いのだろうか?試したところ、案外簡単だった。
- 既存の鍵ペアの秘密鍵の方を右クリック
- コンテキストメニューに「[秘密鍵の名前]を使って認証局に証明書を要求…」が出てくるので、選択
- あとは通常のCSR作成とほぼ同じ。違いはダイアログの中に「鍵ペア情報を指定」ってチェックボックスが表示されないことくらいかな。
こんなに簡単な手順でできるんなら、公式ヘルプにも注意書きを書いて欲しいな〜と愚痴りつつも、きちんと Development Certificate が作成されたのでほっと一息。
それでもビルド時にエラー
Development Certificate の再作成後、Xcode の Organizer で Provisioning Profile 一覧を Refresh すると、Team Provisioning Profile が更新されていたので、早速プロジェクトをビルドしてみた。すると…
CodeSign error: Certificate identity 'iPhone Developer: [なまえ] (ID)' appears more than once in the keychain. The codesign tool requires there only be one.
と怒られた。ふむふむ、同名の証明書はkeychainに1つしか置いたらダメなのね。古くて有効期限切れの証明書を削除したら、今度はビルド成功!さぁ、これから実機デバッグ頑張ろうか。
開発環境
MacOS X 10.6.8
Xcode 4.0.2
iOS 4.3.4 on iPhone 3GS