MonacaのCordova 11サポートについて

Monacaチームの小田川です。

2021年12月21に、Cordova 11がリリースされましたが、MonacaでもCordova 11のサポートが開始されました。Cordova 11の内容や注意点につきましては、下記を参照してください。

今回は、MonacaのCordova 11サポートの内容や注意点についてお知らせします。

ビルド環境の設定について

Cordova 11からはビルド環境の設定が以下のように設定されています。

iOSのビルド環境

  • プラットフォーム:iOS 6.2.0
  • Xcode:Xcode 13

Androidのビルド環境

  • プラットフォーム:Android 10.1.1
  • パッケージタイプ:App Bundle(リリースビルド)

Electronのビルド環境

  • プラットフォーム:Electron 3.0.0

上記の設定は、Cordova 10で既に提供されている設定になるため、大きな変更点はありません。Androidのビルド環境では、Androidプラットフォーム 10.1.1がデフォルト設定になります。Androidプラットフォーム10系は、アプリの動作に影響のある変更が含まれているバージョンになります。Cordova 11未満のMonacaプロジェクトでAndroidプラットフォーム10系未満を使用している場合は、以下の注意点を参照してください。

Monacaテンプレートプロジェクトの変更

Monacaで提供されているCordova 11用のテンプレートプロジェクトでは、Cordovaが提供しているテンプレートプロジェクトの設定を参考にconfig.xmlに設定されているaccessallow-intentの設定が削除されています。

accessとallow-intentが設定されているCordova 11未満のMonacaプロジェクトをCordova 11にアップグレードした場合は、accessとallow-intentの設定は削除されません。accessとallow-intentの設定につきましては、引き続き利用可能です。

Monacaデバッガー

Cordova 11用のMonacaプロジェクトをMonacaデバッガーで動作確認する場合は、現在公式ストアに公開されているバージョン11系のMonacaデバッガーを使用する必要があります。

Cordova 11未満のMonacaプロジェクトをMonacaデバッガーで動作確認したい場合は、MonacaクラウドIDEのビルド画面にある、

  • デバッグ向けビルド > カスタムビルドデバッガー

を選択してビルドを開始することで、対象のMonacaプロジェクト専用のMonacaデバッガー(カスタムビルドデバッガー)を作成して利用することができます。

cordova-plugin-network-information@3.0.0

Cordova 11用のMonacaプロジェクトでは、cordova-plugin-network-information@3.0.0が設定されています。

cordova-plugin-network-information@3.0.0からは、これまで非推奨とされていたnavigator.networkが削除されました。cordova-plugin-network-information@3.0.0以降でconnectionオブジェクトを参照する場合は、以下のように設定します。

  • cordova-plugin-network-information@3.0.0未満の設定:navigator.network.connection
  • cordova-plugin-network-information@3.0.0以降の設定:navigator.connection

サードパーティー製Cordovaプラグイン

更新日が古いサードパーティー製Cordovaプラグインを使用している場合は、Cordova 11の環境に対応していない場合があります。特に、Google Servicesを使用しているような場合は、下記のようなビルドエラーが発生する場合があります。

Some problems were found with the configuration of task ':app:processDebugGoogleServices' (type 'GoogleServicesTask').
  - In plugin 'com.google.gms.googleservices.GoogleServicesPlugin' type 'com.google.gms.googleservices.GoogleServicesTask' field 'intermediateDir' without corresponding getter has been annotated with @OutputDirectory.

Cordova 11にアップグレードした際にサードパーティー製Cordovaプラグインに関するビルドエラーが発生した場合は、Cordova 11に対応した更新版が提供されていないか確認してみてください。

おわりに

Cordova 10でAndroidプラットフォーム 10.1.1を使用している場合は、Cordova 11は、大きな変更点がないバージョンになりますので、比較的スムーズにCordova 11へアップグレードできると思います。Cordova 10でAndroidプラットフォーム 10.1.1未満を使用している場合は、Cordova 11にアップグレードする前にCordova 10のAndroidプラットフォーム 10.1.1で動作確認および対応を行うことで、スムーズにCordova 11へアップグレードできると思います。

OS側の仕様変更等により、Cordovaのアップグレードが必要になる場合があります。旧Cordovaバージョンを使い続けている場合、一気にCordovaのバージョンを最新版へアップグレードした場合は、アプリの動作に問題が発生するケースが多くなります。

現状、Cordovaのアップグレードが必要ない場合でも、現在開発しているアプリがCordova 11で正常に動作するか事前に確認しておくことをおすすめします。