undeclared type support previous objective example broken before ios objective-c iphone ios11 wkwebview

type - wkwebview ios



CaĆ­da de iOS11 WKWebview debido a NSInvalidUnarchiveOperationException (4)

Con ObjectiveC estoy desarrollando una aplicación SingleView dirigida a iOS 11 que tiene una vista controlador / vista. En el Main.storyboard en la parte superior de la vista, he eliminado una vista de WebKit (WKWebView).

Estoy viendo un fallo tanto en el simulador como en un iPhone 6 con iOS 11.0.1:

Aplicación de terminación debido a la excepción no detectada ''NSInvalidUnarchiveOperationException'', razón: ''No se pudo instanciar una clase llamada WKWebView''

¿Necesito algo más para que funcione? Parece que no puede crear una instancia de WKWebView al despertar del guión gráfico.

Otros detalles:

  • Xcode versión 9.0 9A235
  • Cuando quito el WKWebView del Storyboard, el bloqueo desaparece
  • App Base SDK: el último iOS (iOS 11); Destino de despliegue 11.0
  • Usando el WebView (desaprobado) - UIWebView, funciona
  • No intenté instanciarlo manualmente

Pila de colisión:

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

¡Gracias!


Compruebe si en el guión gráfico tiene una instancia de WKWebView mientras que en el código puede tener una instancia de UIWebView


NSInvalidUnarchiveOperationException al cargar el nib / storyboard significa que hay un objeto en el nib / storyboard que el tiempo de ejecución no comprende. Esto se debe a que falta el marco que define ese tipo de objeto.

Por lo tanto, en este caso, debe vincular el destino de su aplicación con el marco de WebKit para que la aplicación entienda qué es un WKWebView cuando se descodifica del guión gráfico.

Aquí hay una captura de pantalla que muestra las fases de creación del objetivo de la aplicación cuando esto está configurado correctamente:


Seleccione Destino -> General -> Marco y bibliotecas vinculadas -> haga clic en el símbolo + a continuación -> busque webKit.Framwork -> agregar.


Yo también enfrenté el mismo tipo de problema.

Sin declarar WKWebView como Outlet

Consiguió este error mientras se ejecuta en simulador

Después de agregar Outlet funcionó bien para mí.


Espero que esto ayude :)