Lỗi trình mô phỏng Xcode 8.2 khi lưu ảnh chụp màn hình


103

Sau khi cập nhật XCode 8.2, mỗi lần lưu ảnh chụp màn hình giả lập luôn khiến nó bị treo. Ngay cả khi tôi đặt lại nội dung và cài đặt vẫn bị lỗi.

Tôi có nên xóa tất cả trình mô phỏng và cài đặt lại chúng không?

Cập nhật :

  • 8.2.1 có cùng một vấn đề.
  • 8.3 chỉ có Sierra hỗ trợ.

Sau đây là báo cáo sự cố:

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
@ Thưa chúng tôi Công bằng mà nói, câu hỏi bạn đang tham khảo đã được xuất bản một phút trước câu hỏi này, vì vậy tôi khó có thể gọi nó là một bản sao.
xoudini 19/12/16

Câu trả lời:


106

Sự cố dường như xảy ra do lỗi phân đoạn, hoặc cụ thể hơn là lỗi bảo vệ chung khi đang gọi saveScreenShot:bộ chọn. Tại sao nó xảy ra có thể phụ thuộc vào một số điều, vì vậy rất khó để nói liệu cài đặt lại có giúp ích hay không.

Trong mọi trường hợp, nếu chức năng chụp màn hình (⌘S) trong trình mô phỏng gây ra sự cố, bạn khó có thể làm gì với nó. Lựa chọn tốt nhất mà bạn có có lẽ là gửi báo cáo lỗi cho Apple .

Cập nhật:

Tôi vừa cập nhật lên 8.2 GM, và thấp và này, ⌘S cũng gặp sự cố đối với tôi. Mặc dù tôi nhận được KERN_INVALID_ADDRESSthay vì EXC_I386_GPFLT.

Một cách giải quyết, hiện tại là sao chép màn hình và dán vào Xem trước:

ảnh chụp màn hình


29

Vâng, thật không may, điều này đang vấp phải một lỗi trong Foundation trên OS X 10.11. Bạn sẽ không gặp sự cố nếu nâng cấp lên macOS Sierra.

Nếu bạn không thể nâng cấp lên Sierra ngay bây giờ, bạn vẫn có thể chụp ảnh màn hình từ dòng lệnh:

xcrun simctl io booted screenshot <path to output file>

Điều này được đề cập trong Ghi chú phát hành Xcode 8.2

Trình mô phỏng có thể bị lỗi khi lưu ảnh chụp màn hình khi chạy trên OS X El Capitan. (29182710) Sự cố không xảy ra trên macOS Sierra.


Hiểu rồi. Tôi ở lại với phiên bản 10.11.6 như bạn đề cập
Tericky Shih

Thật là một ghi chú phát hành tuyệt vời, bất cứ điều gì Apple nói sẽ không ai phàn nàn.
teapeng

9
Vâng, xin lỗi về điều đó. Vấn đề đã không được nhận thấy cho đến khi đã quá muộn để đưa ra giải pháp thay thế. Chúng tôi đã thêm ghi chú phát hành để nâng cao nhận thức về vấn đề này và thông báo cho người dùng về cách giải quyết.
Jeremy Huddleston Sequoia

Chỉ trong trường hợp, với đường dẫn đến máy tính để bàn (như hành vi ban đầu "Lưu ảnh chụp màn hình") -> xcrun simctl io đã khởi động ảnh chụp màn hình ~ / Desktop / filename.png
Dren

20

Vui lòng tìm các bước dưới đây để lấy ảnh chụp màn hình.

1) Đi tới Trình mô phỏng -> Chỉnh sửa -> Sao chép Màn hình hoặc bạn có thể sử dụng phím tắt ( ctrl + cmd + c ).
2) Mở Xem trước và đi tới Tệp -> Mới từ Bảng tạm hoặc bạn có thể sử dụng phím tắt ( cmd + n ).
3) Bây giờ đi tới Tệp -> Lưu hoặc bạn có thể sử dụng phím tắt ( cmd + s ).

Hoặc bạn cũng có thể tham khảo cách trình bày GIF dưới đây.

GIF


4

Vì vậy, một giải pháp dễ dàng hơn là:

  1. Chạy ứng dụng trong trình mô phỏng (rõ ràng)

  2. Trong trình mô phỏng, đi tới Chỉnh sửa> Sao chép màn hình

  3. Mở ứng dụng Xem trước
  4. Quay lại trình mô phỏng và lưu ảnh chụp màn hình tức là Tệp> Lưu ảnh chụp màn hình

Làm xong!

Không chắc tại sao điều này ngăn lỗi xảy ra nhưng nó đã hiệu quả với tôi. Nó nhanh hơn tất cả các phương pháp khác được mô tả ở trên.


4

Giải pháp 1

1) Đi tới Trình mô phỏng> Chỉnh sửa> Sao chép màn hình (⌃⌘C)

nhập mô tả hình ảnh ở đây

2) Mở Ứng dụng xem trước> Đi tới Tệp> Mới từ Bảng tạm (⌘N) và Lưu (⌘S) vào vị trí yêu thích trên máy của bạn

nhập mô tả hình ảnh ở đây

Giải pháp 2: - Sử dụng tiện ích dòng lệnh xcrun Xcode

Mở Terminal Appvà chạy lệnh sau để chụp ảnh màn hình

xcrun simctl io booted screenshot

Nếu bạn muốn lưu ảnh chụp màn hình đã chụp vào vị trí cụ thể

xcrun simctl io booted screenshot <path_to_output_file>


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.