MacのCordovaで作ったAndroidアプリを公開したよ
どうも、この前Cordovaを使ったアプリ開発に乗り出したばかりですが、やっと(簡単ですが)一つのアプリができました。というわけで、今回は完成したアプリをGooglePlayに公開するってのをやります。今回はすでにGooglePlayのディベロッパーアカウントを持っていることを前提にまとめていきます。
Cordova : 6.4.0
OS : macOS Sierra
端末 : MacBook Air 2015
1. 公開したアプリ
さて、手順を紹介する前に今回公開したアプリの宣伝をさせてください。今回作成したアプリはTRPG向けのダイスツールです。とにかくシンプルで使いやすいように設計したつもりです。というわけで、よかったらインストールしてみてください。
Google Play
作ってみると、ほぼほぼWebの知識で作れるので、やっぱりお手軽ですね。まだ実機では試してませんがiOSのアプリも同時にできるなんて、いい時代になったものですな。なんて若造がほざいたところで次に行きましょう。
2. config.xml
さて、まずはconfig.xmlを編集してアプリ情報を決めて行きます。正直アプリを公開した今でも正しく設定できているかもわかりませんが自分が設定した箇所をまとめます。基本的にはデフォルトのままですが以下に示すところだけ編集しました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
/config.xml" ]<?xml version='1.0' encoding='utf-8'?> <widget android-versionCode="[アプリのバージョン番号(初めは1でいいかと)]" id="[アプリのローケーション]" version="[version]" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0"> <name>[アプリ名]</name> <description> [アプリの概要説明] </description> <author email="[メールアドレス]" href="[ホームページ]"> [アプリ開発者] </author> ... <platform name="android"> ... <preference name="SplashScreenDelay" value="0" /> <preference name="Orientation" value="portrait" /> <preference name="keepRunning" value="false" /> <preference name="Fullscreen" value="false" /> <icon src="res/android/hdpi.png" density="hdpi" /> <icon src="res/android/mdpi.png" density="mdpi" /> <icon src="res/android/xhdpi.png" density="xhdpi" /> <icon src="res/android/xxhdpi.png" density="xxhdpi" /> <icon src="res/android/xxxhdpi.png" density="xxxhdpi" /> </platform> ... </widget> |
詳しい設定項目は以下のサイトを参照ください。
「Cordova アプリ設定」
ちなみに、アプリのアイコンを設定している”icon”ですが、各画像の保存先は”config.xml”と同じディレクトリに”res”というファイルを作成してそこに画像を突っ込むといいみたいです。platformsディレクトリの下の方にもresディレクトリはありますが、違います。自分はそっちだと思って一日くらい無駄にしました。
3. APKファイルの出力
さて設定が終わったら、やっとAPKファイルの出力です。しかし、出力は簡単で以下のコマンドを実行するだけです。
1 2 |
$ cd [Cordovaのディレクトリ] $ cordova build --release |
コマンドが終わるとどこかにapkファイルが生成されます。自分の環境では”./platforms/android/build/outputs/apk/android-release-unsigned.apk”という感じに出力されていました。
4. 鍵の準備&署名
APKの出力はできましたが、このままリリースすることはできません。というのもなんか署名なるものをしなければいけないみたいです。そして署名には鍵が必要になります。というわけでこれを生成します。生成には以下のコマンドです。
1 |
$ keytool -genkey -v -keystore .keystore -alias app -keyalg RSA -validity 10000 |
すると、何やら色々と質問されます。もちろんちゃんと答えてもいいのですが、どうやらテケトーに答えても特に問題にはならないみたいです(自分はちゃんと答えましたが…)。最低限パスワードの設定だけちゃんとやればいいみたいです。いくつか質問に答え、コマンドが終了すると、カレントディレクトリに”.keystore”という鍵ファイルが出来上がっています。これを使って署名をしていくわけですね。ちなみに、この鍵は将来アプリのアップデートなんかをするときは新しく鍵を生成するのではなく、ここで作成したものを使うと思うので大切に保存しておいたほうがいいと思います。
次は署名です。署名するには以下のコマンドです。
1 2 |
$ # jarsigner -verbose -tsa http://timestamp.digicert.com -keystore [鍵ファイル名] [署名するAPK.apk] [エイリアス] $ jarsigner -verbose -tsa http://timestamp.digicert.com -keystore .keystore ./platforms/android/build/outputs/apk/android-release-unsigned.apk app |
二行目の方が今回実際に実行したコマンドです、参考までに。
5. アプリの最適化
Androidアプリでは公開前に最適化なるものをやるみたいです。これをやらないとGooglePlay公開時に警告が出るみたいです。最適化にはAndroidStudioに同封されているかもしれないzipalignというものを使って行きます。というわけで最適化のコマンドは以下の通りです。
1 2 |
$ # zipalign -v 4 [被最適化apk] [最適化後の名前] $ zipalign -v 4 ./platforms/android/build/outputs/apk/android-release-unsigned.apk ./android-dice.apk |
ここで困ったのがzipalignですが、これが実行できた人は運がいいのですが、自分の環境では見つかりませんでした。というわけで、調べまくったところ”~/Library/Android/sdk/build-tools/x.x.x/zipalign”という場所にありました。参考にした方の環境では”/Applications/adt-bundle-mac-x86_64-20140702/sdk/build-tools/2X.XX/zipalign”にあったみたいです。皆さんも頑張って探してください。
さて、これにてAPKをアップロードする準備は整いました。あとはGooglePlayにアップロードするだけです。
6. アプリのリリース
では、いよいよアプリのリリースです。これに関しては、Googleさんによってかなりの頻度で更新が入るので一概には言えないため、詳細な説明は省きます。とりあえず言えることは、アップロードするのは、署名を完了させたAPKファイル(今回では”android-dice.apk”)です。
おわりに
さて、Cordovaで作ったアプリのリリースをやりましたが予想したよりかは簡単にリリースすることができました。今回は簡単なアプリを使って公開テストみたいな感じでやりましたが、これなら本番アプリを作った時も大丈夫そうです。今後はiOSの方もやろうと思います(年会費がな………)。
「Corova アプリ設定」
「androidアプリのapkのビルドと、リリース手順メモ」
「Zipalign-Command not found-MAC terminal」