Monacaで開発するアプリで対応しているOSの最小バージョンについて
Monacaチームの小田川です。
Monacaで利用しているCordovaでは、対応するOSの最小バージョンが設定されています。詳しくは、こちらを参照してください。
Cordovaが対応するOSの最小バージョンは、ビルド時に使用されるAndroidプラットフォームやiOSプラットフォームで決められており、Cordova 10で提供されているAndroidプラットフォーム9系では、Android 5.1(APIレベル22)
、iOSプラットフォーム6系では、iOS 11
が設定されています。
Cordovaでは、OSの最小バージョンを設定するためのオプションが用意されています。
OSの最小バージョンの設定方法
OSの最小バージョンの設定は、Monacaプロジェクトのルートにある config.xml
やCordovaプラグイン内にあるplugin.xml
から設定することができます。config.xmlから設定を行う場合は、android-minSdkVersion
やdeployment-target
を使用することで設定することができます。詳しくは、こちらを参照していください。
<!-- config.xmlの設定例 -->
<platform name="android">
<preference name="android-minSdkVersion" value="23" />
</platform>
<platform name="ios">
<preference name="deployment-target" value="12.0" />
</platform>
MonacaクラウドIDEから有効にできるcordova-custom-configのようなサードパーティー製Cordovaプラグインからも下記のように設定することで対応するOSの最小バージョンを設定することができます。
<!-- config.xmlの設定例 -->
<platform name="android">
<custom-preference name="android-minSdkVersion" value="23" />
</platform>
<platform name="ios">
<custom-preference name="ios-XCBuildConfiguration-IPHONEOS_DEPLOYMENT_TARGET" value="12.0" />
</platform>
OSの最小バージョンを設定する際の注意点
対応するOSの最小バージョン設定は、各プラットフォームに設定されているバージョンよりも後継バージョンを設定することができます。旧バージョンを設定することはできません。
Monacaでは、Cordovaのバージョンごとに利用できるプラットフォームのバージョンが設定されています。
MonacaプロジェクトにOSの最小バージョンが設定されている状態でCordovaバージョンをアップグレードした場合、Monacaプロジェクトに設定されているOSの最小バージョンが、アップグレードしたCordovaバージョンで利用できるプラットフォームでは対応していない場合があります。
Monacaプロジェクトにプラットフォームで設定されているOSの最小バージョンよりも旧バージョンが設定されている場合、ビルド時に下記のようなビルドエラーが発生します。そのため、MonacaプロジェクトにOSの最小バージョンが設定されている状態でCordovaバージョンをアップグレードする場合には、注意が必要になります。
<!-- config.xmlの設定例:Androidの場合 -->
<platform name="android">
<preference name="android-minSdkVersion" value="21" />
</platform>
// エラー例:Cordova 10の場合
Manifest merger failed : uses-sdk:minSdkVersion 21 cannot be smaller than version 22 declared in library [:CordovaLib] /tmp/download/platforms/android/CordovaLib/build/intermediates/library_manifest/debug/AndroidManifest.xml as the library might be using APIs not available in 21
<!-- config.xmlの設定例:iOSの場合 -->
<platform name="ios">
<preference name="deployment-target" value="10.0" />
</platform>
// エラー例:Cordova 10の場合
/tmp/download/platforms/ios/xxxxxx/CDVLaunchScreen.storyboard:Ze5-6b-2t3: error: Named colors do not work prior to iOS 11.0. [12]
おわりに
MonacaプロジェクトのCordovaバージョンをアップグレードした後に、OSのバージョンに関するビルドエラーが発生した場合は、対象のMonacaプロジェクトにOSの最小バージョン設定が行われていないか確認してみてください。