2017-10-04 93 views
0

單元測試不能在設備與錯誤運行[__NSPlaceholderArray initWithObjects:計數:]:嘗試從物體插入零對象[1]當在真實的設備運行單元測試

[__NSPlaceholderArray initWithObjects:count:]: attempt to insert nil object from objects[1] 

應用啓動後正常時不運行單元測試和單元測試在模擬器中針對相同的設備類型和操作系統(iPhone 6,iOS 10.3.3)運行正常。

完整的堆棧跟蹤

* thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGABRT 
    frame #0: 0x0000000180c79014 libsystem_kernel.dylib`__pthread_kill + 8 
    frame #1: 0x0000000180d43264 libsystem_pthread.dylib`pthread_kill + 112 
    frame #2: 0x0000000180bed9c4 libsystem_c.dylib`abort + 140 
    frame #3: 0x00000001806b91b0 libc++abi.dylib`abort_message + 132 
    frame #4: 0x00000001806d2c04 libc++abi.dylib`default_terminate_handler() + 304 
    frame #5: 0x00000001806e0820 libobjc.A.dylib`_objc_terminate() + 124 
    frame #6: 0x00000001806cf5d4 libc++abi.dylib`std::__terminate(void (*)()) + 16 
    frame #7: 0x00000001806cf1a8 libc++abi.dylib`__cxa_rethrow + 144 
    frame #8: 0x00000001806e06f8 libobjc.A.dylib`objc_exception_rethrow + 44 
    frame #9: 0x0000000181b5ae10 CoreFoundation`CFRunLoopRunSpecific + 532 
    frame #10: 0x0000000187e1afc8 UIKit`-[UIApplication _run] + 652 
    frame #11: 0x0000000187e15c9c UIKit`UIApplicationMain + 208 
    * frame #12: 0x00000001000d08d0 <AppName>`main(argc=9, argv=0x000000016fd33038) at main.m:16 
    frame #13: 0x0000000180b6959c libdyld.dylib`start + 4 

啓動單元測試時,它看起來像一個初始化的問題。這些工作之前,但不再是,不知道可能會有什麼不同。我已經恢復到以前的版本,我確信測試哪裏運行,我仍然發現相同的問題。它看起來像我的環境中的東西。

事情我想,沒有任何效果:

  • 重新安裝的Xcode(我使用的Xcode 8.3.3)
  • 清潔項目(甚至清洗項目文件夾)
  • 重啓設備(iPhone 6 iOS版10.3.3)
  • 嘗試與其他設備(與iOS 10.3.2 iPhone 6S)
  • 嘗試用新的Xcode 9.0
  • 更新的MacOS從內華達到幾點措施^ h塞拉利昂
  • 刪除導出數據文件夾

可能是什麼原因?

回答

0

我還沒有找到根本原因,但我已經應用this technique來切換一個虛擬的AppDelegate以加快單元測試的速度,我想這樣做,現在運行單元測試時沒有崩潰。

因此,它必須是AppDelegate中的某些東西,它會導致應用程序僅在運行單元測試時崩潰,而不會在正常運行應用程序時崩潰。

相關問題