Cordovaで開発したAndroidアプリをGoogle Playに掲載する (1)
Cordovaで開発したAndroidアプリをGooglePlayに掲載する手順を記します。
Windows10で操作することを前提とします。
1.Cordovaでプロジェクトを作成する
Node.jsを起動して、プロジェクトを生成するルートディレクトリに移動します。
(※Node.jsではなくてCommandPromptでも構いません)
> cd c:\cordova
以下のコマンドでプロジェクトを作成します。
> cordova create [ディレクトリ名] [プロジェクト名] [アプリ名] -d
ディレクトリは予めつくらなくても生成されます。
なお、プロジェクト名は一意のものでなければならないので、「アプリ名.独自ドメイン」のような形にしておくといいでしょう。
※ここではディレクトリ名を「app1」、プロジェクト名を「app.net.kuuur」、アプリ名を「app2」とします。
次に生成したディレクトリに移動します。
> cd app1
Androidネイティブアプリ依存ファイルを生成します。
> cordova platform add android
iOS向けにも開発する場合には以下のコマンドを入れます。
> cordova platform add ios
ブラウザでデバッグできるようにします。
> cordova platforms add browser
ブラウザでデバッグする場合には以下のように入力します。
> cordova serve
この後、「> Static file server running on: http://localhost:8000」と表示されたら、ブラウザから、「http://localhost:8000」にアクセスるとデバッグできるようになります。
Ctrl + cでデバッグモードは終了します。
2.アイコン画像をつくる
アプリの開発が終わったら、リリースビルドする前に、スマホにインストールした時に表示されるアイコンをつくります。これをつくらないと、標準で用意されているcordovaのアイコンになってしまいます。
アイコン画像は以下の6つをつくります。
- 36 x 36 pixel(ldpi):120dpi
- 48 x 48 pixel(mdpi):160dpi
- 72 x 72 pixel(hdpi):240dpi
- 96 x 96 pixel(xhdpi):320dpi
- 144 x 144 pixel(xxhdpi):480dpi
- 192 x 192 pixel(xxxhdpi):640dpi
config.xmlの編集
config.xmlがアプリのルートフォルダにあります。これをテキストエディタで開き、編集します。
<widget>タグ
id属性には、固有ドメインを逆順にしたものを設定します。
例えばドメインが、http://xxx.yyy.comならば、id=”com.yyy.xxx”になります。
ドメインがない場合には、適当に指定してください。
version属性には、バージョンナンバーを入力します。
1.0.0から始まるので、マイナーバージョンアップは1.0.1などと工夫してください。
以下のタグはwidgetタグに内包される形で入力します。
<name>タグ
アプリの名称です。全角、半角カナも使えます。
ここで設定した名称は、スマホで表示されるアイコンの下に表示されます。
アイコン下に表示可能な文字数は、以下の通りです。
なるべくスマホのアイコンの下には読み切れる字数を設定したほうがわかりやすくなります。入りきらない場合には、一部を半角カナにしたり、名称が「あいうえおかきくけこ」ならば、アイコン自体に「あいうえお」と表示して、アプリの名称を「かきくけこ」にする、という方法もあります。
<description>タグ
アプリの説明文。
<author>タグ
email属性には、連絡先eメールを、href属性にはウェブサイトのURLを入力。また、<author></author>の間に作者名を入力。
<content>タグ
src属性に、このアプリが最初に参照するhtmlを指定します。
src=”index.html”など。
アイコンの設定
<platform>タグの間に以下のように入力します。
<platform name=”android”>
<allow-intent href=”market:*” />
<icon density=”ldpi” src=”res/icon/android/ldpi.png” /> …36 x 36
<icon density=”mdpi” src=”res/icon/android/mdpi.png” /> …48 x 48
<icon density=”hdpi” src=”res/icon/android/hdpi.png” /> …72 x 72
<icon density=”xhdpi” src=”res/icon/android/xhdpi.png” /> …96 x 96
<icon density=”xxhdpi” src=”res/icon/android/xxhdpi.png” /> …144 x 144
</platform>
この場合、アイコン画像は、「c:\cordova\app\res\icon\android\」以下に保存します。
3.リリースビルドをする
Node.js command promptを起動します。
起動方法は、nodeで検索すると検索結果候補に出てきます。
まず、開発したアプリのルートフォルダに移動します。
仮にこのフォルダをc:\cordova\appとします。
> cd c:\cordova\app
> cordova build android -release
成功すると未署名のapkファイルが以下の場所に生成されます。
> c:\cordova\app\platforms\android\build\outputs\apk\android-release-unsigned.apk
この場所へのパスは、処理後に表示されます。
4.署名ファイルを生成する(鍵の発行)
Node.js command promptで以下のように入力します。
> keytool -genkey -v -keystore [キーストア名] -alias [エイリアス名] -keyalg RSA -keysize 2048 -validity [日数]
キーストア名は、「.keystore」にしておきます。
エイリアス名はアプリの名前にしておきます。ここでは「app2」とします。
日数は「10000」にします。一般的に10000のようです。
キーストアのパスワードは適当に考えます。ここでは「password」とします。
以下のように質問されるので、答えていきます。
キーストアのパスワードを入力してください:password
新規パスワードを再入力してください:password
姓名は何ですか。:Myoji Namae
組織単位名は何ですか。:[Enter]
組織名は何ですか。:[Enter]
都市名または地域名は何ですか。:[Enter]
都道府県名はまたは州名は何ですか。:[Enter]
この単位に該当する2文字の国コードは何ですか。:JP
CN=Myoji Namae, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=JPでよろしいですか。
[いいえ]:y
<appname>の鍵パスワードを入力してください(キーストアのパスワードと同じ場合はRETURNを押してください):[Enter]
[.keystoreを格納中]
以上でアプリのフォルダのルートに「.keystore」というファイルが生成されます。
このファイルが署名ファイルになります。
5.署名する
Node.js command promptで下記のように入力します。
> jarsigner -verbose -tsa http://timestamp.digicert.com -keystore [署名ファイル名] [apkファイル名] [エイリアス名] -sigalg SHA1withRSA -digestalg SHA1
署名ファイル名は、ここでは.keystoreです。
apkファイル名は、android-release-unsigned.apkです。このファイルは、生成された当初は「platforms\android\build\outputs\apk\」以下に格納されていますが、このままだとパス全部を入力しなければならないので、ルートフォルダ(c:\cordova\app)に予め移動しておきましょう。
エイリアス名は、ここではapp2です。
この後、パスワードの入力を求められます。
キーストアのパスワードを入力してください:password
これで署名は完了です。apkファイル名は変わりませんが、署名されたファイルになっています。
ちなみに以下のように指定しても署名できますが、その場合には警告が表示されます。
> jarsigner -verbose -keystore [キーストア名] [apkファイル名] [エイリアス名]
警告:
-tsaまたは-tsacertが指定されていないため、このjarにはタイムスタンプが付加されていません。タイムスタンプがないと、署名者証明書の有効期限(20**-**-**)後または将来の失効日後に、ユーザーはこのjarを検証できない可能性があります。
6.最適化する
zipalignというツールを使います。このツールはAndroid Studioをインストールした際に一緒にインストールされています。
まずは、zipalignを環境変数に設定して、パスを通しておきます。
環境変数の設定は、「環境変数」で検索すると「環境変数を編集」というものがみつかるので、起動します。
「変数」を「新規」に作成して、zipalign.exeへのパスを指定します。
変数名:「ZIPALIGN_HOME」
変数値:「c:\Android\android-sdk\build-tools\26.0.0\zipalign.exe」
zipalign.exeの場所は、Android Studioをc:\Androidにインストールした場合には、以下のフォルダにあります。
c:\Android\android-sdk\build-tools\26.0.0\zipalign.exe
上記の26.0.0は、インストールしているバージョンにより変わります。常に一番大きい数字のフォルダを選択してください。
さらに、PATHという変数名を選択して、「編集」を押し、「新規」をクリックして、以下のように入力します。
%ZIPALIGN_HOME%
これで完了です。
環境変数に設定したら、Node.js command promptで以下のように入力します。
> zipalign -v 4 [署名したapkファイル] [新たに生成するapkファイル]
署名したapkファイルは、ここでは「android-release-unsigned.apk」になります。
新たに生成するapkファイルは任意の名前で構いません。ここでは、「android-release-signed.apk」にします。
成功すると、アプリのルートフォルダに「android-release-signed.apk」ができあがります。
このファイルをGooglePlayにアップロードします。
次回はGoogle Playにアップロードする方法を記載します。
関連:CordovaでAndroid/iOSアプリ開発環境の構築
関連記事