iOS13 がリリースされて少し経ちましたが、3時のOYATSU も遅れながら iOS13 に対応しました。
実際の対応内容を備忘録も兼ねて書いておきたいと思います。
1. ダークモード対応
iOS13 から搭載されたダークモードですが、Xcode11 でビルドするとデフォルトで対応アプリとして認識されてしまいます。
(Xcode10以前でビルドされたアプリはダークモード非対応アプリとして認識されるため、既存のストアアプリに影響はありません)
3時のOYATSU では残念ながらまだダークモードの UI は作成していないため、ひとまずダークモード非対応としてお茶を濁すことにしました。
やることは簡単で、Info.plist にて User Interface Style の値を Light に設定するだけです。
2. UIWebView の削除
iOS13.0 時点ではまだ UIWebView が存在しているようですが、いつ削除になってもおかしくないということなので、アプリ内で UIWebView を使っている箇所を置き換えました。
とは言っても自前実装の部分は WKWebView を使っていたので、プロジェクト内で UIWebView を検索したところ、使っていたのは Facebook のSDK のみでした(Facebook ログインに利用)。
ここは素直に SDK (FBSDKLoginKit) を pod update で最新にすることで対応しました。
3. GET メソッドのパラメータ実装を修正
この部分が一番大きな問題となったのですが、Xcode11 でビルドした当初は何も API から値が返ってこない状態となっていました。
ログを見たところ、GET メソッドのパラメータがうまく設定できていないようでした。
実装をよく見ると、GET メソッドの場合にも POST メソッドと同じく HttpRequest の httpBody にパラメータを設定していることがわかりました。
GET メソッドの場合は、URL パラメータとして値を渡すようにしたところ正しく動作するようになりました。
(iOS13 にて仕様が変わったのかもしれませんが、むしろ今まで動いていたほうがおかしかったのかもしれません)
4. Firebase 関連の SDK を更新
実際になにか問題を確認したわけではないですが、念の為 Firebase 関連の SDK も pod update しておきました。
5. Twitter API の Callback URL を設定
これに関しては iOS13 対応ではなく、TwitterKit を更新したことによる影響だと思いますが、Twitter Developers にて Callback URL を正しく設定しないと、Twitter のログイン連携ができなくなっていました。
下記の通り設定することで、解決です。
twitterkit-[API Key]://
以上が対応内容になります。
OS のメジャーアップデートが来るとそれの対応に追われて大変ですが、常にアプリは最新の OS に追従しておきたいですね。
※この記事の内容は https://3jino-oyatsu.com/blog/220/ からお引越ししたものです