ver todas notificaciones mensajes llamadas las historial funciona entrantes desbloquear contacto como centro bloquear bloqueados ios swift crash wkwebview ios10.3

ios - todas - WKWebView se bloquea si el usuario responde un iMessage entrante



desbloquear contacto iphone (3)

No estoy seguro si te ayuda. También me he enfrentado al problema de la NAN y sucede si algún valor está dañado o no es válido. Entonces, si puede averiguar dónde se está corrompiendo su valor significa que está imprimiendo NAN y luego puede poner la declaración de seguridad.

Mis aplicaciones tienen un desplome significativo

CALayer position contains NaN: [377.833 nan]

con la siguiente pila -

Fatal Exception: CALayerInvalidGeometry 0 CoreFoundation 0x18283afe0 __exceptionPreprocess 1 libobjc.A.dylib 0x18129c538 objc_exception_throw 2 CoreFoundation 0x18283af28 -[NSException initWithCoder:] 3 QuartzCore 0x185b50acc CA::Layer::set_position(CA::Vec2<double> const&, bool) 4 QuartzCore 0x185b50c48 -[CALayer setPosition:] 5 QuartzCore 0x185b51198 -[CALayer setFrame:] 6 UIKit 0x1889657a8 -[UIView(Geometry) setFrame:] 7 UIKit 0x188979364 -[UIImageView _setViewGeometry:forMetric:] 8 UIKit 0x1889c6c38 -[UIScrollView _adjustScrollerIndicators:alwaysShowingThem:] 9 UIKit 0x188abfb34 -[UIScrollView(UIScrollViewInternal) _adjustForAutomaticKeyboardInfo:animated:lastAdjustment:] 10 WebKit 0x18c14af3c -[WKWebView _keyboardChangedWithInfo:adjustScrollView:] 11 CoreFoundation 0x1827d55f4 __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ 12 CoreFoundation 0x1827d4d08 _CFXRegistrationPost 13 CoreFoundation 0x1827d4a84 ___CFXNotificationPost_block_invoke 14 CoreFoundation 0x1828437a8 -[_CFXNotificationRegistrar find:object:observer:enumerator:] 15 CoreFoundation 0x18271895c _CFXNotificationPost 16 Foundation 0x18322a930 -[NSNotificationCenter postNotificationName:object:userInfo:] 17 UIKit 0x1893500e4 -[UIInputWindowController postStartNotifications:withInfo:] 18 UIKit 0x189352350 __77-[UIInputWindowController moveFromPlacement:toPlacement:starting:completion:]_block_invoke.907 19 UIKit 0x188a383cc -[UIInputViewAnimationStyle launchAnimation:afterStarted:completion:forHost:fromCurrentPosition:] 20 UIKit 0x189351dc8 -[UIInputWindowController moveFromPlacement:toPlacement:starting:completion:] 21 UIKit 0x1893588b0 -[UIInputWindowController setInputViewSet:] 22 UIKit 0x189351494 -[UIInputWindowController performOperations:withAnimationStyle:] 23 UIKit 0x188a30d94 -[UIPeripheralHost(UIKitInternal) setInputViews:animationStyle:] 24 UIKit 0x1890f7160 -[_UIRemoteKeyboards keyboardChanged:shouldConsiderSnapshottingKeyboard:isLocalEvent:] 25 UIKit 0x1890f6e8c __37-[_UIRemoteKeyboards

Mirando los registros de los usuarios encontré algunas cosas comunes -

  1. Todos los usuarios están en un controlador de vista que contiene un WKWebView
  2. Todos los registros indican que la aplicación obtuvo "applicationWillResignActive" antes del bloqueo
  3. La pila muestra que se abrió un teclado, pero no tenemos otro lugar para abrir el teclado en ese controlador de vista.
  4. todos los usuarios son iOS 10.3 +

El único escenario que se ajustó fue que un usuario obtuvo un iMessage mientras la aplicación estaba con un WKWebView visible y la fuerza lo tocó en una respuesta rápida. Probamos este escenario y BOOOM la aplicación se estrelló.

Así que encontramos el accidente, pero no tenemos ni idea de lo que está pasando. Cualquiera que se haya enfrentado a ese problema o tenga una idea, ¿cuál podría ser?

Gracias


establezca la variable de entorno CG_NUMERICS_SHOW_BACKTRACE en el esquema de ejecución de Xcode y volcará el seguimiento de pila que provocó que se produjera el valor no numérico.


(1) Primero verifique que su diseño sea correcto, use "Autolayout" y asegúrese de que sus restricciones sean correctas y de que esté configurando las subvistas correctas.

Intente depurar visualmente el diseño para ver si hay cosas extrañas que estén sucediendo.

Depuración-> Ver depuración-> Capturar jerarquía de vistas.

(2) Desde la traza de la pila, me doy cuenta de que el teclado se presenta, y debido a esto, las vistas deben ajustarse para hacer lugar para el teclado. Es evidente que esto sucede tan pronto como llega un mensaje en el seguimiento de la pila.

También intentaría renunciar a FirstResponder, tal vez en tu AppDelegate

- (void)applicationWillResignActive:(UIApplication *)application { [_wkWebView resignFirstResponder]; }

(3) También encontré que hay un error, donde el WKWEbView no se resignará en el primer respondedor ... esto podría estar relacionado:

Error 167898 - [iOS] - [WKWebView BecomeFirstResponder] y - [WKWebView resignFirstResponder] no se llaman cuando ocurren cambios no programáticos del primer respondedor

Tal vez una solución alternativa sería presentar otra vista tan pronto como su solicitud renuncie.

- (void)applicationWillResignActive:(UIApplication *)application { // if _wkWebView is showing then hide and show other view }