前書き
対応が必要そうなものを探してまとめてみた。
正直身に降りかからないと細かい仕様までは分からないので、現状をまとめておいて判明次第追記していく。
今すぐ対応が必要
UISerchBarのvalue(forKey:)
メソッドが廃止された
必須か: 必須
内容:UIserchBarでvalue(forKey:)
を使用しているとアプリクラッシュします
参考:https://qiita.com/ktanaka117/items/1a30c4c6052cd8e1a0b7
Bluetooth利用にパーミッションが必須になった
必須か:必須
いつまでに対応すべきか:今すぐ
内容:位置情報等のパーミッション同様、設定しないまま機能を使おうとすると落ちる
参考:http://harumi.sakura.ne.jp/wordpress/2019/08/27/ios13%E3%81%8B%E3%82%89%E3%81%AEbluetooth%E3%83%91%E3%83%BC%E3%83%9F%E3%83%83%E3%82%B7%E3%83%A7%E3%83%B3/
UISearchDisplayControllerがdeprecatedから完全廃止になった
必須か:必須
内容:UISearchDisplayControllerを使用しているとアプリクラッシュする
参考:https://github.com/mapbox/mapbox-gl-native/issues/15559
Sign in with Apple
必須か:アプリによっては必須
いつまでに対応すべきか:新しいアプリは必須。既存アプリは2020年4月。
内容:サードパーティ製またはソーシャル(Facebook、Google、Twitter、LinkedIn、Amazon、WeChat)のログインサービスを使用している場合は、AppleIDでのサインイン対応必須。自社システムのみのログイン、もしくはそのサービス固有の機能を使う(Twitterならタイムライン取得が必要など)なら対応不要。
参考:https://developer.apple.com/app-store/review/guidelines/#sign-in-with-apple
https://qiita.com/_asa08_/items/4f6e383fc6c9d38046ed
VoIPプッシュの仕様が変わった
必須か:必須
いつまでに対応すべきか:新しいアプリは必須。既存アプリは2020年4月。
内容:VoIPプッシュの利用が着信のみになるらしい
参考:https://developer.apple.com/documentation/pushkit/responding_to_voip_notifications_from_pushkit?language=objc
https://qiita.com/sunskysoft/items/34665541d9bec438ee36
2020年4月以降は全てのアプリでiOS13対応、Xcode11でのビルドが必須
必須か:必須
いつまでに対応すべきか:新しいアプリは必須。既存アプリは2020年4月。
内容:題名の通り
参考:https://developer.apple.com/news/?id=09102019a&1568158483
今後必須になりそうなもの
ダークモード対応
必須か:準必須(いまのところ必須ではないが以後必須になる可能性が高い)
いつまでに対応すべきか:不明
参考:https://developer.apple.com/documentation/xcode/supporting_dark_mode_in_your_interface/choosing_a_specific_interface_style_for_your_ios_app?language=objc
https://qiita.com/p_on_ro/items/91e6659fda662fb2aac0
対応時の注意事項:https://qiita.com/tattn/items/c56b15ed8d1cea26a955
UIWebViewがiOS13以降deprecatedになった
必須か:準必須
いつまでに対応すべきか:不明
内容:ドキュメントがdeprecatedになっている。代替UIはWKWebView。
参考:https://developer.apple.com/documentation/uikit/views_and_controls?language=objc
その他変更
遷移アニメーションの対応
必須か:オプション
いつまでに対応すべきか:必要に応じて
内容:遷移モードのデフォルト値が変更された。意図していない「戻る操作」が発生する可能性がある。
参考:https://qiita.com/yh_genephia/items/b82d4df36b4ef1fdcdd8
システムフォントが変更された
必須か:オプション
いつまでに対応すべきか:必要に応じて
内容:boldがiOS12以前より太くなった。ラベル等がはみ出す・見切れる可能性がある。
参考:https://qiita.com/a_t/items/484f7ad52e8c9fd18903
Realmが落ちることがある
必須か:オプション
いつまでに対応すべきか:必要に応じて
内容:iOS13のみエラーが発生することがあるとのこと。
参考:https://stackoverflow.com/questions/48810421/rlmexception-primary-key-property-serial-does-not-exist-on-object-book-mig
スクロールビューのインジケータの仕様が変わった
必須か:オプション
いつまでに対応すべきか:必要に応じて
内容:Could not cast value of type ‘_UIScrollViewScrollIndicator’
参考:https://qiita.com/MilanistaDev/items/8151dd2544b2eda9353b
連続してNavigationViewControllerを表示するとNAvigationBarの高さがおかしくなる
必須か:オプション
いつまでに対応すべきか:必要に応じて
内容:題名の通り
参考:https://qiita.com/duke105/items/9a751062ba15c6fb9511
Xcode11でプロジェクトを新規作成しターゲットをiOS12以前にするとエラーが盛りだくさん
必須か:必須
いつまでに対応すべきか:必要に応じて
内容:iOS13で登場したUIScene等が標準でつくられるため、古いターゲットを含めるとエラーになる
参考:Xcode11で作成したプロジェクトを古いOSに対応させる(とりあえず版)
デバイストークンの取得方法が変わった
必須か:オプション
いつまでに対応すべきか:必要に応じて
内容:通知等で使用するトークンのNSDataの中身が変わっている
参考:https://qiita.com/naofumi_okano/items/6c983959ec2b3a4c8af5
追記
2020/03/31 10:22
2020年4月までの期限が延長されました。
Appのアップデート期限が延長されました(公式)