Reputation: 1040
I've recently noticed that I can't run tests on my iOS devices. I've tried on both an iPhone 5 and an iPhone 6. Both fail with an error like this:
2015-07-13 12:32:26.930 MyApp[1316:735999] Error loading /private/var/mobile/Containers/Data/Application/B23BED3F-5D59-4727-9AAB-1155A3F3A8F2/tmp/MyApp Tests.xctest/MyApp Tests: dlopen(/private/var/mobile/Containers/Data/Application/B23BED3F-5D59-4727-9AAB-1155A3F3A8F2/tmp/MyApp Tests.xctest/MyApp Tests, 262): no suitable image found. Did find:
/private/var/mobile/Containers/Data/Application/B23BED3F-5D59-4727-9AAB-1155A3F3A8F2/tmp/MyApp Tests.xctest/MyApp Tests: mmap() error 1 at address=0x0042C000, size=0x00099000 segment=__TEXT in Segment::map() mapping /private/var/mobile/Containers/Data/Application/B23BED3F-5D59-4727-9AAB-1155A3F3A8F2/tmp/MyApp Tests.xctest/MyApp Tests
DevToolsBundleInjection: Error loading bundle '/private/var/mobile/Containers/Data/Application/B23BED3F-5D59-4727-9AAB-1155A3F3A8F2/tmp/MyApp Tests.xctest'
All the other test errors I've found on the net with this format are code signing errors. This doesn't appear to be the case here...
As with the other errors like this, the test waits for a minute or two, and then fails with a dump like this:
* thread #1: tid = 0xb3aff, 0x33d0e474 libsystem_kernel.dylib`mach_msg_trap + 20, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP
* frame #0: 0x33d0e474 libsystem_kernel.dylib`mach_msg_trap + 20
frame #1: 0x33d0e26c libsystem_kernel.dylib`mach_msg + 40
frame #2: 0x24fc7572 CoreFoundation`__CFRunLoopServiceMachPort + 146
frame #3: 0x24fc5b18 CoreFoundation`__CFRunLoopRun + 1016
frame #4: 0x24f12200 CoreFoundation`CFRunLoopRunSpecific + 476
frame #5: 0x24f12012 CoreFoundation`CFRunLoopRunInMode + 106
frame #6: 0x2c9e3200 GraphicsServices`GSEventRunModal + 136
frame #7: 0x286dea08 UIKit`UIApplicationMain + 1440
frame #8: 0x000ececc MyApp`main(argc=10, argv=0x003f0488) + 108 at main.m:16
thread #2: tid = 0xb3b16, 0x33d0e224 libsystem_kernel.dylib`kevent64 + 24, queue = 'com.apple.libdispatch-manager'
frame #0: 0x33d0e224 libsystem_kernel.dylib`kevent64 + 24
frame #1: 0x33c430f0 libdispatch.dylib`_dispatch_mgr_invoke + 280
frame #2: 0x33c37d3a libdispatch.dylib`_dispatch_mgr_thread + 38
*** Canceling tests due to timeout in Waiting for test process to check in... If you believe this error represents a bug, please attach the log file at /var/folders/yz/xbdghvnj1_7fhsrwl5v232b40000gn/T/com.apple.dt.XCTest-status/Session-2015-07-13_12:31:55-JkrDBi.log
Any ideas why this might be happening?
Upvotes: 0
Views: 951
Reputation: 1040
So... despite my belief to the contrary, this is a code-signing issue. Manually setting the provisioning profile on the test target (not the product target) in Xcode got my test up and running through the device.
The test fails in a new and unexpected (something semaphore-related) way compared to the iOS Simulator, but that's a whole different discussion.
Hope this helps somebody.
Upvotes: 4