1. ホーム
  2. ios

[解決済み] Xcode 9 GM - WKWebViewのNSCodingサポートが以前のバージョンで壊れていた。

2022-04-21 07:53:35

質問

Xcode 9 GMでこのエラーを修正する方法をご存知の方はいらっしゃいますか?私はXcode 8.3で作ったアプリに取り組んでいて、デプロイメントターゲットはiOS 9.3ですが、以前はこの問題が起こったことはありません。ここやAppleのフォーラムではまだ情報を見つけられません :(

編集:このエラーは、WKWebViewをプログラム的に使用した場合ではなく、インターフェースビルダーに配置した場合に発生しました。

編集2:ついにバグではなくなりました。この動作についての詳細は、以下のQuinnの回答をご覧ください。説明をしてくれた彼に感謝します。

解決方法は?

このエラーは正しい動作であり、Xcode 9のバグではありません。WKWebViewはiOS 8で導入されたものの、バグがあり -[WKWebView initWithCoder:] iOS 11 で初めて修正され、実行時に必ずクラッシュするため、Interface Builder で設定することができなくなりました。

https://bugs.webkit.org/show_bug.cgi?id=137160

開発者がIBで作ったものが実行時に壊れるのではなく、ビルドエラーになるのです。iOS 11がリリースされたばかりなので不便な制限ですが、他に良い選択肢がないのが実情です。

古いデプロイメント ターゲットに対する回避策は、@fahad-ashraf がすでに彼の回答で説明したように、コードで WKWebView を追加し続けることです。

https://developer.apple.com/documentation/webkit/wkwebview