エラー内容
xibファイルやstoryboardでビューにWKWebViewを配置してビルドすると、以下のエラーが発生する場合がある。
WKWebView before iOS 11.0 (NSCoding support was broken in previous versions)
これはXcodeのバグに起因するエラー。Xcode10以下のWKWebViewではNSCodingにバグがあり、 Interface Builderで組み込むとアプリがクラッシュしてしまうため、ビルド時にエラーになっている。
解決方法
以下のどちらかで回避する。
A) Interface Builderで対象ファイルのビルド対象をiOS 11以上にする
Xcodeでxibまたはstoryboardファイルを選択し、"Builds for"の対象をiOS 11以上に設定する。
B) コードでWKWebViewをビューに追加する
iOS 10以下をサポートする場合はこの方法しかない。 以下のようにコードでWKWebViewを追加する。
- (void)viewDidLoad { [super viewDidLoad]; CGRect webViewFrame = CGRectMake(0, 0, view.frame.size.width, view.frame.size.height); WKWebViewConfiguration* wkWebViewConfiguration = [WKWebViewConfiguration new]; WKWebView* webView = [[WKWebView alloc] initWithFrame:webViewFrame configuration:wkWebViewConfiguration]; [self.view addSubview:webView]; }