El simulador de Xcode 8.2 se bloquea al guardar la captura de pantalla

103

Después de la actualización de XCode 8.2, cada vez que se guardaba la captura de pantalla del simulador, siempre se bloqueaba. Incluso yo restablezco el contenido y la configuración todavía fallan.

¿Debo eliminar todos los simuladores e instalarlos de nuevo?

Actualización :

  • 8.2.1 tiene el mismo problema.
  • 8.3 solo compatible con Sierra.

El siguiente es el informe de fallos:

Process:               Simulator [48928]
Path:                  /Applications/Xcode.app/Contents/Developer/Applications/Simulator.app/Contents/MacOS/Simulator
Identifier:            com.apple.iphonesimulator
Version:               10.0 (726.7)
Build Info:            Indigo-726007000000000~5
Code Type:             X86-64 (Native)
Parent Process:        ??? [1]
Responsible:           Simulator [48928]
User ID:               501

PlugIn Path:             /Applications/Xcode.app/Contents/Frameworks/libswiftFoundation.dylib
PlugIn Identifier:       libswiftFoundation.dylib
PlugIn Version:          3.0.2 (800.0.63)

Date/Time:             2016-12-13 23:43:25.860 +0800
OS Version:            Mac OS X 10.11.6 (15G1108)
Report Version:        11
Anonymous UUID:        6E8AEBAE-0AF8-D350-66D6-57EC500D69F5

Sleep/Wake UUID:       6E017B49-1A38-4D3A-AB8F-FD9E200B6286

Time Awake Since Boot: 110000 seconds
Time Since Wake:       10000 seconds

System Integrity Protection: enabled

Crashed Thread:        0  Dispatch queue: com.apple.main-thread

Exception Type:        EXC_BAD_ACCESS (SIGSEGV)
Exception Codes:       EXC_I386_GPFLT
Exception Note:        EXC_CORPSE_NOTIFY

Application Specific Information:
Performing @selector(saveScreenShot:) from sender NSMenuItem 0x7fd05a7329f0

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   libobjc.A.dylib                 0x00007fff946adcdc lookUpImpOrForward + 135
1   libobjc.A.dylib                 0x00007fff946a8591 objc_msgSend + 209
2   libsystem_blocks.dylib          0x00007fff9b684986 _Block_object_assign + 364
3   com.apple.Foundation            0x00007fff8dc21ca4 __copy_helper_block_ + 49
4   libsystem_blocks.dylib          0x00007fff9b68459d _Block_copy_internal + 325
5   libswiftFoundation.dylib        0x000000010178af95 _TToFC10Foundation12_SwiftNSData19enumerateByteRangesfT5usingFTSVVSC8_NSRangeGSpV10ObjectiveC8ObjCBool__T__T_ + 21
6   com.apple.Foundation            0x00007fff8db02a94 _NSWriteDataToFileWithExtendedAttributes + 742
7   com.apple.iphonesimulator       0x0000000100ffdc1e 0x100ff1000 + 52254
8   com.apple.iphonesimulator       0x0000000100ffdda9 0x100ff1000 + 52649
9   libsystem_trace.dylib           0x00007fff9a5bd07a _os_activity_initiate + 75
10  com.apple.AppKit                0x00007fff909d4dbd -[NSApplication sendAction:to:from:] + 460
11  com.apple.AppKit                0x00007fff909d4b57 -[NSMenuItem _corePerformAction] + 336
12  com.apple.AppKit                0x00007fff909d48b7 -[NSCarbonMenuImpl performActionWithHighlightingForItemAtIndex:] + 114
13  libsystem_trace.dylib           0x00007fff9a5bd07a _os_activity_initiate + 75
14  com.apple.AppKit                0x00007fff909d37a5 -[NSMenu performKeyEquivalent:] + 357
15  com.apple.AppKit                0x00007fff909d2949 -[NSApplication _handleKeyEquivalent:] + 920
16  com.apple.AppKit                0x00007fff908f90fe -[NSApplication sendEvent:] + 4274
17  com.apple.iphonesimulator       0x000000010100d151 0x100ff1000 + 115025
18  com.apple.AppKit                0x00007fff9075fdf2 -[NSApplication run] + 796
19  com.apple.AppKit                0x00007fff90729368 NSApplicationMain + 1176
20  libdyld.dylib                   0x00007fff99c955ad start + 1

