2012年7月5日木曜日

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ストアでインストールしたアプリがある状態でも、アンインストールなしでデバッグできます。

0 件のコメント:

コメントを投稿

RedmineプラグインをGitHub Actionsでテストする

Redmine Advent Calendar 2019 の Qiita で書きました。追っかけで もう一つ 。 Travis-CIで行っていたRedmineプラグインのCIを、GitHub Actionsに変更したものです。 GitHub Actionsをやってみようという...