LoginSignup
3

More than 5 years have passed since last update.

Google Playに申請OK → 署名NGでインストール不可?

Last updated at Posted at 2013-04-07

ちょっと原因も対策もよく分からないのでメモ。

前提

  • Titanium Studioからkeystoreを作成した
  • keystoreのオプションは標準のまま(RSA 2048bit)
  • 対象はAndroid 4.0以降
  • AndroidManifest.xmlは更新している

NGまでの流れ

  • 作成したkeystoreを使い、Store用にAndroidビルド
  • Google Playに申請 → OK
  • しばし待つ
  • テスト端末のデバッグ版アプリを削除
  • Google Playから申請アプリをインストール
  • 署名NGでインストールできず
  • あれ?っと思い、申請アプリのadbインストールを試すも署名NG

やったこと

  • Titanium Studioのコンソールから、jarsigner-sigalgオプションがAndroidのドキュメントで指定されているものと異なっているのを確認
  • jarsigner -sigalg MD5withRSA ...(あとは同じ)と手動でサイン
  • zipalignも手動で
  • もう一度Google Playへ申請
  • 通った (´・ω・`) 何があかんかったんやろか。毎回手動で署名とかめんどい

分かってきたこと

  • keystoreを調べると、署名アルゴリズムにSHA256withRSAが書かれている
  • keytool -list -v -keystore XXXX.keystore -alias XXXXで調べる
  • この結果を見て、builder.pyjarsigner-sigalgオプションをSHA256withRSAにしている
  • デフォルトはMD5withRSA、つまり正しい結果になるはず
  • Titanium Studioからkeystoreを作ったからこうなったのかな
  • 毎回手動サインは面倒なので、builder.pyを編集してやった。だいたい1700行目のget_sigalgメソッド。
  • どうやらTerminalの文字コードをS-JISに変更するとOKらしいぞ!まだ試してないけど。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
3