2016-12-21 27 views
10

當我嘗試構建並運行我的鍵盤擴展時,它有時會與Thread 1: signal SIGQUIT崩潰。Swift鍵盤擴展SIGQUIT,執行被中斷,原因:EXC_BREAKPOINT

我無法重現錯誤。有時我可以構建並運行我的應用程序,但大多數情況下鍵盤只是退出。這發生在一個實際的設備上。在模擬器中,它不打開我的鍵盤,並說Waiting to Attach

控制檯一開始並不輸出任何錯誤。但是,如果我改變下拉查看UI數字體系在調試導航我得到了如下描述:

Details: No plist data for fetching view hierarchy: error evaluating expression 「(id)[(Class)objc_getClass("DBGViewDebuggerSupport_iOS") fetchViewHierarchyWithOptions:(id)[(Class)objc_getClass("NSDictionary") dictionaryWithObjects:(id)[(id)[(id)[(Class)objc_getClass("NSArray") arrayWithObject:(id)[(Class)objc_getClass("NSNumber") numberWithBool:1]] arrayByAddingObject:(id)[(id)[(Class)objc_getClass("NSArray") arrayWithObject:@"_UIVisualEffectBackdropView"] arrayByAddingObject:@"_UIBackdropEffectView"]] arrayByAddingObject:(id)[(Class)objc_getClass("NSNumber") numberWithBool:0]] forKeys:(id)[(id)[(id)[(Class)objc_getClass("NSArray") arrayWithObject:@"DBGViewDebuggerUseLayersAsSnapshots"] arrayByAddingObject:@"DBGViewDebuggerEffectViewsToSnapshotAsImage"] arrayByAddingObject:@"DBGViewDebuggerAlwaysEncodeLayers"]]]」: error: Execution was interrupted, reason: EXC_BREAKPOINT (code=1, subcode=0x18daddc34). 
The process has been returned to the state before expression evaluation. 

Method: -[DBGAbstractViewDescriber handleFetchedViewInfo:fetchError:resultHandler:] 
Please file a bug at http://bugreport.apple.com with this warning message and any useful information you can provide. 

我還拿了過程的截圖。

enter image description here

我做得不對,我怎麼能阻止我的鍵盤延長運行時,它退出所有的時間?它在描述中是否真的是一個錯誤?

+0

得到了同樣的事情。從谷歌的角度來看 - 這個錯誤似乎在最近纔出現。似乎是一個XCode 8.2.1問題 – Vaiden

+0

同樣的事情發生在我身上,不幸的是 –

+0

我也受到這種痛苦。任何人都找到解決方案了嗎 – Randy

回答

2

免責聲明

好像在Xcode 8.2.1的東西被打破,調試器不正確地安裝到正確的過程或託管過程中不正確加載新的代碼。

這不是一個永久的解決方案,而是一個臨時的解決方法。

替代方法

我已經能夠通過下面的步驟來解決這個問題。

  1. 殺掉正在使用鍵盤的任何進程(重要!)
  2. 啓動使用調試器的應用程序,以最新的代碼被部署到設備
  3. 導航設置>通用>鍵盤>等
  4. 刪除自定義鍵盤
  5. 重新添加您的自定義鍵盤
  6. 調試應用程序再次

這個原因起作用的原因是移除鍵盤會殺死託管擴展的進程,從而允許Xcode附加到新的二進制文件。

+0

當你說殺死任何使用鍵盤的進程時,一個人怎麼做? –

+1

關閉所有使用鍵盤的應用程序。 – Randy

0

據我所知這是Xcode 8.2.1中的一個錯誤。因爲在更新之前我的自定義鍵盤工作得很好。 這是一個臨時解決方案。

  1. 像往常一樣運行您的代碼!
  2. 調出鍵盤,直到出現錯誤(SIGQUIT)!
  3. 轉到的Xcode>調試>分離
  4. 轉到再次的Xcode>調試>附加到進程:連接鍵盤(它應該是第一個進程)

現在,您的斷點會工作。但不幸的是沒有日誌輸出!我希望它暫時解決你的問題