iOS14対応をまとめてみた

# 前書き

今年もiOSアップデートの時期がきました。
iOS13の対応は[こちら](https://qiita.com/OkamotoHaru/items/0f285e399ed3fc44ea99)。
毎年エンジニアを泣かせる変更をさらっと行うAppleさんの今年のメニューをピックアップしていきます。
随時更新していけたらと思います。

# 新機能

### AppClip
参考：[Introducing App Clips](https://developer.apple.com/app-clips/)
参考：[ノンエンジニア向けにiOS14のAppClipsでのユーザー体験と機能を伝えるために考慮したい事まとめ](https://qiita.com/satoshin2071/items/2e310a7fc59b0aa92344)
参考：[はじめての App Clip 【概要編】](https://qiita.com/yum_fishing/items/cd9de34dbac59d598ac2)

### WidgetKit
参考：[Introducing WidgetKit](https://developer.apple.com/widgets/)
参考：[【iOS14】WidgetKitのテンプレートを読み解く](https://qiita.com/koooootake/items/0a5b871c0cee884bd5e7)
参考：[iOS14のSmart Stackについて調べてみた](https://qiita.com/toto_kit/items/f75dc36501f7c620db3f)

### SKOverlay
内容：アプリ内で別アプリのインストール推進が楽に実装できる。
参考：[SKOverlay](https://developer.apple.com/documentation/storekit/skoverlay)
参考：[【iOS 14】SKOverlay を使ってオススメ/関連アプリを紹介する UI をお手軽実装](https://qiita.com/MilanistaDev/items/363c08766e0a01f11aa8)

# 今すぐ必要

### ガイドラインが更新された
いつまで：今すぐ
参考：[App Store Review Guideline updates now available](https://developer.apple.com/news/?id=xqk627qu)
参考：[新 App Store 審査ガイドライン 翻訳&差分ガイド 2020年9月号](https://qiita.com/midnightSuyama/items/45f47c45986ee09eafb1)

### Xcode12でUITableViewCell内のタップが反応しない
いつまで：今すぐ
参考：[Xcode12でUITableViewCell内のタップが反応しない・挙動がおかしい](https://qiita.com/zwtin/items/26e807d9cf6ea91e4c30)

### ローカルネットワークの取得にパーミッションが必要になった
いつまで：今すぐ
内容：おそらくSSDPとかでも必要だと思います。
参考：[iOS14でローカルネットワークの利用](https://qiita.com/KenNagami/items/e0a603221def205b71ea)

# 今後必須

### **全てのアプリでXcode12でのビルドが必要**
いつまで：2021年４月
内容：新しいバージョンは基本翌4月までに対応が必須のようです。
参考：[Submit your iOS and iPadOS apps to the App Store.](https://developer.apple.com/ios/submit/)

### 追跡型広告（IDFA）にパーミッションが必要になった
いつまで：2020年内
内容：代替としてSKAdNetworkが更新されますが、力不足感がとてもあります。
参考：[iOS14でエンジニアがすべきIDFA対応](https://qiita.com/koooootake/items/e467be2c4f63ff605841)
参考：[iOS14「SKAdNetwork」で必要な対応をまとめました。](https://qiita.com/bosteri_bon/items/36233fdbc478d7e74cc9)

# 必要に応じて

### UIDatePickerの表現が変わった
いつまで：必要に応じて
内容：カレンダーポップアップは熱い。簡易的でいいならFSCalendarいらなくなるかも？
参考：[iOS14でのUIDatePickerの挙動について](https://qiita.com/kj_trsm/items/a53b0b3f7e1bc7c06106)

### 位置情報が「ざっくり」と「正確」を選択できるようになった
いつまで：必要に応じて
内容：意図しない位置情報の取得につながる可能性がある。
参考：[【iOS 14】正確な位置情報をOFF時にはジオフェンスが無効となる](https://qiita.com/YujiHamada3/items/6ff8e9f885a8e8553815)
参考：[iOS14でのCore Location変更点](https://qiita.com/kj_trsm/items/66e07c61ce4a3142832f)

### 通知パーミッションのパラメータが増えた
いつまで：必要に応じて
内容：通知権限をswitch()比較してdefault:を用意していないワーニングが出ます。
参考：[UNUserNotificationCenterでSwitch must be exhaustiveのwarning対応](https://qiita.com/koooootake/items/141dbca5c9b56b9a6e99)

### 通知の表示が変わった
いつまで：必要に応じて
内容：設定によってアプリ中にトーストされなかったりする。
参考：[UNNotificationPresentationOptionsの「.alert」が「.banner」と「.list」に分かれた](https://qiita.com/uhooi/items/7e7f0293a83b57eaf72f)

### 写真アプリへのアクセス方法が変わった
いつまで：必要に応じて
内容：L○NEとか写真選択めっちゃうるさくなった...。
参考：[iOS14での写真アプリへのアクセスレベルについて](https://qiita.com/ta9yamakawa/items/dc0c1d9452f804c54162)

### サードパーティ制Webブラウザアプリをデフォルトに設定するためにはInfo.plistの変更が必要
いつまで：必要に応じて
参考：[[翻訳] iOS 14 標準Webブラウザ対応](https://qiita.com/ShingoFukuyama/items/5b3028055fbeb26a8b01)
参考：[canOpenURLがfalseになる問題](https://qiita.com/toto_kit/items/757dfe0a9fddb28eeff5)

### UIPageControlにカスタム画像を設定できるようになった
いつまで：必要に応じて
参考：[iOS 14におけるUIPageControlの新機能](https://qiita.com/MaShunzhe/items/be52ecd6f8e7b62827f7)

### StoreKitがシミューレータでテストできるようになった
いつまで：必要に応じて
参考：[WWDC2020のIAP(アプリ内課金)周りの修正について](https://qiita.com/saten_qiita/items/08fdfd4439061647a856)
参考：[Xcode 12 でのアプリ内購入のテスト](https://qiita.com/MaShunzhe/items/486f45ba39433ce10d8a)

### ペーストするとトースト表示されるようになった
いつまで：必要に応じて
参考：[iOS 14：クリップボードにアクセスする前にその内容の種別を検知](https://qiita.com/MaShunzhe/items/882191590d6ef071dfac)

### Carthage/CocoaPodsを使用しているとビルドエラーがでることがある
いつまで：必要に応じて
参考：https://qiita.com/www51k/items/f6c5fcab7f314e04bf21

### CoreGraphics の描画に互換性の問題がある
いつまで：必要に応じて
参考：[iOS14 CoreGraphics 描画互換問題](https://qiita.com/codelynx/items/fcaefa80e356ee26d3bd)

# 筆者の理解が及ばないが何か変わったもの

### Wi-Fi MAC アドレスランダム化機能が変更された
いつまで：必要に応じて
参考：[iOS 14 での Wi-Fi MAC アドレスランダム化状況](https://qiita.com/masap/items/7fbd4cfb89a41149e524)