Xcode 8.2 симулятор аварии при сохранении снимка экрана
после обновления XCode 8.2, каждый раз, когда сохранить симулятор снимок экрана всегда делал его сбой. Даже я сбрасываю содержимое и настройки по-прежнему сбой.
должен ли я удалить все симуляторы и установить их снова?
обновление:
- 8.2.1 имеет ту же проблему.
- 8.3 поддерживается только Сьерра.
ниже приведен отчет о сбое:
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
7 ответов:
сбой, по-видимому, происходит из-за ошибки сегментации или, более конкретно, общей ошибки защиты, при вызове
saveScreenShot:селектор. Почему это происходит, может зависеть от нескольких вещей, поэтому трудно сказать, поможет ли переустановка.в любом случае, если функция скриншота (⌘S) в симуляторе вызывает сбой, вы вряд ли что-то можете с этим поделать. Лучший вариант у вас есть, вероятно, чтобы подать сообщение об ошибке Яблоко.
обновление:
Я только что обновился до 8.2 GM, и низкий и вот, crashes s падает и для меня. Хотя я получаю
KERN_INVALID_ADDRESSвместоEXC_I386_GPFLT.один обходной путь, на данный момент, копирует экран и вставляет в предварительный просмотр:
вы можете делать скриншоты симулятора с помощью
xcrunутилита командной строки Xcode. Чтобы сделать снимок экрана, выполните командуxcrun simctl io booted screenshot.источник: Xcode 8.2 Примечания К Выпуску
симулятор может произойти сбой при сохранении скриншота при работе на OS X El Capitan. (29182710) сбой не происходит на macOS Sierra.
да, к сожалению, это спотыкается об ошибку в 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.
пожалуйста, найдите следующие шаги для получения скриншота.
1) Перейти к симуляторам - > редактировать - > копировать экран или вы можете использовать ярлык (ctrl + cmd + c).
2) Откройте предварительный просмотр и выберите Файл -> Новый из буфера обмена, или вы можете использовать ярлык ( cmd + n).
3) Теперь перейдите к файлу - > сохранить или вы можете использовать ярлык ( cmd + s).или вы можете также сослаться ниже GIF демонстрация.
таким образом, более простой обходной путь заключается в следующем:
запустить приложение в симуляторе (очевидно)
в симуляторе перейдите в меню Правка>копировать экран
- открыть приложение предварительного просмотра
- вернитесь к симулятору и сохраните скриншот, т. е. файл>сохранить скриншот
готово!
Не уверен, почему это предотвращает появление ошибки, но это сработало для меня. Это быстрее, чем все другие методы, описанные выше.
Решение 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-нажмите пробел, нажмите на окно, чтобы получить снимок окна симулятора.




Comments