技術

【Android/ionic】これさえやればOK!アプリ公開への道

投稿日:2015年9月2日 更新日:

どうも、中田です。

ionicでHTML5/CSSハイブリッドアプリ開発してるんですが、
GUIでなくコマンドプロンプトからアプリ公開の準備をすることになりました。
細かいことは置いといて、これやればOK手順をまとめときます。

Android用リリースビルド

$ ionic build --release android

keystore作成

$ keytool -genkey -v -keystore XXXXX.keystore -alias YYYYY -keyalg RSA -validity 10000
XXXXXは任意で。
YYYYYはキーストアの中の証明書と鍵ペアの識別alias

jarファイルにデジタル署名

$ jarsigner -verbose -sigalg MD5withRSA -digestalg SHA1 -keystore /(keystoreディレクトリ)/XXXXX.keystore /(ionic作業ディレクトリ)/platforms/android/build/outputs/apk/android-armv7-release-unsigned.apk YYYYY
YYYYYはキーストアの中の識別alias

zipalignする(*後述)

$ /(AndroidSDKのディレクトリ)/sdk/build-tools/(SDKバージョン)/zipalign -v 4 /(ionic作業ディレクトリ)/platforms/android/build/outputs/apk/android-armv7-release-unsigned.apk /(ionic作業ディレクトリ)/platforms/android/build/outputs/apk/android-armv7.apk

はい、これで /(ionic作業ディレクトリ)/platforms/android/build/outputs/apk/配下にapk ファイルができましたので、
これをGooglePlay DeveloperConsoleにアップして晴れて公開できるという流れです。


細かいこと

最初に細かいことは置いてしまったので、書いていこうかと思います。

keystoreについて

keystoreとは、証明書と鍵のペアを複数まとめたファイルでkeytoolを用いて操作していくものです。
普段はkeystoreに複数のペアが入っていて、keytool -list -v -keystore XXXXX.keystoreで内容を見たりできます。

facebookとかでhashが必要になる場合は、このように。。
keytool -exportcert -alias YYYYY -keystore /(keystoreディレクトリ)/XXXXX.keystore | openssl sha1 -binary | openssl base64

jarsignerについて

これは読んで時の如く、jarファイルにsign(署名)するものです。
このアプリは私が作りました!という証明のためのものです。

アプリ公開は自分で作った秘密の鍵で、アプリにデジタル署名してGooglePlayに上げます。
アプリバージョンアップの際、GooglePlayさんは前回と違うデジタル署名がされてたら、
「前回と違くね?作った人違うからだめだよ」と言って公開をさせてくれません。

なので、上段で話に出たkeystoreは大事にしておきましょう。

zipalignについて

簡単に言うと最適化。
作成したアプリをAndroid端末から効率よくアクセスしてもらうために、
4バイトのバウンダリに整頓してくれるコマンドです。

これをしないと、メモリの消費量が上がったり、パフォーマンスにも影響してくるということなので、
やっとくべきものですね。

ちなみにこのコマンドで実施済みかどうかが分かります。
zipalign -c -v 4 ZZZZZ.apk

実施済みなら
Verification succesful
実施済みでないなら
Verification FAILED

以上!

-技術
-,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

関連記事

no image

[wordpress]各固定ページに個別のCSSを読み込ませる

こんばんは wordpreddでオリジナルテーマを作成している時、各固定ページに …

[Slack] スラッシュコマンドでamazon検索

Slackネタです。 amazonがSlackの買収を検討しているとかいないとか …

[XCode] clang: error: linker command failed with exit code 1

どうも中田です 本日はシンプルに。 XCodeでbuild時に発生しました。 エ …

no image

CSSで片方を固定、片方を可変のレイアウトを実装

こんばんは IE8・9ではdisplay: flex;が使えないがために片方を固 …

no image

auto_incrementの値を確認して変更

こんにちは、コーテッグのこやまです。 railsとmysqlを使っていて、自動で …