[ios] 스크린 샷을 저장할 때 Xcode 8.2 시뮬레이터 충돌

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



답변

saveScreenShot:선택기 를 호출하는 동안 분할 오류 또는보다 구체적으로 일반적인 보호 오류로 인해 충돌이 발생하는 것 같습니다 . 그 이유는 여러 가지에 따라 달라질 수 있으므로 재설치가 도움이 될지 말하기 어렵습니다.

어쨌든 시뮬레이터의 스크린 샷 (⌘S) 기능이 충돌을 일으킨다면 이에 대해 할 수있는 일은 거의 없습니다. 가장 좋은 방법은 아마도 Apple에 버그 보고서를 제출하는 것 입니다.

최신 정보:

방금 8.2 GM으로 업데이트했는데 ⌘S가 저에게도 충돌합니다. 하지만 나는군요 KERN_INVALID_ADDRESS대신 EXC_I386_GPFLT.

당분간 한 가지 해결 방법은 화면을 복사하여 미리보기에 붙여 넣는 것입니다.

스크린 샷


답변

예, 안타깝게도 OS X 10.11의 Foundation 버그로 인해 발생합니다. macOS Sierra로 업그레이드하면 문제가 발생하지 않습니다.

지금 Sierra로 업그레이드 할 수없는 경우에도 명령 줄에서 스크린 샷을 찍을 수 있습니다.

xcrun simctl io booted screenshot <path to output file>

이것은 Xcode 8.2 릴리스 노트에 언급되어 있습니다.

OS X El Capitan에서 실행할 때 스크린 샷을 저장할 때 시뮬레이터가 충돌 할 수 있습니다. (29182710) macOS Sierra에서 충돌이 발생하지 않습니다.


답변

스크린 샷을 얻으려면 아래 단계를 찾으십시오.

1) 시뮬레이터-> 편집-> 화면 복사로 이동하거나 단축키 ( ctrl + cmd + c )를 .
2) 미리보기를 열고 파일-> 클립 보드에서 새로 만들기로 이동하거나 단축키 ( cmd + n )를 사용할 수 있습니다 .
3) 이제 파일-> 저장으로 이동하거나 바로 가기 ( cmd + s )를 사용할 수 있습니다 .

또는 아래 GIF 프레젠테이션을 참조 할 수도 있습니다.

GIF


답변

따라서 더 쉬운 해결 방법은 다음과 같습니다.

  1. 시뮬레이터에서 앱 실행 (분명히)

  2. 시뮬레이터에서 편집> 화면 복사로 이동합니다.

  3. 미리보기 앱 열기
  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>


답변

또 다른 편리한 방법-> Shift + Command + 4-스페이스 바를 탭하고 창을 탭하여 시뮬레이터 창의 스냅 샷을 가져옵니다.

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


답변