Play Storeに公開したアプリが、対応している端末なのに[エラーコード 103]と表示され、インストールできない状況に見舞われました。
Playストアの対応端末を見ると、たしかに対応していると書かれているのに、ダウンロードまではできて、インストールはできません。
詳しくはわからないですが、原因としては開発環境のJavaのバージョンと実行環境のJavaのバージョンの違いでゴニョゴニョうまくいっていなかったようです。
解決策としては、開発環境のJavaのバージョンをコンパイルする際に一時的に1.6まで落として、パッケージを作成し、そのパッケージをストアに公開することで解決しました。
パッケージの署名を行う際に後ろに -sigalg SHA1withRSA -digestalg SHA1 をつけることで解決しました。
参考:
Android旧機種にアプリをインストールする際、 103 エラー – さわやかサタデー
Play Store: Can’t install app, (Error code: -103)
開発環境
- Mac OS X (10.12)
- JDK 1.8.0_45 (下記参照) ※重要
java -version > java version "1.8.0_45" > Java(TM) SE Runtime Environment (build 1.8.0_45-b14) > Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)
リリースビルド後のパッケージについて、署名を行う際に以下のコマンドを利用していました。
[今まで] jarsigner -verbose -keystore <ダウンロードしたkeystore.privateを指定> <apkファイル> <エイリアス名> [新しい方法] jarsigner -verbose -keystore <ダウンロードしたkeystore.privateを指定> <apkファイル> <エイリアス名> -sigalg SHA1withRSA -digestalg SHA1Cordovaからandroidパッケージのビルドについては他記事についてまとめています。
CordovaでAndroidのキーファイルを指定して署名
これで、無事に今までインストールできなかったAndroid4.X端末でもアプリをインストールすることができました。
追記
できたのですが、他のAndroid端末では動作していた操作(ネットワークへのアクセスやデータの保存)がうまく動作していないようです。これは他の問題だと思いますが…なぜだろう…。