CordovaでAndroidアプリをリリースビルドする方法

こんにちは!ぐちです。

署名ファイルを作成

リリース用にアプリに署名を行う必要があるので署名ファイルを作成します。

ここでは作成する署名ファイルを「Hoge.keystore」としエイリアスに「Fuga」とします。

$ keytool -genkey -v -keystore Hoge.keystore -alias Fuga -keyalg RSA -keysize 2048 -validity 10000

実行後にキーストアのパスワード入力を求められますので任意のパスワードを入力して進めてください。
また下記の情報の入力を求められますので任意の値を入力してください。

  • 姓名
    • ローマ字で姓名を入力してください。
  • 組織単位
    • ローマ字で部署名を入力してください。
  • 組織名
    • ローマ字で会社名を入力してください。
  • 都市名または地域名
    • ローマ字で市区町村名を入力してください。
  • 都道府県名または州名
    • ローマ字で都道府県名を入力してください。
  • 国コード
    • JPを入力してください。
  • 確認
    • yを入力してください。
  • 鍵パスワード
    • キーストアのパスワードと同じでOKです。

config.xml

cordovaの設定を修正していきます。

  • widgetのidをユニークなものに変更します。
  • versionを初回なら1.0.0に、アップデートなら数字をあげます。
  • <name>を任意のものに変更します。

リリースビルド

コマンドラインにて下記のビルドを行います。
※プロジェクトのルートフォルダに移動している前提とします。

$ cordova build android --release

上記のコマンドで「Lint found fatal errors while assembling a release target.」というエラーが発生する場合はbuild.gradleファイルに下記のlintオプションを指定すれば回避できます。
※android { }のブロックは既にあると思うのでlintOptionsだけ既存のandroid { }内に追記頂ければ大丈夫です。

android {
    lintOptions {
        checkReleaseBuilds false
        abortOnError false
    }
}

apkファイルに署名する

上記で作成したapkファイルは未署名の状態ですので事前に作成しておいた署名ファイルを使ってapkファイルに署名を行います。

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore Hoge.keystore android-release-unsigned.apk Fuga

キーストアのパスワード入力を求められますので設定したパスワードを入力してください。

※キーストアやapkファイルを指定する場合にはそれぞれ相対指定する必要があります。上記の例では簡略化しています。

android-release-unsigned.apkはplatforms/android/build/outputs/apk/にあります。

リリース用パッケージを生成

署名までが終わったらパッケージングを行います。

zipalign -v 4 android-release-unsigned.apk Hoge.apk

zipalignコマンドはANDROID SDKをインストールしたフォルダの配下にあるbuild-tools/22.0.1/の下にあります。

※22.0.1というバージョンはどれでも大丈夫だと思います。僕は一番数字の大きいもので実行しました。

Google Playにアップロード

ここまでの手順を行い完成したapkファイルをGoogle Playにアップロードすれば公開準備は完了です。公開画面ではアプリの説明やスクリーンショットやアイコンなどを登録する必要がありますがそれらは画面を見ればおわかりになると思います。