テラシュールブログ

旧テラシュールウェアブログUnity記事。主にUnityのTipsやAR・VR、ニコニコ動画についてのメモを残します。

Android用の証明書を作る その1

とりあえずアプリをGooglePlayにあげようと思ったら、こんなことを言われた。
「apk をサーバーで処理できませんでした。もう一度お試しください。」

調べてみると、けっこうよく起こる現象らしい。
で、噂通り何度もためしてみるとエラーメッセージが変化。
(通信速度が1Mbps前後なので、49MB近いアプリを上げるのは本当に根気が必要だったりする)

参考リンク
APKアップロード失敗への対処(ニジホスマホ部)
http://nijibox.jp/smap/2012/04/apk_upload_erro/
apk をサーバーで処理できませんでした。もう一度お試しください。(S2)
http://s2jp.com/2012/02/the-server-could-not-process-your-apk-try-again/
Android】apkを署名する際の注意点(ぴーちん技術メモ)
http://p-chin.tumblr.com/post/27758295067/android-apk

で、変わったはいいがエラー。
GooglePlayでは、デバッグ証明書で署名されたapkは受け入れられません。有効期限が50年以上の新しい証明書を作成してください。

スクリーンショット 2012-11-22 23.21.36

くそぅ…



■keystoreを作る

UnityにはKeystoreを作る機能があるはずなんだけど、何か上手く動いてくれていない感じ。証明書を作るときに下のようなエラーが出る。まあ上手く作れていないんだと思う。

Error while running 'keytool':<<中略>>
keytool �G���[: java.io.FileNotFoundException: /Users/otyun/Documents/Unity/**** (No such file or directory)
UnityEditor.HostView:OnGUI()


作り方が間違っていたらしい。訂正版はこちら。

[Unity3D]訂正!Android用の証明書を作る その1
http://terasur.blog.fc2.com/blog-entry-330.html

なので、ニジホスマホ部さんの記事を参考にkeystoreを作る。

MacAndroid用Keystore作成(ニジボスマホ部)
http://nijibox.jp/smap/2012/02/mac_androidkeystore作成/

方法は単純で、ターミナルで下のコマンドを打てばOK。カレントフォルダにapp.keystoreが生成されるらしい。

sudo keytool -genkey -v -keystore app.keystore -alias yourapp -keyalg RSA -validity 10000

コマンドを打つと「パスワード」「名前」「住所」を聞かれるので答えておく。
あとsudoで分かる通り、実行するには管理者権限が必要。

ちなみに、普通にやると文字化けしているので、ターミナルの文字エンコードSJISに変更してやる必要がある。
場所はターミナル>環境設定>設定>詳細の右下らへん。
スクリーンショット 2012-11-22 23.28.09

生成したapp.keystoreは、アセットフォルダにでも置いておくと良さげ。



証明書の設定方法は明日にでも書こうと思う。