iOS11 NSInvalidUnarchiveOperationExceptionによるWKWebviewのクラッシュ
2023-11-11 20:27:02
質問
ObjectiveCで、iOS 11をターゲットにしたSingleViewアプリを開発しており、1つのビューコントローラ/ビューを持っています。Main.storyboardでviewの上にWebKit View(WKWebView)をドロップしました。
シミュレータと iOS 11.0.1 を実行している iPhone 6 の両方でクラッシュが発生しています。
キャッチできない例外 'NSInvalidUnarchiveOperationException', reason: 'Could not instantiate class named WKWebView' のため、アプリを終了しています。
私はそれが動作しているために何か他のものが必要なのでしょうか?ストーリーボードからの起動時にWKWebViewをインスタンス化することができないようです。
その他の詳細。
- Xcode バージョン 9.0 9A235
- ストーリーボードから WKWebView を削除すると、クラッシュが解消されます。
- App Base SDK - 最新の iOS (iOS 11); デプロイメント ターゲット 11.0
- WebView(非推奨) -- UIWebViewを使用すると動作します。
- 手動でインスタンス化しようとはしていない
クラッシュスタックです。
2017-11-06 18:38:27.765519+0200 XYZZMap[15689:1093338] *** Terminating app due to uncaught exception 'NSInvalidUnarchiveOperationException', reason: 'Could not instantiate class named WKWebView'
*** First throw call stack:
(
0 CoreFoundation 0x00000001056d01cb __exceptionPreprocess + 171
1 libobjc.A.dylib 0x0000000105032f41 objc_exception_throw + 48
2 CoreFoundation 0x0000000105744b95 +[NSException raise:format:] + 197
3 UIKit 0x000000010692d2c0 UINibDecoderDecodeObjectForValue + 323
4 UIKit 0x000000010692d5db UINibDecoderDecodeObjectForValue + 1118
5 UIKit 0x000000010692d172 -[UINibDecoder decodeObjectForKey:] + 89
6 UIKit 0x00000001062f866b -[UIView initWithCoder:] + 969
7 UIKit 0x000000010692d43d UINibDecoderDecodeObjectForValue + 704
8 UIKit 0x000000010692d172 -[UINibDecoder decodeObjectForKey:] + 89
9 UIKit 0x00000001066dd1a7 -[UIRuntimeConnection initWithCoder:] + 178
10 UIKit 0x000000010692d43d UINibDecoderDecodeObjectForValue + 704
11 UIKit 0x000000010692d5db UINibDecoderDecodeObjectForValue + 1118
12 UIKit 0x000000010692d172 -[UINibDecoder decodeObjectForKey:] + 89
13 UIKit 0x00000001066dc3a4 -[UINib instantiateWithOwner:options:] + 1262
14 UIKit 0x00000001063f8d07 -[UIViewController _loadViewFromNibNamed:bundle:] + 383
15 UIKit 0x00000001063f9610 -[UIViewController loadView] + 177
16 UIKit 0x00000001063f9941 -[UIViewController loadViewIfRequired] + 195
17 UIKit 0x00000001063fa19e -[UIViewController view] + 27
18 UIKit 0x00000001062cdd17 -[UIWindow addRootViewControllerViewIfPossible] + 122
19 UIKit 0x00000001062ce41f -[UIWindow _setHidden:forced:] + 294
20 UIKit 0x00000001062e12bf -[UIWindow makeKeyAndVisible] + 42
21 UIKit 0x0000000106255015 -[UIApplication _callInitializationDelegatesForMainScene:transitionContext:] + 4711
22 UIKit 0x000000010625a245 -[UIApplication _runWithMainScene:transitionContext:completion:] + 1720
23 UIKit 0x0000000106615c6c __111-[__UICanvasLifecycleMonitor_Compatability _scheduleFirstCommitForScene:transition:firstActivation:completion:]_block_invoke + 924
24 UIKit 0x00000001069e33ef +[_UICanvas _enqueuePostSettingUpdateTransactionBlock:] + 153
25 UIKit 0x0000000106615865 -[__UICanvasLifecycleMonitor_Compatability _scheduleFirstCommitForScene:transition:firstActivation:completion:] + 249
26 UIKit 0x00000001066160c3 -[__UICanvasLifecycleMonitor_Compatability activateEventsOnly:withContext:completion:] + 668
27 UIKit 0x0000000106f73c11 __82-[_UIApplicationCanvas _transitionLifecycleStateWithTransitionContext:completion:]_block_invoke + 262
28 UIKit 0x0000000106f73aca -[_UIApplicationCanvas _transitionLifecycleStateWithTransitionContext:completion:] + 444
29 UIKit 0x0000000106c61b9c __125-[_UICanvasLifecycleSettingsDiffAction performActionsForCanvas:withUpdatedScene:settingsDiff:fromSettings:transitionContext:]_block_invoke + 420
30 UIKit 0x0000000106e5cc3e _performActionsWithDelayForTransitionContext + 100
31 UIKit 0x0000000106c61998 -[_UICanvasLifecycleSettingsDiffAction performActionsForCanvas:withUpdatedScene:settingsDiff:fromSettings:transitionContext:] + 231
32 UIKit 0x00000001069e2a4c -[_UICanvas scene:didUpdateWithDiff:transitionContext:completion:] + 392
33 UIKit 0x0000000106258ac6 -[UIApplication workspace:didCreateScene:withTransitionContext:completion:] + 523
34 UIKit 0x0000000106821523 -[UIApplicationSceneClientAgent scene:didInitializeWithEvent:completion:] + 369
35 FrontBoardServices 0x000000010b539158 -[FBSSceneImpl _didCreateWithTransitionContext:completion:] + 338
36 FrontBoardServices 0x000000010b541c4d __56-[FBSWorkspace client:handleCreateScene:withCompletion:]_block_invoke_2 + 235
37 libdispatch.dylib 0x00000001096b643c _dispatch_client_callout + 8
38 libdispatch.dylib 0x00000001096bbaf4 _dispatch_block_invoke_direct + 592
39 FrontBoardServices 0x000000010b56d672 __FBSSERIALQUEUE_IS_CALLING_OUT_TO_A_BLOCK__ + 24
40 FrontBoardServices 0x000000010b56d328 -[FBSSerialQueue _performNext] + 464
41 FrontBoardServices 0x000000010b56d897 -[FBSSerialQueue _performNextFromRunLoopSource] + 45
42 CoreFoundation 0x00000001056732b1 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
43 CoreFoundation 0x0000000105712d31 __CFRunLoopDoSource0 + 81
44 CoreFoundation 0x0000000105657c19 __CFRunLoopDoSources0 + 185
45 CoreFoundation 0x00000001056571ff __CFRunLoopRun + 1279
46 CoreFoundation 0x0000000105656a89 CFRunLoopRunSpecific + 409
47 GraphicsServices 0x000000010be609c6 GSEventRunModal + 62
48 UIKit 0x000000010625bd30 UIApplicationMain + 159
49 XYZZMap 0x00000001047274bf main + 111
50 libdyld.dylib 0x0000000109732d81 start + 1
51 ??? 0x0000000000000001 0x0 + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
ありがとうございます。
どのように解決するのですか?
nib / storyboardの読み込み時にNSInvalidUnarchiveOperationExceptionが発生するのは、ランタイムが理解できないオブジェクトがnib / storyboardに存在することを意味します。これは、その種のオブジェクトを定義するフレームワークが欠落しているためです。
したがって、この場合、アプリターゲットをWebKitフレームワークに対してリンクし、ストーリーボードからデコードされたときにアプリがWKWebViewが何であるかを理解するようにする必要があります。
これが正しく設定された場合の、アプリターゲットの Build Phases を示すスクリーンショットです。
関連
-
IOSラーニングノート「このクラスはxxxのキーバリューコーディングに対応していません」問題解決
-
JenkinsがIOSを自動パッケージングしてモミを配布
-
[解決済み] 文字列の長さを取得する
-
[解決済み] Objective-Cでデリゲートを作成するにはどうしたらいいですか?
-
[解決済み] iOS 13 のフルスクリーンでモーダルを表示する
-
[解決済み] iPhone 5の画面解像度に対応したアプリを開発・移行するには?
-
[解決済み] Swift 3, 4, 5 で dispatch_after GCD を書くにはどうしたらいいですか?
-
[解決済み] iphoneアプリのベータテストはどのように行うのですか?
-
[解決済み] SwiftでiOSキーボードを任意の場所でタッチして閉じる
-
[解決済み】Xcode 11.1からXcode 11.2にアップグレードした後、_UITextLayoutViewが原因でアプリがクラッシュする。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
iOSコンパイルポッドでエラー CocoaPods could not find compatible versions for pod "XXXXX" が報告される。
-
[解決済み] UITableViewの選択を無効にするにはどうすればよいですか?
-
[解決済み] iOSのステータスバーの文字色を変更する方法
-
[解決済み] iOSのバージョンを確認する方法を教えてください。
-
[解決済み] UITextFieldのテキスト変更イベント
-
[解決済み] SwiftでUIAlertViewを作成するにはどうしたらいいですか?
-
[解決済み] iPhone 5の画面解像度に対応したアプリを開発・移行するには?
-
[解決済み] iPadマルチタスクのサポートには、これらの方向が必要です。
-
[解決済み] UIImageのサイズを変更する最も簡単な方法?
-
[解決済み] iOSアプリをApple Developer Programや脱獄せずにデバイス上でテストすることができます。