背景
Updating Apps that Use Web Views
December 23, 2019
https://developer.apple.com/news/?id=12232019b
既存アプリも2020年12月からUIWebViewを含んだアプリの審査はリジェクトされるようになります。
みんな大好きXamarinのアプリも対応しとかないとね。
#参考情報をもとに試した内容を書いてますがアプリの審査までは試してません
#もし情報に不足・誤り等お気づきの方がいらっしゃいましたらご指摘お願いします
対応方法
「UIWebView使ってるところをWKWebViewに変えれば良いんでしょ〜」と余裕をかましてると場合によっては痛い目にあいます。
使ってるパッケージやサードパーティーのライブラリがUIWebViewを含んでいることがあり得るからです。
最低でも以下の対応が必要なようです。
- Xamarin.Forms を 4.5 以上にあげる
- Xamarin.iOS を 13.10.0.17 以上にあげる
- Xamarin.iOS のビルド引数に
--optimize=experimental-xforms-product-type
を追加する
果たしてそれで十分か?
自分の書いたソース以外にもUIWebViewが潜んでいる可能性があります。
実際にXamarin.Authの中に隠れていました。
https://github.com/xamarin/Xamarin.Auth/issues/423
実際にソースを覗いてみると確かにUIWebViewがいました。
https://github.com/xamarin/Xamarin.Auth/blob/master/source/Core/Xamarin.Auth.XamarinIOS/PlatformSpecific/WebAuthenticatorController.cs#L50
ということで「審査に出してみないとわからない」だと怖いので事前に確認したいですよね。
--warn-on-type-ref=UIKit.UIWebView
をビルド引数に追加すると警告を出してくれるようになります。
他にもビルド後のDLLの中身を覗いてみてもUIWebViewがいるかどうかがわかります。
自信がない人・うまくできない人は実際にipaをアップロードしてみて警告が出るか確認してみましょう。
参考
UIWebView Deprecation and Xamarin.Forms
https://devblogs.microsoft.com/xamarin/uiwebview-deprecation-xamarin-forms/
Xamarin. Forms WebView
https://docs.microsoft.com/ja-jp/xamarin/xamarin-forms/user-interface/webview?tabs=macos#uiwebview-deprecation-and-app-store-rejection-itms-90809
Xamarin.iOS の Web ビュー
https://docs.microsoft.com/ja-jp/xamarin/ios/user-interface/controls/webview#uiwebview-deprecation