2013年4月5日金曜日

[Android] Android4.2でアプリのバージョンダウンをする方法

Androidのアプリをバージョンダウン(例:Version codeが2のアプリをVersion codeが1のアプリで上書き)する場合はADBで以下のコマンドを入力していました。
adb install -r <apkのpath>
しかし4.2(以上?)ではこのコマンドを入力すると以下のエラーが出ます。
Failure [INSTALL_FAILED_VERSION_DOWNGRADE]
なんかバージョンダウンできないよと言われます。adb(version 1.0.31)のオプションにそれらしいものもないしオワタ\(^o^)/

...と思いましたがADBにはもうひとつインストールするコマンドがありました。
pm installコマンドです。4.2の端末でpmコマンドを見ると、
pm install: installs a package to the system.  Options:
    -l: install the package with FORWARD_LOCK.
    -r: reinstall an exisiting app, keeping its data.
    -t: allow test .apks to be installed.
    -i: specify the installer package name.
    -s: install package on sdcard.
    -f: install package on internal flash.
    -d: allow version code downgrade.
-dのオプションにそれらしいものが書いてました。ということで、
adb shell pm install -r -d <package>
または
adb install -r -d <apkのpath>
でバージョンダウンができました。