Skip to main content
Version: v8

Android Play Storeへの開発

アプリのリリースビルド作成

Android 用のリリースビルドを生成するには、以下の cli コマンドを実行します。

$ ionic cordova build android --prod --release

これは、アプリの platforms/android/app/build/outputs/apk ディレクトリにある config.xml の設定に基づき、リリースビルドを生成するものです。 Ionic アプリはこのファイルにあらかじめデフォルト値が設定されていますが、ビルドをカスタマイズするために変更することができます。

APK への署名

まず、署名されていない APK に署名する必要があります。署名鍵がすでに生成されている場合は、この手順をスキップして、代わりにその鍵を使用します。 Android SDK に付属する keytool コマンドを使用して、秘密鍵を生成します。

$ keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000

このコマンドを実行し、プロンプトに答えると、カレントディレクトリに my-release-key.keystore という名前のファイルが作成されます。

warning

このファイルを保存し、安全な場所に保管してください。このファイルを紛失すると、Google Play ストアはこのアプリのアップデートを受け付けません!

署名されていない APK に署名するには、Android SDK に含まれる jarsigner ツールを実行します。

$ jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.keystore HelloWorld-release-unsigned.apk alias_name

最後に、APK を最適化するために、zipalign ツールを実行する必要があります。 zipalign ツールは /path/to/Android/sdk/build-tools/VERSION/zipalign にあります。 例えば、Android Studio がインストールされている macOS では、zipalign~/Library/Android/sdk/build-tools/VERSION/zipalign の中に入っています。

$ zipalign -v 4 HelloWorld-release-unsigned.apk HelloWorld.apk

これにより、Google Play ストアに受け入れられる HelloWorld.apk という最終リリースバイナリが生成されます。

Google Play Store にアプリを送信する

リリース用 APK が生成されたので、Play ストアのリスティングを書き、APK をアップロードすることができるようになりました。

まずは、Google Play Store Developer Consoleにアクセスし、開発者アカウントを新規に作成します。

note

Google Play で開発者アカウントを作るには、25US ドルが必要です。

開発者アカウントを作成したら、「アプリケーションを作成する」ボタン(Create an Application)をクリックします。

Create an App button

アプリの説明、スクリーンショット、その他の情報を入力してください。 準備ができたら、生成された署名付きリリース APK をアップロードし、アプリを公開します。

アプリのアップデート

アプリの進化に伴い、新機能の追加や修正などのアップデートが必要になってきます。アプリのアップデートは、Google Play Store に新バージョンを提出するか、Appflow の Live Update 機能のようなライブアップデートサービスを使用することで行うことができます。ライブアップデートでは、Play ストアに変更を送信することなく、Appflow のダッシュボードから直接ユーザーに変更をプッシュすることができます。Live Update についてもっと知るためにはこちらにアクセスください。

note

Google Play ストアでアップデートされた APK を受け入れるには、config.xml ファイルを編集してバージョンをあげて、上記の手順に従ってアプリをリリース用に再構築する必要があります。