Monaca

Monacaとは、スマホやタブレットで動作するモバイルアプリがHTML+CSS+JavaScriptを使ってクラウド上で作成できる開発環境のこと。 iOSやAndroidにはWebViewと呼ばれる、アプリ上にWebページを表示する機能があります。 MonacaアプリはこのWebView上で動作するためAndroidとiOS両方で動くハイブリッドアプリができるというわけ。 さらに強力なOnsen UIというUI用コンポーネントと、AngularJSというJavaScriptプログラミングシステムが利用できる。

Monaca日記 2018/7/15(日)

Monacaダッシュボードで、プロジェクトを選択してクラウドIDEで開くをクリックしたところ、「非対応のCordovaバージョン」という警告が出た。「このプロジェクトは現在Cordova6.2を使用しています。あなたの現在のサブスクリプションプランは、Cordova6.2プロジェクトをサポートしていません(以下略)」だそうだ。「プランのアップグレード」をするか「Cordovaのアップグレード」をするかを迫れらているらしい。そこで「プランのアップグレード」を選択すると、おなじみの404 File Not Foundが出る。「Cordovaのアップグレード」を選択すると「このプランではプロジェクト数に制限があるため、バックアップが作成できません」とのエラーが出てしまう。

どちらもできなくて、プロジェクトが開けないじゃないか!ということになってしまった。ではどうするか。まずはプロジェクトを一つ削除してみよう。もったいないんだけど。

プロジェクトを一つ削除した後に、「Cordovaのアップグレード」をしてみたら、お、アップグレードできたらしい。目的のプロジェクトが開けるようになった。

Monaca日記 2018/7/16(月)

さて、Google Play Consoleのリリース管理→アプリのリリース画面で、製品版を公開しようとしたところ、次のようなエラーが出たことはGoogle Play Console日記に昨日書いた。 「このリリースの公開を開始する前にエラーを解決してください。このリリースは公開できません。既存のユーザーに対し、新たに追加された APK へのアップグレードを許可していないためです。」
その警告の内容は 「現在、お客様のアプリは API レベル 25 を対象にしています。セキュリティとパフォーマンスが最適化された最新の API を利用するには、API レベル 26 以上を対象にする必要があります。」とある。つまりAPIレベルが低いということか。だとすればAPKファイルを作成したときに何か設定が悪かったのだろうか。少なくとも昨年11月の時点では問題なかったんだが。

APKファイルを作成したのはmonaca開発環境だ。そこでmonaca開発環境の設定を探ってみることにした。

そしてまず初めにmonaca DOCを見てみたところ、さっそくみつかった。
「Android アプリの基本的な挙動を設定する場合、AndroidManifest.xmlファイルを編集します。このファイルは、Monaca プロジェクトの android フォルダー下に置かれています。」
了解、了解、設定ファイル(AndroidManifest.xml)を修正すればよいのね。と思ったら
「Cordova 6.2 以降をサポートする Monaca フレームワークでは、AndroidManifest.xml ファイルを使用しないように、仕様が変更されました。よって、Android アプリの設定をカスタマイズする場合には、 Custom Config プラグイン を使用する必要があります。」とのこと。がーん。たしかCordovaは6.2じゃなかったかな。とするとせっかく見つけた設定ファイル(AndroidManifest.xml)は使用されていないってこと? あらまあぁ。Custom Config プラグインってなんやねん。そもそもどうやって使用するんねん。

まぁとにかに使用していないかもしれないけど、 AndroidManifest.xmlファイルの「manifestタグ下のuses-sdkタグにアプリで使用する API のレベルを設定」らしいので まずは今現在の設定を見てみるとするか。

あれ、なんか探してみたんだけど、ない!
Android アプリの基本的な挙動を設定する場合、AndroidManifest.xml ファイルを編集します。このファイルは、Monaca プロジェクトの android フォルダー下に置かれています。とのことなんだけど、そもそもandroid フォルダーがない。うーん。もう過去のことは振り返らずに、Custom Config プラグインを使用できるようにするしかなさそうだ。

Monaca上でのプラグインの追加

APKファイルを作るためにどうやらCustom Config プラグインを追加しなければいけないらしい。

MonacaクラウドIDEの設定メニュー→Cordovaプラグインメニューでプラグインを探して追加する。 検索窓ちゃんに「Custom Config」と入力して検索、おぉ出てきました。Custom Config プラグイン。堂々たる「有効なプラグイン」として。うんっ?もう追加されて有効になっているってことだな。では設定値を設定してあげればよいのか。はて、「uses-sdkタグにアプリで使用する API のレベルを設定」ということなんだろうど、タグや値はどのように記述すればよいのだろうか。分からないことだらけです。はい。

そして困ったときはMonacaDocsを見てみよう。ありました、ありました、 Custom Config プラグインについて。

Custom Config プラグイン

android-maxSdkVersion=26
android-targetSdkVersion=26
と設定。

Custom Config プラグインで設定変更後、ビルドしてみる

しかし、ビルドログをみるかぎりtarget-versionが25のままだ。ビルドには成功したのだが、このままではアプリリリースは同様のエラーになってしまうだろう。がーん。

そうこうしているうちに、MonacaのクラウドIDEのプロジェクト画面に「config.xml」というファイルを発見。そこに
android-minSdkVersion=10
android-maxSdkVersion=26
android-targetSdkVersion=26

と記載して再ビルド。ビルドログをみてみると、
「variable android-targetSdkVersion=26」
アツい! android-targetSdkVersionが26になっておる!  中間結果は「BUILD SUCCESSFUL」、やった~、と思ったのもつかの間、 しかしログが進んでいくと、エラー(涙)

:processReleaseManifest FAILED
BUILD FAILED

なかなかうまくいかない。と思った矢先、android-minSdkVersionとかandroid-maxSdkVersionとか余計なものは指定しなくていいんじゃね、と思いつく。とりあえずgoogle_play_consoleでエラーになっているのはandroid-targetSdkVersionだけなのだから。そして android-targetSdkVersionのみ26に指定して再トライ。そうしたらそうしたら、なんとビルド成功! 持つべきものは自分の頭!

今度はバージョンコードがバッティングしてエラー

さあ、android-targetSdkVersionが26になってビルド成功したら、あとはAPKファイルをGoogle Playにアップロードするだけ。 やってみよう! しかし、結果は、、

アップロードできませんでした
バージョン コード 111 の APK または Android App Bundle がすでに存在するため、別のバージョン コードを使用する必要があります。

バージョン コードのバッティング?? でも自分でバージョンコード指定してないし!! 自動的なナンバリングがいけないのでは?? うーんまたしてもよくわからない。APKファイルつくるときに手動でバージョンコード指定できるのでもう一度試してみるか。

と思って再ビルドしようとしたところ、「一日のビルド上限数に達しました」となってビルドできない。。。がーん。無料プランとは言え、無常すぎる。

Cordovaのバージョン

ちなみにCordovaのバージョンは6.5.0と判明。「7.1.0にアップグレード」なんていうリンクボタンがありますが、まだこわくて実行できません。えぇまずは適切なAPKファイルを作るので精一杯なんです。機が熟したらまたお願いします。