Flash Builder : アプリケーションのパッケージ化中にエラーが発生しました。 NotAfter: (日付)

広告:超オススメUnity Asset
  広告:超オススメUnity Asset

‘◯◯ の起動’ に問題が発生しました。
アプリケーションのパッケージ化中にエラーが発生しました。
NotAfter: Fri Mar 02 06:30:41 JST 2012

Flash BuilderでiOS用アプリを開発していて、突然このようなエラーが出て、それ以降全くDev用アプリを書き出しできなくなりました。なーーんにも悪いことしてないのに。
これはある日突然やってきます。
(この場合、Android用やiOSの配布用などは書き出せたりします。)


勘のいい人は、このエラーメッセージから何が起きたか想像できるかもしれませんが、あまりにも突然やってきたので、僕は全くわかりませんでした。なのでここにMEMOしておきます。
Flash Builderが壊れた、と思いました。アプリを再インストールまでしました。
下手したら、タイムマシンで過去に戻るところでした。
(このMEMOによって、ひとりでも多くの人が無駄な時間を費やさないように願ってます)

長い説明に入る前に答えを書いておきます。
そう、答えは・・

答え:証明書ファイルの期限が切れた!です。

以下に対処の手順を書いておきます。

iOS Dev Centerへ

iOS Dev Center>iOS Provisioning Portalへ行ってこのエラーの原因が証明書の期限切れかどうか確認してみましょう。
Your Certificateが

You currently do not have a valid certificate

とか、自分のアプリで使用しているものがなかったりしたら、間違いなく期限切れが原因で書き出しできなくなったと思っていいです。

再度、証明書ファイル(.p12)を作る

前に新たに始める際のMEMOとして「iOS Dev Centerの事や証明書(.p12)とプロビジョニングプロファイル準備 ~解説の解説の解説」というのを書いていたのでこちらもご参考に。

上記のMEMOと内容が被りますが、順にショット付きでMEMOしておきます。

  1. iOS Dev Center>iOS Provisioning Portal>Certificates>Developmentで、「Request Certificate」が押せるようになっていると思いますので、押してみましょう。

  2. 下の図のような画面になって、「ファイル選択」してSubmitできるような画面になったら、次の手順でここからファイル送信するものを作っていきます。

  3. MacOSのアプリケーション>ユーティリティ>キーチェーンアクセスを起動します。

  4. 環境設定>証明書にて、オンライン証明書状況プロトコル(OCSP)、証明書失効リスト(CRL)を「切」にします。

  5. キーチェーンアクセスメニュー>証明書アシスタント>認証局に証明書を要求…を選びます。

  6. 証明書アシスタントが開くので、ユーザのメールアドレス、通称欄を入力し、ディスクに保存(鍵ペア情報を指定も)にチェックして、続けるを押しましょう。

  7. そのまま「CertificateSigningRequest.certSigningRequest」を見失わない場所に保存しておいてください。

  8. 鍵ペア情報では、そのまま、鍵のサイズ:2048ビット、アルゴリズム:RSA、でいいです。続けるを押すと証明書要求が作成されました、と表示されます。

  9. iOS Dev Center>iOS Provisioning Portal>Certificates>Developmentに戻り、先程作った「CertificateSigningRequest.certSigningRequest」を選択してSubmitします。
  10. Your Certificate が「Pending Issuance」になるので、

    しばらく待ってページをリロードし、「Download」を押して「ios_development.cer」をダウンロードしてください。(これのデフォルト名が変わった?前は「developer_identifier.cer」だったと思います。)

  11. 「ios_development.cer」をダブルクリックすると、再びキーチェーンアクセスが開きます。
    キーチェーンのところが「ログイン」、分類のところが「証明書」になっている一覧から、
    「iPhone Developer : (名前)」となっている証明書アイコンを開いて、名前のキーアイコン部分を選択している状態で、ファイル>書き出す…を選びましょう。

  12. フォーマットを「個人情報交換(.p12)」となっていることを確認して、名前をつけて保存します。
    この際に、前の記事でも書きましたが、今日の日付とiosであることがわかるようにしておくと、今回の問題のような場合に、原因をいち早く見つけられる手がかりとなるでしょう。
    (フォーマットでp12が選べない場合は、左上のキーチェーンのところがログインになっているか確認です)

  13. パスワードを入力する画面が出てきますので、忘れないパスワードを入れましょう。これは、Flash Builderでテスト版を書き出す際に毎回入力するパスワードとなりますので、そのつもりで入力しましょう。

これで証明書ファイル(「個人情報交換(.p12)」)が準備できました。Flash Builderの開発環境に持って行きましょう。

で、試しにここでp12ファイルだけ、新しいものにして書きだしてみたのですが、やはり、これだけ新しくしてもダメでした。書き出しまではできるようになりますが、実際にデバイスにインストールする時点で「A valid provisioning profile for this executable was not found」のようなエラーメッセージが出てインストールできませんでした。(このエラーメッセージは、iPhone構成ユーティリティでのエラーメッセージです。)

再度、プロビジョニングプロファイルを作る

Provisioning Portal>Provisioning>Developmentには、すでに今まで使っていたProvisioning Profileが存在していると思います。ただ、これに関連付けされているCertificateを新しく作りなおしたために、その関連付けだけやってあげないとダメです。
ちなみに、ここで関連付けする前に、「Download」を押してダウンロードしたプロビジョニングプロファイルでも書き出しまではできますが、やはりデバイスにインストールする際にエラーが発生します。

一度、作成したものが残っているので再度それを作りなおすといった感じです。前のものがよくわからなかったり、再度最初から作り直す場合は、こちらも「iOS Dev Centerの事や証明書(.p12)とプロビジョニングプロファイル準備 ~解説の解説の解説」をご参考に。

  1. 今まで使用していたProvisioning ProfileのEditというところからModifyを選びます。

  2. Certificatesという欄のチェックが外れているので、そのチェックだけして(新しく作ったCertificateと関連付けて)Submitします。

  3. Downloadを押して、Provisioning Profile(.mobileprovision)をダウンロードしましょう。
  4. 先程作ったp12ファイルと.mobileprovisionの2つのファイルをFlash Builderの開発環境に持って行って、新たに作成したこの2つのファイルを指定して、開発用ipaを書きだしてみてください。
    エラーが発生せずに、インストールできるようになったと思います。

コメント

  1. coochan より:

    tshiraishiさん、ありがとうございました。
    画面と操作方法を用いた親切丁寧な解説。50歳を超えた私でも、無事provisioningを更新できました。
    生きることの意味があるとすれば、「人の為」しか思い当たりません。これ以上の喜びもありません。歳を重ねるごとに、つくづくそう感じます。

  2. marbayclip より:

    NotAfterといきなり出て訳がわからず、このサイトで
    トラブル解決できました。
    ありがとうございました