2012年10月21日日曜日

[XCode] Cartificatesの有効期限切れでエラー(実機で実行できない)


エラー内容

自分のデバイスで実行しようとしたら、下のエラーが。
--------------------
The identity used to sign the executable is no longer valid.
Please verify that your device’s clock is properly set, and that your signing certificate is not expired.
(0xE8008018).
--------------------




解決までの道のり

[iOS Dev Center]-[iOS Provisioning protal]の[Cartificates]で"You currently do not have a valid certificate"となっていたので、[キーチェーンアクセス]を起動してみたところ、証明書の有効期限が切れてました。

メニューから[キーチェーンアクセス]-[証明書アシスタント]-[認証局に証明書を要求]選択し、[証明書要求ファイル(暗号化されたCSRファイル)]を作成。(point:[ディスクに保存]を選ぶ、[鍵ペア情報を指定]をチェック、[カギサイズ]は[2048ビット]、[アルゴリズム]は[RSA])
[Cartificates]のページに戻り、[Create Certificate]を押して、先ほど保存した[証明書要求ファイル]を登録します。
すると、Action列にDownloadボタンが現れるので、[証明書]をダウンロードし、実行すると、[キーチェーンアクセス]で証明書が端末に登録されました。

この状態でもう一度、XCodeからデバイスで実行を試みる。
あれ?次は下のエラーが。
--------------------
A valid provisioning profile for this executable was not found.
--------------------
有効なprovisioning profileが見つかりませんよ・・・と。

[Provisioning Profiles]を見て、Editすると、[Cartificates]のチェックがはずれてるじゃないか。
チェックを入れ直して、[Provisioning Profile]をダウンロードして、実行登録し、Xcode内の[Build Settings]-[Code Signing Indentity]を更新したら動きました。(更新するまえにOSは再起動しましたが)

余談

Organizerを開いて、Distrivusionの方のRenewを押しても、下のようなエラーが出てて、全く解決方法が分からなかったのですが、同じ理由だと言うことが分かりました。
--------------------
The given profile was not found on the provisioning portal.
Please refresh your provisioning profiles before attempting to renew “XXXXX”
--------------------
Distrivusion側も[Cartificates]が切れてたことが原因だったみたい。
[iOS Provisioning protal]の[Provisioning Profiles]で作り直し(Delete&Insert)たら直りました。

うーん、はまった。

0 件のコメント:

コメントを投稿