identifierforvendor - UIApplication sendAction: to: from: forEvent: iOS7 sin código de usuario
swift get uuid (4)
Tengo un bloqueo que está ocurriendo solo en iOS7. La aplicación está compilada en 6.1 sdk. No puedo reproducir esto yo mismo, pero puedo ver en los informes de fallos que está ocurriendo para algunos usuarios. El problema es que no hay un código de usuario en el seguimiento de la pila, por lo que está resultando difícil rastrearlo:
Exception Type: EXC_BAD_ACCESS Code: KERN_INVALID_ADDRESS at 0x13
0 libobjc.A.dylib objc_msgSend + 5
1 UIKit -[UIApplication sendAction:to:from:forEvent:] + 90
2 UIKit -[UIApplication sendAction:toTarget:fromSender:forEvent:] + 30
3 UIKit -[UIControl sendAction:to:forEvent:] + 44
4 UIKit -[UIControl _sendActionsForEvents:withEvent:] + 374
5 UIKit -[UIControl touchesEnded:withEvent:] + 590
6 UIKit -[UIWindow _sendTouchesForEvent:] + 528
7 UIKit -[UIWindow sendEvent:] + 832
8 UIKit -[UIApplication sendEvent:] + 196
9 UIKit _UIApplicationHandleEventQueue + 7096
10 ... CoreFoundation __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 14
16 UIKit UIApplicationMain + 1136
Intenté habilitar zombies y realizar varias acciones en la aplicación, pero eso no marcó nada.
Actualizar
Creo que esto podría haberse transformado en [UIPickerView _updateSelectedRows], EXC_BAD_ACCESS en iOS 7.1. Investigaré más a fondo.
Thread : Crashed: com.apple.main-thread
0 libobjc.A.dylib 0x39576626 objc_msgSend + 5
1 UIKit 0x3187b12f -[UIPickerView _updateSelectedRows] + 54
2 UIKit 0x3187b26f -[UIPickerView didMoveToWindow] + 78
3 UIKit 0x3160ad37 -[UIView(Internal) _didMoveFromWindow:toWindow:] + 1358
4 UIKit 0x3160aaa5 -[UIView(Internal) _didMoveFromWindow:toWindow:] + 700
5 UIKit 0x3160a40d __45-[UIView(Hierarchy) _postMovedFromSuperview:]_block_invoke + 112
6 UIKit 0x3160a263 -[UIView(Hierarchy) _postMovedFromSuperview:] + 250
7 UIKit 0x318a2a27 __UIViewWasRemovedFromSuperview + 218
8 UIKit 0x31609187 -[UIView(Hierarchy) removeFromSuperview] + 270
9 UIKit 0x316cf26f -[UIPeripheralHost(UIKitInternal) adjustHostViewForTransitionCompletion:] + 310
10 UIKit 0x31a6ca8b __53-[UIPeripheralHost(UIKitInternal) executeTransition:]_block_invoke1364 + 318
11 UIKit 0x3164378d -[UIViewAnimationBlockDelegate _didEndBlockAnimation:finished:context:] + 284
12 UIKit 0x316433d7 -[UIViewAnimationState sendDelegateAnimationDidStop:finished:] + 178
13 UIKit 0x316432ef -[UIViewAnimationState animationDidStop:finished:] + 66
14 QuartzCore 0x3128de0b CA::Layer::run_animation_callbacks(void*) + 234
15 libdispatch.dylib 0x39a55d3f _dispatch_client_callout + 22
16 libdispatch.dylib 0x39a586c3 _dispatch_main_queue_callback_4CF + 278
17 CoreFoundation 0x2eda6679 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 8
18 CoreFoundation 0x2eda4f45 __CFRunLoopRun + 1308
19 CoreFoundation 0x2ed0f7a9 CFRunLoopRunSpecific + 524
20 CoreFoundation 0x2ed0f58b CFRunLoopRunInMode + 106
21 GraphicsServices 0x33c6c6d3 GSEventRunModal + 138
22 UIKit 0x3166e891 UIApplicationMain + 1136
No sé sobre otras herramientas de informes de fallos, pero Crashlytics incluye la macro CLS_LOG (): http://support.crashlytics.com/knowledgebase/articles/92519-how-do-i-use-logging
Durante el desarrollo, se comporta como NSLog () pero en el campo, las instrucciones de registro se incluyen en los informes de fallos. Por lo tanto, le sugiero reemplazar sus declaraciones de depuración con CLS_LOG o comenzar a rellenar el código en cuestión con muchas declaraciones que capturen las acciones del usuario y luego implemente una nueva versión de su aplicación.
(Vieja pregunta, pero recientemente encontré algo similar y me gustaría documentar esto).
Intente eliminar arm64
de:
Project > BuildSettings > Architectures> Valid Architectures
y reconstruir tu aplicación
Es posible que también deba configurar Build Active Architectures Only
en NO
para que funcione.
Tuve el registro de bloqueo casi idéntico con nuestro proyecto pudimos rastrear una animación. El problema fue que animamos un UIPickerView dentro y fuera de la pantalla. Si ViewController que poseía el UIPickerView fue reventado y desastrado durante la animación. Solucionamos esto eliminando UIPickerView de la supervista en el bloque de finalización de la animación. [UIView animateWithDuration:0.5f animations:^{ //Set the destination frame of the PickerView } completion:^(BOOL finished) { [self.pickerView removeFromSuperview]; }];
Todo lo que acabo de recibir un choque similar con un UIPicker. Resulta que olvidé configurar el delegado en nil antes de desasignarlo. El problema solo se presenta cuando se ejecuta con puntos de interrupción habilitados. Espero que esto ayude a alguien más.