Xcode 8.2 Simulator ขัดข้องเมื่อบันทึกภาพหน้าจอ


103

หลังจากอัปเดต XCode 8.2 ทุกครั้งที่บันทึกภาพหน้าจอจำลองจะทำให้มันพังเสมอ แม้แต่ฉันรีเซ็ตเนื้อหาและการตั้งค่าก็ยังขัดข้อง

ฉันควรลบโปรแกรมจำลองทั้งหมดและติดตั้งอีกครั้งหรือไม่?

อัปเดต :

  • 8.2.1 มีปัญหาเดียวกัน
  • 8.3 รองรับเฉพาะ Sierra

ต่อไปนี้เป็นรายงานข้อขัดข้อง:

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


3
@ Cœurเพื่อความเป็นธรรมคำถามที่คุณอ้างถึงได้รับการเผยแพร่ก่อนคำถามนี้หนึ่งนาทีดังนั้นฉันแทบจะไม่เรียกว่าซ้ำ
xoudini

คำตอบ:


106

ความผิดพลาดดูเหมือนจะเกิดขึ้นเนื่องจากความผิดพลาดในการแบ่งส่วนหรือโดยเฉพาะอย่างยิ่งความผิดพลาดในการป้องกันทั่วไปในขณะที่เรียกsaveScreenShot:ตัวเลือก เหตุใดจึงเกิดขึ้นได้ขึ้นอยู่กับหลายสิ่งจึงยากที่จะบอกว่าการติดตั้งใหม่จะช่วยได้หรือไม่

ไม่ว่าในกรณีใดหากฟังก์ชันภาพหน้าจอ (⌘S) ในโปรแกรมจำลองทำให้เกิดข้อขัดข้องคุณแทบจะไม่สามารถทำอะไรได้เลย ตัวเลือกที่ดีที่สุดที่คุณมีความน่าจะเป็นที่จะยื่นรายงานข้อผิดพลาดในแอปเปิ้ล

อัปเดต:

ฉันเพิ่งอัปเดตเป็น 8.2 GM และต่ำและดูเถิด⌘Sก็ขัดข้องสำหรับฉันเช่นกัน แม้ว่าฉันได้รับแทนKERN_INVALID_ADDRESSEXC_I386_GPFLT

วิธีแก้ปัญหาอย่างหนึ่งในขณะนี้คือการคัดลอกหน้าจอและวางลงใน Preview:

ภาพหน้าจอ


29

ใช่น่าเสียดายที่นี่เป็นการสะดุดข้อบกพร่องใน Foundation บน OS X 10.11 คุณจะไม่มีปัญหาหากคุณอัปเกรดเป็น macOS Sierra

หากคุณไม่สามารถอัปเกรดเป็น Sierra ได้ในตอนนี้คุณยังสามารถจับภาพหน้าจอได้จากบรรทัดคำสั่ง:

xcrun simctl io booted screenshot <path to output file>

สิ่งนี้ถูกกล่าวถึงในบันทึกย่อประจำรุ่น Xcode 8.2

โปรแกรมจำลองอาจขัดข้องเมื่อบันทึกภาพหน้าจอเมื่อทำงานบน OS X El Capitan (29182710) ข้อขัดข้องไม่เกิดขึ้นบน macOS Sierra


เข้าใจแล้ว ฉันใช้เวอร์ชัน 10.11.6 ตามที่คุณพูดถึง
Tericky Shih

ช่างเป็นบันทึกประจำรุ่นที่ดีอะไรก็ตามที่ Apple บอกว่าไม่มีใครบ่น
TPG

9
ใช่ขอโทษด้วย ไม่มีใครสังเกตเห็นปัญหานี้จนกว่าจะสายเกินไปที่จะรวมวิธีแก้ไขปัญหาไว้ก่อน เราได้เพิ่มบันทึกประจำรุ่นเพื่อสร้างความตระหนักถึงปัญหาและแจ้งให้ผู้ใช้ทราบถึงวิธีแก้ปัญหา
Jeremy Huddleston Sequoia

ในกรณีที่มีเส้นทางไปยังเดสก์ท็อป (เช่นพฤติกรรมดั้งเดิม "บันทึกภาพหน้าจอ") -> xcrun simctl io บูตภาพหน้าจอ ~ / เดสก์ท็อป / filename.png
Dren

20

โปรดดูขั้นตอนด้านล่างเพื่อรับภาพหน้าจอ

1) ไปที่ Simulators -> Edit -> Copy Screen หรือคุณสามารถใช้ทางลัด ( ctrl + cmd + c )
2) เปิดการแสดงตัวอย่างและไปที่ไฟล์ -> ใหม่จากคลิปบอร์ดหรือคุณสามารถใช้ทางลัด ( cmd + n )
3) ไปที่ไฟล์ -> บันทึกหรือคุณสามารถใช้ทางลัด ( cmd + s )

หรือคุณสามารถดูการนำเสนอ GIF ด้านล่าง

GIF


4

ดังนั้นวิธีแก้ปัญหาที่ง่ายกว่าคือ:

  1. เรียกใช้แอปในโปรแกรมจำลอง (ชัดเจน)

  2. ในโปรแกรมจำลองไปที่แก้ไข> คัดลอกหน้าจอ

  3. เปิดแอพ Preview
  4. กลับไปที่โปรแกรมจำลองและบันทึกภาพหน้าจอเช่นไฟล์> บันทึกภาพหน้าจอ

เสร็จแล้ว!

ไม่แน่ใจว่าเหตุใดสิ่งนี้จึงป้องกันไม่ให้เกิดข้อผิดพลาด แต่ใช้ได้กับฉัน เร็วกว่าวิธีอื่น ๆ ทั้งหมดที่อธิบายไว้ข้างต้น


4

โซลูชันที่ 1

1) ไปที่เครื่องจำลอง> แก้ไข> คัดลอกหน้าจอ (⌃⌘C)

ป้อนคำอธิบายภาพที่นี่

2) เปิดแอพแสดงตัวอย่าง> ไปที่ไฟล์> ใหม่จากคลิปบอร์ด (⌘N) และบันทึก (⌘S) ไปยังตำแหน่งโปรดของคุณบนเครื่องของคุณ

ป้อนคำอธิบายภาพที่นี่

โซลูชันที่ 2: - การใช้ยูทิลิตี้บรรทัดคำสั่ง xcrun Xcode

เปิดTerminal Appและเรียกใช้คำสั่งต่อไปนี้เพื่อถ่ายภาพหน้าจอ

xcrun simctl io booted screenshot

หากคุณต้องการบันทึกภาพหน้าจอที่ถ่ายไว้ในตำแหน่งเฉพาะ

xcrun simctl io booted screenshot <path_to_output_file>


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.