Androidアプリのリリース版がインストールされた端末での開発

Androidのアプリは署名が行われています。
初期設定でこの署名は、デバッグ、リリースで異なるものが使われています。

Playストアに登録するときは当然リリース版になります。
このため、Playストアに登録したものをダウンロードしてある端末を使用してデバッグしようとすると、apkインストール時に以下のメッセージが出て失敗します。
#Eclipseでの結果です。
[2012-07-05 05:57:23 - ConnectLibraries] Re-installation failed due to different application signatures.
[2012-07-05 05:57:23 - ConnectLibraries] You must perform a full uninstall of the application. WARNING: This will remove the application data!
[2012-07-05 05:57:23 - ConnectLibraries] Please execute 'adb uninstall jp.gr.java_conf.twopack.connect_libraries' in a shell.
[2012-07-05 05:57:23 - ConnectLibraries] Launch canceled!

メッセージに従って一度アンインストールすればうまく行きますが、アプリのデータも消えてしまうので不便この上ないです。
このため、リリース用の署名をデバッグ用の署名にする方法があります。
以下のサイトで方法が載っていました。

  1. 以下のコマンドを実行します。<>の部分は置き換えてください。
    $ keytool -importkeystore -v -srckeystore <リリース署名のファイル> -destkeystore <出力先ファイル> -srcstorepass <リリース署名のStoreパスワード> -deststorepass android -srcalias <リリース署名のエイリアス> -destalias androiddebugkey -srckeypass <リリース署名のKeyパスワード> -destkeypass android
  2. Windows -> Preferences -> Android - > Build で Custom debug keystoreに作成した署名を指定する。
  3. リビルドする。


これで、Playストアでインストールしたアプリがある状態でも、アンインストールなしでデバッグできます。

コメント

このブログの人気の投稿

[Spring] Autowiredアノテーションを使っているクラスのユニットテスト

Spring + Thymeleafでデザインの分離を進める(のとっかかり) [Spring Framework Advent Calendar 2012 5日目 #jsug ]

半固定抵抗を使ってみる(回路図も書いてみた)