Thread 1:: Dispatch queue: com.apple.libdispatch-manager
0   libsystem_kernel.dylib          0x00007fff97827efa kevent_qos + 10
1   libdispatch.dylib               0x00007fff9612d165 _dispatch_mgr_invoke + 216
2   libdispatch.dylib               0x00007fff9612cdcd _dispatch_mgr_thread + 52

Thread 2:: com.apple.NSEventThread
0   libsystem_kernel.dylib          0x00007fff97820f72 mach_msg_trap + 10
1   libsystem_kernel.dylib          0x00007fff978203b3 mach_msg + 55
2   com.apple.CoreFoundation        0x00007fff97319124 __CFRunLoopServiceMachPort + 212
3   com.apple.CoreFoundation        0x00007fff973185ec __CFRunLoopRun + 1356
4   com.apple.CoreFoundation        0x00007fff97317e38 CFRunLoopRunSpecific + 296
5   com.apple.AppKit                0x00007fff908c1d95 _NSEventThread + 149
6   libsystem_pthread.dylib         0x00007fff928a299d _pthread_body + 131
7   libsystem_pthread.dylib         0x00007fff928a291a _pthread_start + 168
8   libsystem_pthread.dylib         0x00007fff928a0351 thread_start + 13

Thread 3:
0   libsystem_kernel.dylib          0x00007fff978275e2 __workq_kernreturn + 10
1   libsystem_pthread.dylib         0x00007fff928a2578 _pthread_wqthread + 1283
2   libsystem_pthread.dylib         0x00007fff928a0341 start_wqthread + 13

Thread 4:
0   libsystem_kernel.dylib          0x00007fff978275e2 __workq_kernreturn + 10
1   libsystem_pthread.dylib         0x00007fff928a2578 _pthread_wqthread + 1283
2   libsystem_pthread.dylib         0x00007fff928a0341 start_wqthread + 13

Thread 5:
0   libsystem_kernel.dylib          0x00007fff978275e2 __workq_kernreturn + 10
1   libsystem_pthread.dylib         0x00007fff928a2578 _pthread_wqthread + 1283
2   libsystem_pthread.dylib         0x00007fff928a0341 start_wqthread + 13

Thread 6:
0   libsystem_kernel.dylib          0x00007fff978275e2 __workq_kernreturn + 10
1   libsystem_pthread.dylib         0x00007fff928a2578 _pthread_wqthread + 1283
2   libsystem_pthread.dylib         0x00007fff928a0341 start_wqthread + 13

Thread 7:
0   libsystem_kernel.dylib          0x00007fff978275e2 __workq_kernreturn + 10
1   libsystem_pthread.dylib         0x00007fff928a2578 _pthread_wqthread + 1283
2   libsystem_pthread.dylib         0x00007fff928a0341 start_wqthread + 13

Thread 0 crashed with X86 Thread State (64-bit):
  rax: 0x00007fff6382b2c0  rbx: 0x00007fff6384ce48  rcx: 0x021b77058d48fb89  rdx: 0x00007fff638545f8
  rdi: 0x00007fff6384ce48  rsi: 0x00007fff976efa45  rbp: 0x00007fff5ec0dc30  rsp: 0x00007fff5ec0dbe0
   r8: 0x0000000000000000   r9: 0x0000000000000001  r10: 0x00007fff93c7d1e0  r11: 0x00007fff6384ce48
  r12: 0x00007fff976efa45  r13: 0x0000000000000000  r14: 0x0000000000000001  r15: 0x00007ffffffffff8
  rip: 0x00007fff946adcdc  rfl: 0x0000000000010206  cr2: 0x00007fff93c7c000
