2020年4月のXcode11必須化が迫ってきました。
MonacaもXcode11に対応したので、いよいよ対応を進めているのですが、ハマって点をまとめます。
他に何かあったら随時追記します!
2020/3/27追記
4/30から対応が必要でしたが、既存アプリの更新は6/30に延期するとのことです。
https://developer.apple.com/news/?id=03262020b
Bluetoothの権限対応
iBeaconなどでBluetoothを使用している場合、ユーザーにBluetoothのアクセス許可を得る必要がある。
NSBluetoothAlwaysUsageDescriptionを追加する。
config.xmlに以下を追加。
<edit-config target="NSBluetoothAlwaysUsageDescription" file="*-Info.plist" mode="merge">
<string>Bluetoothの利用目的</string>
</edit-config>
ダークモード仮対応
何もしないと、ダークモード時に自動で一部のスタイルが変わってしまう(例えば、ダークモード時にステータスバーのテキストが白になる、など)
とりあえず、Lightモードに固定する方法で回避する。
config.xmlに以下を追加。
<edit-config file="*-Info.plist" mode="merge" target="UIUserInterfaceStyle">
<string>Light</string>
</edit-config>
<edit-config file="*-Info.plist" mode="merge" target="UIViewControllerBasedStatusBarAppearance">
<true/>
</edit-config>
ちなみに、本格的に対応する場合は、以下の記事が参考になります。
https://qiita.com/kishisuke/items/e1fecb20d35693680421
デバイストークンの取得方法変更
phonegap-plugin-pushで同様の問題があり、2.3.0で修正された。
2.3.0にバージョンアップする。
モーダルの仕様変更
モーダルで表示する画面によって対応するかしないか決める。
とりあえず現状通りであれば、modalPresentationStyle
にUIModalPresentationFullScreen
を設定する。
個人的には、以下の基準が良いかと。
-
UIModalPresentationAutomatic
(デフォルト): 参照のみや簡単な入力画面 -
UIModalPresentationFullScreen
: 複雑な入力画面やユーザーが没頭して操作する画面