iosiphonexcodexcode-ui-testing

Xcode UI Testing leads to crash on every iOS Device


When trying to use the new Xcode 7 UI Testing feature on a physical iOS device by pressing the record button having the caret inside a test method, Xcode builds the project but just before starting the app on the device, the IDE crashes. I tested this with different projects (even a freshly created template one without writing a single line of code) and different devices (iPhone 6s Plus, iPad Pro, iPad mini 2 and iPhone 5, all running iOS 9.2). Does anyone have the same problem and already found a solution? Here is the complete crash log:

Process: Xcode [48959]
Path: /Applications/Xcode.app/Contents/MacOS/Xcode
Identifier: com.apple.dt.Xcode
Version: 7.2 (9548)
Build Info: IDEFrameworks-9548000000000000~7
App Item ID: 497799835
App External ID: 814662604
Code Type: X86-64 (Native)
Parent Process: ??? [1]
Responsible: Xcode [48959]
User ID: 501
Date/Time: 2015-12-16 20:52:24.497 +0100
OS Version: Mac OS X 10.11.2 (15C50)
Report Version: 11
Anonymous UUID: DF96274B-998D-3102-7E2F-CECD011B3D38
Sleep/Wake UUID: 613A68D1-4541-4DB7-B1C5-BC255278457F
Time Awake Since Boot: 25000 seconds
Time Since Wake: 19000 seconds
System Integrity Protection: disabled
Crashed Thread: 0 Dispatch queue: com.apple.main-thread
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY
Application Specific Information:
ProductBuildVersion: 7C68
ASSERTION FAILURE in /Library/Caches/com.apple.xbs/Sources/IDEFrameworks/IDEFrameworks-9548/IDEKit/Testing/IDEUIRecordingManager.m:429
Details: (result) should not be nil.
Object: <IDEUIRecordingManager: 0x7fa128e011a0>
Method: -_workspaceTabController
Thread: <NSThread: 0x7fa119504010>{number = 1, name = main}
Hints: None
Backtrace:
0 0x0000000102f861fa -[IDEAssertionHandler handleFailureInMethod:object:fileName:lineNumber:assertionSignature:messageFormat:arguments:] (in IDEKit)
1 0x0000000101b12761 _DVTAssertionHandler (in DVTFoundation)
2 0x0000000101b12978 _DVTAssertionFailureHandler (in DVTFoundation)
3 0x000000010306456b -[IDEUIRecordingManager _workspaceTabController] (in IDEKit)
4 0x0000000103065433 __94-[IDEUIRecordingManager _startRecordingWithLaunchSession:alwaysAskForAPIAccess:reservedNames:]_block_invoke_2 (in IDEKit)
5 0x0000000101b4ea04 __DVTDispatchAsync_block_invoke (in DVTFoundation)
6 0x00007fff9545c871 _dispatch_call_block_and_release (in libdispatch.dylib)
7 0x00007fff9545133f _dispatch_client_callout (in libdispatch.dylib)
8 0x00007fff95464c1d _dispatch_main_queue_callback_4CF (in libdispatch.dylib)
9 0x00007fff8b1d0cd9 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ (in CoreFoundation)
10 0x00007fff8b18bd3d __CFRunLoopRun (in CoreFoundation)
11 0x00007fff8b18b338 CFRunLoopRunSpecific (in CoreFoundation)
12 0x00007fff846ce935 RunCurrentEventLoopInMode (in HIToolbox)
13 0x00007fff846ce76f ReceiveNextEventCommon (in HIToolbox)
14 0x00007fff846ce5af _BlockUntilNextEventMatchingListInModeWithFilter (in HIToolbox)
15 0x00007fff899610ee _DPSNextEvent (in AppKit)
16 0x00007fff89d2d943 -[NSApplication _nextEventMatchingEventMask:untilDate:inMode:dequeue:] (in AppKit)
17 0x00000001020ef0c2 -[DVTApplication nextEventMatchingMask:untilDate:inMode:dequeue:] (in DVTKit)
18 0x00007fff89956fc8 -[NSApplication run] (in AppKit)
19 0x00007fff898d9520 NSApplicationMain (in AppKit)
20 0x00007fff8589a5ad start (in libdyld.dylib)
abort() called
HandleCommand(command = "process plugin packet send 'QSetEnableAsyncProfiling;enable:0;'")

Solution

  • I ran into the same problem. I even tried cleaning the cache (rm -r ~/Library/Developer/Xcode/DerivedData), without success.

    I found a way around it:

    1. Start running the application in the device of your choice (Command-R)
    2. Once the app is ready and running in the device, hit on the red "Record UI Test" button in the Debug toolbar.

    Hopefully this works for you.

    EDIT. To make things stranger, this works for an iPhone 6 physically connected to my computer and for an iPhone 5s run in the Simulator. Attempts to record UI tests on an iPhone 6 Plus were not successful.