署名したapkをPlayストアにアップしたら、一部の端末で
「パッケージファイルに正しく署名されていません」が表示され、インストール不可の状態になった。
開発環境
Android Studio : 1.0.1Ubuntu : 14.04
Java : OpenJDK1.7.0_65
原因
jarsignerの署名方式のデフォルト値がJDK6までとJDK7以降で変更されているようです。そのため、コマンド実行でJDK7を使用して署名を行ったため「パッケージファイルに正しく署名されていません」と表示される端末が発生しました。
参考:
・JDK7でAndroidアプリをリリースビルドする方法
・Androidアプリをリリースしたら「パッケージファイルに正しく署名されていません」と表示されて焦ったでござる
解決方法
build.gradleに署名用の記述追加(OpenJDK1.7.0_65のままで大丈夫でした)参考:AndroidStudio で APK の署名の設定を gradle.properties に記述する
gradle.propertiesに署名関連の設定を記述することで、
gitignoreでgradle.propertiesをgit管理の対象外にすると、署名ファイルのパスワードなどをアップせずに済むので、とても良いです。
gradle.propertiesに記述する
storeFile=/path/to/your.keystore
は、キーストアファイルのある場所が、/home/ysakaguchi/android/release/android.keystoreなら
storeFile=/android/release/android.keystore
となります。
確認方法
deploygateに修正したapkをアップして、JDK7のデフォルト署名方式だとうまくインストールできなかった端末で、再度インストールを試みたところうまくいくことも、先に確認できました。
「パッケージファイルに正しく署名されていません」が発生する端末は、どれなのかまでは絞れてないですが、SHARP端末はなるっぽい?かもです。
手元にIS05があったので、本件の現象が再現できました。
Xperiaは署名方式が違ってもダウンロードできていました。
手元にIS05があったので、本件の現象が再現できました。
Xperiaは署名方式が違ってもダウンロードできていました。
ちなみに今回の件が分かったアプリはこちらになります↓
0 件のコメント:
コメントを投稿