2010年8月21日土曜日

Android Debug certificate expired on xx/xx/xx xx:xx !

ビルドしようとしたら

[2010-08-21 18:44:41 - Libraroid] Error generating final archive: Debug certificate expired on 10/08/21 18:14!

とか言われて x が消えない。

android developers に書いてあった。

I can't compile my app because the build tools generated an expired debug certificate

どうも、non-Gregorian calendar の locale (グレゴリオ暦以外のロケール) を使っていると、なる場合があるらしい。

Keytool utility (JDKに含まれてる Android build tools)が原因のようだ。

グレゴリオ暦以外のロケールを適切に処理できなくて、過去の日付を有効期限の日付にしてしまうみたい。そのせいで、期限切れのデバッグキーを生成してしまうためにコンパイルエラーになるとのこと。

対処法は、

 1. 最初に、Android build tools が既に作成している
  debug keystore/key を削除する


   つまり、debug.keystore を削除する

    Linux/Mac OSX だと、~/.android.
    Windows XP だと、C:\Documents and Settings\\.android.
    Windows Vista だと、C:\Users\\.android

   にある

 2. 次に、以下のどちらかをする

   * 一時的に開発マシンのロケール (date and time) をグレゴリオ暦の
    ロケールのどれかに変更する。例えば、United States。
    ロケールを変更したら、一度 Android build tools でアプリを
    コンパイル&インストールする。
    build tools が新しい keystore と debug key を正常な日付で
    生成するので、新しい debug key が生成されたら開発マシンの
    ロケールを元に戻す。

   * 開発マシンのロケール設定を変更したくない場合は、別の開発マシンで
    グレゴリオ暦を使用して keystore/key を生成して、その
    debug.keystore ファイルを/キーを、開発マシン上でコピーする。

 
# いままで、問題なかったのに、なんで急にこうなったのかなぁ。
# と考えて思いつくことといえば、なんかのソフトウェアアップデート
# をしたくらいなんだよね。それが原因だったのかな。。。?

0 件のコメント:

コメントを投稿