iOS Dev Center の電子証明書を更新する : Objective-C プログラミング

PROGRAM


iOS アプリのデバッグ実行時に電子証明書まわりでエラーが発生する

Xcode 4.6.2 でいつものように iOS アプリのデバッグビルドを行ったところ、ビルドしたアプリを実機に転送するタイミングで、次のエラーメッセージが表示されました。

メッセージの内容からどうやらコード署名を行う証明書の有効期限が切れている様子が窺えます。

証明書と言えば Provisioning Profile の有効期限切れかと思い、Xcode の Organizer で開発用のプロビジョニングプロファイルを確認してみたところ、次のように "Valid signing identity not found" というマークが付けられていました。

プロビジョニングプロファイル自体の有効期限が切れた場合はここが "Profile was expired" となるはずなので、今回はそれとは違う様子です。

 

となれば、残るは iOS Developer Program の電子証明書ということになるのでしょう。

そこで iOS Dev Center にサインインして確認してみると、Certificates のところで何もない事になっていました。

何もないことに戸惑いましたが、少し前に iOS Dev Center がリニューアルされて初めての証明書有効期限切れだったので、もしかすると今の iOS Dev Center では、有効期限の切れた証明書はリストからすぐに消えてしまうのかもしれませんね。

この iOS Certificates 画面の右上にある「+」ボタンを押すと、証明書の新規追加が行えそうな感じだったので、さっそく更新してみることにしました。

iOS Dev Center がこのデザインになってから初めての証明書の更新なので、手順をひとつひとつ整理しながら進めてみたいと思います。

 

iOS Dev Center の電子証明書を更新する

証明書の要求ファイルを作成

iOS Dev Center での証明書作成に先立って、そこで使用する証明書の要求ファイル、いわゆる CSR ファイルを "キーチェーンアクセス" を使って作成します。

キーチェーンアクセスを起動したら、メニューの「キーチェーンアクセス」から「証明書アシスタント」と辿り、「認証局に証明書を要求...」を選択します。

そして "ユーザのメールアドレス" と "通称" を入力します。要求の処理は "ディスクに保存" を選びます。

入力が終わったら「続ける」ボタンを押して、証明書の要求ファイルをディスクのどこかに保存しておきます。

ここで保存したファイルは、次の iOS Dev Center での証明書発行時に使用します。

 

iOS アプリ制作用の証明書を発行

証明書の要求ファイル(CSR ファイル)の準備ができたら、iOS Dev Center へ接続して、証明書の発行を行います。

開発環境用の証明書であれば "iOS App Development" を、App Store にリリース出来る証明書であれば "App Store and Ad Hoc" を選択して次に進みます。

大抵は開発用とリリース用の両方を用意することになると思うので、どちらかを先に作成してから、同じ手順で最初からもう一方を選んで作成することになると思います。

 

次の画面は、証明書の要求ファイルの作成手順の説明になります。

ここは、冒頭でお話した証明書の要求ファイルの作成手順が書かれているだけなので「Continue」ボタンを押して次へ進みます。

そして次の画面で、作成しておいた証明書の要求ファイルを選択します。

証明書の要求ファイルを選択して「Generate」ボタンを押すと、数十秒ほどで証明書が出来上がりました。

後は「Download」ボタンを押して、ダウンロードした CSR ファイルをダブルクリックすれば、作成した証明書がキーチェーンアクセスにインストールされます。

そして無事に iOS Dev Center でも、新しい証明書をリストで確認できるようになりました。

 

証明書を更新した後の作業

新しい証明書をインストールしても、そのままでは次のようなビルドエラーが発生する場合があります。

これは、有効期限が切れている古い証明書がまだシステムに残っているために起こるようでした。

 

このエラーが出ないように、キーチェーンアクセスを起動して「証明書」の一覧を確認します。

ここで、先ほど作成した新しい証明書と同じ、有効期限の切れた証明書を探し、その古い証明書を削除します。

 

そうしたら、Xcode の Organizer を起動して、Devices の LIBRARY にある Provisioning Profile の一覧画面を表示します。

ここの右下の方にある「Refresh」ボタンを押すと、現時点での新しい情報で更新されます。

証明書が新しくなっていて、古い証明書が残っていなければ "iOS Term Provisioning Profile: *" は自動的に更新されて、これで無事、今まで通りに iOS アプリをビルドして実行できるようになりました。

[ もどる ]