2020年4月以降からは、 App Storeに提出されるすべてのiOSアプリは、iOS 13 SDK以降でビルドする必要があります。詳しくは、App StoreにAppを提出するを参照してください。
「App StoreにAppを提出する」には記載されていませんが、「WWDC 2019」で以下の要件が発表されています。
・ Adopt Launch StoryBoards
・ Support any size
・ Support Split Screen Multitasking
詳しくは、Modernizing Your UI for iOS 13 - WWDC 2019 - Videos - Apple Developer を参照していください。
iOS 13 SDK以降でビルドする
iOS 13 SDK以降でビルドする場合は、Xcode 11系でビルドを行う必要があります。Monacaでは、Cordova 9.0プロジェクトを使用することで、Xcode 11系でビルドを行うことができます。
MonacaクラウドIDEから新規でプロジェクトを作成した場合は、Xcodeの標準設定は Xcode 11.3
に設定されています。
既存のCordovaプロジェクトの場合は、MonacaクラウドIDEのメニューにある
ビルド > ビルド環境の設定 > Xcode
から、Xcode 11.3
を選択して、保存
ボタンをクリックすることで、対象プロジェクトをiOS 13 SDK以降でビルドすることが可能になります。
Adopt Launch StoryBoards 対応
Monacaプロジェクトで Launch StoryBoard
に対応する場合は、MonacaクラウドIDEのメニューにある
設定 > iOSアプリ設定 > スプラッシュスクリーン > オートリサイズモード
を選択し、対応した画像を設定することで、StoryBoard に対応することができます。
Support any size 対応
any size(全ての画面サイズ)に対応する場合は、Adopt Launch StoryBoards 対応 の設定を行うことで対応することができます。
Support Split Screen Multitasking 対応
アプリの対象に iPad
が含まれている場合は、マルチタスクでのスプリットスクリーンに対応する必要があります。
Cordova 9.0のiOSアプリの標準設定では、フルスクリーン設定になっているため、スプリットスクリーンには対応していません。スプリットスクリーンに対応する場合は、config.xmlに下記の設定が必要になります。
<platform name="ios">
<edit-config file="*-Info.plist" mode="merge" target="UIRequiresFullScreen">
<string>false</string>
</edit-config>
</platform>
次に、Adopt Launch StoryBoards 対応 の設定を行い、Device Orientationを全ての方向に対応させます。Device Orientationを全ての方向に対応させる場合は、concig.xmlに下記の設定を行います。
<platform name="ios">
<preference name="orientation" value="all"/>
</platform>
WKWebView 対応
2019年12月23日に発表された情報では、2020年4月以降、新規でアプリを提出する場合は、WKWebView対応が必須になるようです。既存のアプリでは、2020年12月以降にアプリを更新する場合は、WKWebViewに対応する必要があるようです。詳しくは、Updating Apps that Use Web Viewsを参照してください。
2020年1月26現在のMonacaで使用されているCordova 9.0のiOSプラットフォームのバージョンは、5.0.1
になります。
WKWebView対応を行うためには、iOSプラットフォーム 5.1.1
を使用する必要があります。
Monacaでは、Cordova 9.0プロジェクトを使用することで、iOSプラットフォーム 5.1.1 を使用してビルドを行うことができます。
Cordova 9.0プロジェクトで iOSプラットフォーム 5.1.1 を使用する場合は、MonacaクラウドIDEのメニューにある
ビルド > ビルド環境の設定 > Platform
から、iOS 5.1.1
を選択して、保存
ボタンをクリックすることで、対象プロジェクトを iOSプラットフォーム 5.1.1 でビルドすることが可能になります。
次に、MonacaクラウドIDEのメニューにある
設定 > Cordovaプラグインの管理
から、cordova-plugin-wkwebview-engine をインポートします。
iOSプラットフォーム 5.1.1 の設定を行い、cordova-plugin-wkwebview-engine をインポートしたら、下記の設定例のようにconfig.xmlに設定を行います。
<platform name="ios">
<preference name="WKWebViewOnly" value="true" />
<feature name="CDVWKWebViewEngine">
<param name="ios-package" value="CDVWKWebViewEngine" />
</feature>
<preference name="CordovaWebViewEngine" value="CDVWKWebViewEngine" />
</platform>
これまでのUIWebViewとWKWebViewでは仕様が異なるため、UIWebViewからWKWebViewへ変更した際に、アプリの動作に違いが生じる場合があります。
現在開発中のアプリでWKWebViewを使用していない場合は、cordova-plugin-wkwebview-engine を使用して、WKWebView対応が必須になる前に、事前に動作確認を行う必要があります。
おわりに
App StoreへiOSアプリを提出する際の必要要件は、定期的に更新されます。対象のアプリが必要要件を満たしているか、一度、確認してみてください。