RPGツクールMVのAndroidアプリ化(Cordova)
はじめに
本書は、RPGツクールMVで作成したプロジェクトをCordovaを使用してAndroidアプリ化する手順を記述した物である。
Windows環境での記述となる。
2019年3月25日記述。
全体の流れ
以下のフローチャートが全体の流れである。
デベロッパー登録
Google Playで公開する場合、Androidのデベロッパー登録が必要である。
初回登録時に$25必要である。
また、Androidアプリ作成時にパッケージ名を指定するが、このパッケージ名は重複を避けるためにドメイン名を使用するのが通例である。ドメインを持っていない場合、ドメイン取得を行う。尚、無料でドメイン名を取得する方法もあるので適宜利用すること。
他に、Androidアプリで広告を表示する場合、AdMobなどの登録が必要である。この場合、住所や入金先口座の登録が必要である。
尚、Google Playを経由しない場合、Android端末側(つまりユーザー側)で「提供元不明のアプリ」のインストールを許可する事でAndroidアプリのインストールが可能である。
開発環境の構築
開発環境の構築は以下の流れで行う。
JDKのインストール
JDK (Java SE Development Kit 8) をインストールする。
AndroidはJavaアプリを動かすのでJDKが必要である。
Android SDKのインストール
AndroidのSDK (Software Development Kit) をインストールするために、Android Studioをインストールする。
尚、Android Studioのデフォルトでは、ユーザーフォルダ配下にSDKがインストールされるので、「C:\Android\sdk」などに変更してもよい。
また、AndroidのSDKはNTFS圧縮により効率よく圧縮できるので、ストレージ容量に余裕がない場合はNTFS圧縮するとよい。
Android Studioのインストール後、Android Studioで、Androidの新規プロジェクトを作成する。これにより、必要なSDKがダウンロードされる。
Node.jsのインストール
Node.jsをインストールする。
これは、npmというツールを使うために必要である。
Cordovaのインストール
Cordovaのインストールは、コマンドプロンプト(またはパワーシェル)を使用し、npmコマンドでインストールする。
npm install -g cordova
Cordovaの詳細については、Cordova公式サイトにドキュメントがあるので以下を参照すること。
https://cordova.apache.org/docs/en/latest/
環境変数の設定
まず、以下の変数を追加する。
ここには、「jdk1.8.0_201」などのJDKのフォルダを指定する。
JAVA_HOME
次に、以下の環境変数を追加する。
ここには、Android SDKをインストールしたフォルダを指定する。
ANDROID_HOME
その後、Pathに以下を追加する。
%JAVA_HOME%\bin
%ANDROID_HOME%\platform-tools
%ANDROID_HOME%\tools
%ANDROID_HOME%\tools\bin
%ANDROID_HOME%\build-tools
開発環境のバージョン
作成した開発環境のバージョン確認は、コマンドプロンプトを使用し、以下のコマンドで行う。
java -version
npm --version
cordova --version
また、npm および Cordova のアップデートが必要な場合、以下のコマンドでアップデートする。
npm update -g npm
npm update -g cordova
作品別環境の設定
開発環境が構築できたら作品別のCordovaの環境を設定する。
Cordovaで作品別フォルダを作成
コマンドプロンプトで以下のコマンドを順に入力し、Cordovaの作品別フォルダを作成する。
cordova create 作品別フォルダ名 パッケージ名 アプリ名 -d
cd 作品別フォルダ名
cordova platform add android
RPGツクールMVでデプロイメント
RPGツクールMVのデプロイメントで、「Android / iOS」を選択してデプロイメントする。
デプロイメントして出来た「www」フォルダを作品別フォルダのwwwフォルダと置き換える。
この時、作品別フォルダ側にあるサンプルデータは不要なので、上書きではなく削除するとよい。
config編集
作品別フォルダ内にある config.xml を編集する。
以下の設定が不要な場合、編集しなくても構わない。
アプリバージョンの指定
config.xml の2行目にアプリバージョンを設定する箇所があるので、バージョンアップ時に値を更新する。
<widget ... version="1.0.0" ...>
Androidアプリにはアプリのバージョンが2つある。1つは作者が任意に設定するバージョンで、もう1つが最新バージョンのチェックに使うバージョンである。後者は基本的に1ずつ増やすのだが、Cordovaでは上記のバージョンに応じて設定されるらしいので値を増やしておけばよい。
作者情報
config.xml に「author」という項目があるので、作者情報に書き換える。
Androidバージョンの指定
RPGツクールMVのCordovaでのAndroidアプリ化では、Android 5.0(バージョン21)より古いバージョンでは動作しないので、インストール対象から除外する。
また、「targetSdkVersion」はなるべく最新バージョンを指定する。
<platform name="android">
<allow-intent href="market:*" />
<preference name="android-targetSdkVersion" value="28" />
<preference name="android-minSdkVersion" value="21" />
</platform>
Androidバージョンの指定は config.xml に元々以下の記述があると思われるので、ここに記述を加える。
<platform name="android">
<allow-intent href="market:*" />
</platform>
画面の自動回転
Android端末を傾けると画面が自動回転するが、以下の設定をする事で回転しないように出来る。
以下のいずれかを設定する。
<!-- 縦固定 -->
<preference name="Orientation" value="portrait" />
<!-- 横固定 -->
<preference name="Orientation" value="landscape" />
設定する箇所はXMLファイルの階層に気を付ければよいのだが、分からない場合は、以下の記述の「次の行」に記述しておくとよい。
<content src="index.html" />
アイコンの変更
Androidアプリのアイコンを指定する事が出来る。
作品別フォルダ内の相対パスを書く。
以下の例では、デプロイメントしたRPGツクールMVの「icon」フォルダを指している。
<icon src="www/icon/icon.png" />
設定する箇所はXMLファイルの階層に気を付ければよいのだが、分からない場合は、以下の記述の「次の行」に記述しておくとよい。
<content src="index.html" />
prepare
作品別フォルダ内で何らかの変更を行った場合、コマンドプロンプトで以下のコマンドを実行すること。
cordova prepare
デバッグビルド
以下のコマンドでデバッグ用のAndroidアプリをビルドする。
デバッグビルドでは署名はしない。
cordova build android
テスト
作成されたapkファイルをAndroid端末に送り、動作確認する。
USBケーブル経由でも、クラウド経由でも構わないが、Android端末側で「提供元不明のアプリ」のインストールを許可しておくこと。
リリースビルド
cordova build android --release
署名
キーストアの作成
Androidアプリに署名するキーストアを作成する。
以下のコマンドで作成する。
同じアプリでは、キーストアは同じファイルを以降も使い続けるので、作成は1回である。
注意点としては、パスワードを2つ設定するので忘れないようにすること。
コマンド入力後に、いくつか設定する項目がある。
その中で「この単位に該当する2文字の国コードは何ですか。」という項目があり、日本は「81」である。
keytool -genkey -v -keystore キーストアファイル名 -storepass ストアのパスワード -alias 別名 -keypass キーのパスワード -keyalg RSA -validity 10000
コマンドの解説
-genkey -v
新しいキーファイルを作るよう指定する。
-keystore
作成するキーストアファイルのファイル名を指定する。
-storepass
ストアのパスワードを指定する。
-alias
キーの別名を指定する。
-keypass
キーのパスワードを指定する。
-keyalg
暗号化アルゴリズムを指定する(ここではRSA)。
-validity
鍵ファイルの有効期間(日数)を指定する。十分な長さにしておく。
キーストアによる署名
キーストアが用意できていれば、以下のコマンドで署名する。
コマンドを入力するとパスワード入力を求められるのでパスワードを入力する。
jarsigner -verbose -keystore キーストアファイル名 アプリファイル.apk エイリアス名
アラインの設定
署名後、以下のコマンドを実行する。
Androidアプリは4ビットずらしてデータを持っているらしく、その設定を行う。
アラインを設定する
zipalign -v 4 元ファイル.apk 変更後ファイル.apk
アラインが正しく設定されたか確認する
zipalign -c -v 4 変更後ファイル.apk
公開
Google Playに登録する。
もしくは、何らかの方法でapkファイルをダウンロードさせる。
追記
Androidアプリには、100MBの制限があり、超える場合は分割しないといけない。
以上。