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に設定されているaccess
とallow-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で正常に動作するか事前に確認しておくことをおすすめします。