2017-06-18 36 views
1

我在Xcode的macOS應用程序項目中添加了一個全新的單元測試目標。它包含了默認的兩個文件:全新的Xcode單元測試目標無法運行,因爲「啓動會話在簽入前已過期」。

  • .swift
  • 的Info.plist

然而,當我運行我的測試套件,與錯誤這個品牌新的目標符「測試(目標名稱)操作失敗:啓動會話在登入前已過期。「

完整的日誌:

12:12:49.492 Xcode[10034:721978] Beginning test session MyTargetTests-3902F95F-20F9-4E6C-94EE-0BF8660D3B5A at 2017-06-18 12:12:49.492 with Xcode 8E3004b on target <DVTLocalComputer: 0x7fcc3cf024d0 (My Mac | x86_64)> (10.12.4 (16E195)) 
12:12:49.492 Xcode[10034:721978] Launching with Xcode.DebuggerFoundation.Launcher.LLDB 
12:12:49.492 Xcode[10034:894962] Waiting for connection to unix domain socket at /tmp/XCTest-QcErkZ. 
12:12:59.747 Xcode[10034:721978] Launch session started. 
12:12:59.832 Xcode[10034:721978] Adding console adaptor <IDEConsoleAdaptor: 0x7fcc2cd44d00 'target'> for test session 3902F95F-20F9-4E6C-94EE-0BF8660D3B5A. 
12:12:59.914 Xcode[10034:721978] Test process runnable PID is 19198. 
12:13:02.025 Xcode[10034:721978] Test operation failure: Launch session expired before checking in. 
12:13:02.025 Xcode[10034:721978] _finishWithError:Error Domain=IDETestOperationsObserverErrorDomain Code=5 "Launch session expired before checking in." UserInfo={NSLocalizedDescription=Launch session expired before checking in.} didCancel: 1 

我的設置是:

  • Mac Mini的2011年中期
  • MACOS 10.12.4
  • 的Xcode 8.3(試圖在Xcode 8太 - 不好)

我試過了:

  • sudo /usr/sbin/DevToolsSecurity --enable - 沒有好
  • 刪除並重新測試目標 - 沒有好
  • 升級的Xcode 8.3 - 沒有好
  • 只是自己運行目標的試驗 - 沒有好,沒有多餘的日誌,以

因此... 如何使單元測試目標正常工作?

回答

7

錯誤消息「啓動會話在簽入之前過期」是一個紅鯡魚的位。您需要公開真正的底層錯誤消息,您可以通過View - > Debug Area - > Show Debug Area(如果它尚未顯示)訪問該錯誤消息。

在我的情況下,問題是libswiftswiftononesupport.dylib沒有被鏈接到我自己的某些庫,在我的macOS應用程序(未找到dyld圖像)。該解決方案是有點不可思議,又費力,但它的工作:

  • 我替換框架我所有的動態庫目標瞄準
  • 我啓用了「總是嵌入雨燕標準庫」的框架目標
  • 我沒有在任何主機應用程序中嵌入框架 - 我爲此選項選擇了「無」。
0

我最近遇到了那個失敗,當時我想用fastlane實現自動屏幕截圖。在我的情況下,錯誤發生的原因是新創建的UITest目標設置了iOS 11.X的部署目標,因此沒有爲iPhone 4構建32位版本。 (應用程序部署目標是9.3)。

相關問題