Der Absturz des Xcode 8.2-Simulators beim Speichern des Screenshots

103

Nach dem Update von XCode 8.2 stürzte der Screenshot des gespeicherten Simulators jedes Mal ab. Auch wenn ich Inhalte zurücksetze und Einstellungen immer noch abstürzen.

Sollte ich alle Simulatoren entfernen und erneut installieren?

Update :

  • 8.2.1 hat das gleiche Problem.
  • 8.3 nur Sierra unterstützt.

Das Folgende ist der Absturzbericht:

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
quelle
3
@ Cœur Um fair zu sein, die Frage, auf die Sie sich beziehen, wurde eine Minute vor dieser Frage veröffentlicht, daher würde ich sie kaum als Duplikat bezeichnen.
Xoudini

Antworten:

106

Der Absturz scheint aufgrund eines Segmentierungsfehlers oder genauer eines allgemeinen Schutzfehlers beim Aufrufen des saveScreenShot:Selektors aufzutreten . Warum dies geschieht, kann von mehreren Faktoren abhängen. Daher ist es schwer zu sagen, ob eine Neuinstallation hilfreich wäre.

In jedem Fall können Sie kaum etwas dagegen tun, wenn die Screenshot-Funktion (⌘S) im Simulator den Absturz verursacht. Die beste Option ist wahrscheinlich, einen Fehlerbericht bei Apple einzureichen .

Aktualisieren:

Ich habe gerade auf 8.2 GM aktualisiert, und siehe da, crashS stürzt auch für mich ab. Obwohl ich bin immer KERN_INVALID_ADDRESSstatt EXC_I386_GPFLT.

Eine Problemumgehung besteht derzeit darin, den Bildschirm zu kopieren und in die Vorschau einzufügen:

Bildschirmfoto

Xoudini
quelle
29

Ja, leider stolpert dies über einen Fehler in Foundation unter OS X 10.11. Sie werden das Problem nicht haben, wenn Sie auf macOS Sierra aktualisieren.

Wenn Sie derzeit kein Upgrade auf Sierra durchführen können, können Sie dennoch Screenshots über die Befehlszeile erstellen:

xcrun simctl io booted screenshot <path to output file>

Dies wird in den Versionshinweisen zu Xcode 8.2 erwähnt

Der Simulator kann beim Speichern eines Screenshots unter OS X El Capitan abstürzen. (29182710) Der Absturz tritt unter macOS Sierra nicht auf.

Jeremy Huddleston Sequoia
quelle
Verstanden. Ich bleibe bei der Version 10.11.6, wie Sie erwähnen
Tericky Shih
Was für ein schöner Release-Hinweis, was auch immer Apple sagt, niemand wird sich beschweren.
Teapeng
9
Ja, tut mir leid. Das Problem wurde erst bemerkt, nachdem es zu spät war, eine Problemumgehung einzuschließen. Wir haben einen Versionshinweis hinzugefügt, um auf das Problem aufmerksam zu machen und Benutzer über Problemumgehungen zu informieren.
Jeremy Huddleston Sequoia
Nur für den Fall, mit Pfad zum Desktop (wie "Save Screenshot" ursprüngliches Verhalten) -> xcrun simctl io gebooteten Screenshot ~ / Desktop / Dateiname.png
Dren
20

Die folgenden Schritte finden Sie, um den Screenshot zu erhalten.

1) Gehen Sie zu Simulatoren -> Bearbeiten -> Bildschirm kopieren oder verwenden Sie die Verknüpfung ( Strg + cmd + c ).
2) Öffnen Sie die Vorschau und gehen Sie zu Datei -> Neu aus der Zwischenablage, oder verwenden Sie die Verknüpfung ( cmd + n ).
3) Gehen Sie nun zu Datei -> Speichern oder verwenden Sie die Verknüpfung ( cmd + s ).

Sie können auch auf die folgende GIF-Präsentation verweisen.

GIF

Ramkrishna Sharma
quelle
4

Eine einfachere Problemumgehung ist folgende:

  1. App im Simulator ausführen (offensichtlich)

  2. Gehen Sie im Simulator zu Bearbeiten> Bildschirm kopieren

  3. Öffnen Sie die Vorschau-App
  4. Gehen Sie zurück zum Simulator und speichern Sie den Screenshot, dh Datei> Screenshot speichern

Getan!

Ich bin mir nicht sicher, warum dies das Auftreten des Fehlers verhindert, aber es hat bei mir funktioniert. Es ist schneller als alle anderen oben beschriebenen Methoden.

Salil Junior
quelle
4

Lösung 1

1) Gehen Sie zu Simulatoren> Bearbeiten> Bildschirm kopieren (⌃⌘C)

Geben Sie hier die Bildbeschreibung ein

2) Öffnen Sie die Vorschau-App> Gehen Sie zu Datei> Neu aus der Zwischenablage (⌘N) und speichern Sie (⌘S) an Ihrem bevorzugten Speicherort auf Ihrem Computer

Geben Sie hier die Bildbeschreibung ein

Lösung 2: - Verwenden des Befehlszeilenprogramms xcrun Xcode

Öffnen Sie Terminal Appden folgenden Befehl und führen Sie ihn aus, um einen Screenshot zu erstellen

xcrun simctl io booted screenshot

Wenn Sie den aufgenommenen Screenshot an einem bestimmten Ort speichern möchten

xcrun simctl io booted screenshot <path_to_output_file>

MilanPanchal
quelle
2

Eine weitere bequeme Möglichkeit -> Umschalt + Befehl + 4 - tippen Sie auf die Leertaste und anschließend auf das Fenster, um eine Momentaufnahme des Simulatorfensters zu erhalten.

https://support.apple.com/en-us/HT201361

benc
quelle