LoginSignup
8
6

More than 3 years have passed since last update.

XamarinのUIWebView廃止対応

Posted at

背景

 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をアップロードしてみて警告が出るか確認してみましょう。
image.png

参考

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

8
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
6