Tericky Shih
fuente
3
@ Cœur Para ser justos, la pregunta a la que hace referencia se publicó un minuto antes de esta pregunta, así que difícilmente la llamaría duplicada.
xoudini

Respuestas:

106

El bloqueo parece ocurrir debido a una falla de segmentación, o más específicamente una falla de protección general, mientras se llama al saveScreenShot:selector. Por qué sucede puede depender de varias cosas, por lo que es difícil decir si una reinstalación ayudaría.

En cualquier caso, si la función de captura de pantalla (⌘S) en el simulador provoca el bloqueo, no hay prácticamente nada que pueda hacer al respecto. La mejor opción que tiene es probablemente presentar un informe de error a Apple .

Actualizar:

Acabo de actualizar a 8.2 GM, y bajo y he aquí, ⌘S también se bloquea. Aunque obtengo en KERN_INVALID_ADDRESSlugar de EXC_I386_GPFLT.

Una solución alternativa, por el momento, es copiar la pantalla y pegarla en Vista previa:

captura de pantalla

xoudini
fuente
29

Sí, desafortunadamente, esto es un error en Foundation en OS X 10.11. No tendrá el problema si actualiza a macOS Sierra.

Si no puede actualizar a Sierra en este momento, aún puede tomar capturas de pantalla desde la línea de comandos:

xcrun simctl io booted screenshot <path to output file>

Esto se menciona en las notas de la versión de Xcode 8.2

El simulador puede fallar al guardar una captura de pantalla cuando se ejecuta en OS X El Capitan. (29182710) El bloqueo no ocurre en macOS Sierra.

Jeremy Huddleston Sequoia
fuente
Entendido. Me quedo con la versión 10.11.6 como mencionas
Tericky Shih
Qué nota de lanzamiento más agradable, todo lo que diga Apple, nadie se quejará.
teapeng
9
Sí, lo siento. El problema no se notó hasta que fue demasiado tarde para incluir una solución. Agregamos una nota de la versión para crear conciencia sobre el problema e informar a los usuarios sobre las soluciones.
Jeremy Huddleston Sequoia
Por si acaso, con la ruta al escritorio (como el comportamiento original de "Guardar captura de pantalla") -> xcrun simctl io arrancó captura de pantalla ~ / Desktop / filename.png
Dren
20

Encuentre los pasos a continuación para obtener la captura de pantalla.

1) Vaya a Simuladores -> Editar -> Copiar pantalla o puede usar el acceso directo ( ctrl + cmd + c ).
2) Abra la Vista previa y vaya a Archivo -> Nuevo desde el portapapeles o puede usar el acceso directo ( cmd + n ).
3) Ahora vaya a Archivo -> Guardar o puede usar el acceso directo ( cmd + s ).

O también puede consultar la presentación GIF a continuación.

GIF

Ramkrishna Sharma
fuente
4

Entonces, una solución alternativa más fácil es esta:

  1. Ejecute la aplicación en el simulador (obviamente)

  2. En el simulador, vaya a Editar> Copiar pantalla

  3. Abrir aplicación de vista previa
  4. Regrese al simulador y guarde la captura de pantalla, es decir, Archivo> Guardar captura de pantalla

¡Hecho!

No estoy seguro de por qué esto evita que ocurra el error, pero funcionó para mí. Es más rápido que todos los demás métodos descritos anteriormente.

Salil Junior
fuente
4

Solución 1

1) Vaya a Simuladores> Editar> Copiar pantalla (⌃⌘C)

ingrese la descripción de la imagen aquí

2) Abra la aplicación Vista previa> Vaya a Archivo> Nuevo desde el portapapeles (⌘N) y Guarde (⌘S) en su ubicación favorita en su máquina

ingrese la descripción de la imagen aquí

Solución 2: - Uso de la utilidad de línea de comandos xcrun Xcode

Abra Terminal Appy ejecute el siguiente comando para tomar una captura de pantalla

xcrun simctl io booted screenshot

Si desea guardar la captura de pantalla capturada en una ubicación específica

xcrun simctl io booted screenshot <path_to_output_file>

MilánPanchal
fuente