升級Mojave后,Xcode10啟動模擬器后無法運行程序了,怎么辦?

級別:★☆☆☆☆
標(biāo)簽:「Mojave」「Xcode10」「simulator」
作者: MrLiuQ
審校: QiShare團隊

前言:蘋果正式發(fā)布Mojave系統(tǒng)后不久,小編因垂涎“暗黑模式”,便更新了自己的Mac本。之后發(fā)現(xiàn)使用Xcode 10無法在模擬器上跑程序的現(xiàn)象。在檢索解決方案無果后,小編慫恿兩位同事升級Mojave,同樣出現(xiàn)了此問題。
在意識到問題并非個例后,小編反饋給QiShare團隊,在經(jīng)過大量試驗后才找到解決方案。故寫下本篇文章,希望對大家有所幫助。

一、問題現(xiàn)象:

Xcode現(xiàn)象:在Xcode10運行程序后,一直處于Launching狀態(tài)無變化(見圖1),模擬器能被喚起,但模擬器上的app無法啟動。一段時間后,Xcode彈出錯誤提示(見圖2)。

圖1
圖2

圖2問題描述如下:
Failed to initiate service connection to simulator
DTServiceHubClient failed to bless service hub for simulator


二、解決方案:

解決方案操作步驟:
1、在Finder中找到應(yīng)用程序目錄下的Xcode,右鍵顯示包內(nèi)容;
2、在Contents中找到PlugIns文件夾,壓縮備份;
3、刪除PlugIns文件夾后重啟Xcode(無法啟動);
4、解壓備份的PlugIns至原路徑,再重啟Xcode。

操作步驟圖示如下:

  • 1、在Finder中找到應(yīng)用程序目錄下的Xcode,右鍵顯示包內(nèi)容(如圖3)。
圖3
  • 2、在Contents中找到PlugIns文件夾,壓縮備份(如圖4)。
圖4
  • 3、刪除PlugIns文件夾后重啟Xcode(如圖5)。
圖5
  • 這時,無法重啟Xcode,出現(xiàn)如下警告??(如圖6)。
圖6
  • 4、解壓備份的PlugIns至原路徑,再重啟Xcode(如圖7)。
圖7
  • 操作完成,問題解決。

PS:雖然解決了問題,但小編并不知道問題的原因,而且還發(fā)現(xiàn),重新啟動電腦后,已解決的問題會復(fù)現(xiàn),但仍可以通過上述方案解決。暫時認為這是Mojave的BUG,希望蘋果能在下個系統(tǒng)版本中修復(fù)這個BUG,也歡迎大家留言探討。


三、解決思路:

根據(jù)Xcode的錯誤提示(DTServiceHubClient failed to bless service hub for simulator),猜測是更新Xcode后,Xcode的插件出現(xiàn)了問題。于是就先嘗試查找安裝的第三方插件(~/Library/Developer/Xcode/Plug-ins),發(fā)現(xiàn)沒有該路徑,也就是說沒有安裝第三方的插件。然后,嘗試查找Xcode自身的插件(/Applications/Xcode.app/Contents/PlugIns),把自身插件刪除,再重新解壓回來后,模擬器就可以正常使用了。

這是目前小編解決這個Mojave與Xcode10模擬器問題的唯一方法。(如果有別的方法,歡迎各路大神留言討論~)




四、其他方法:(也許其他場景可以用得上)

1. Edit Scheme 檢查配置

點擊edit scheme檢查配置是否正確:

2. 重置模擬器

erase all content and settings刪除所有模擬器內(nèi)容和設(shè)置。

小結(jié):目前這是QiShare的唯一解決方案:重新安裝Xcode自身插件(ps:之前小編重新安裝Xcode都沒有用)。希望能臨時幫助遇到同樣問題的同學(xué)解決問題。


了解更多iOS及相關(guān)新技術(shù),請關(guān)注我們的公眾號:

關(guān)注我們的途徑有:
QiShare(簡書)
QiShare(掘金)
QiShare(知乎)
QiShare(GitHub)
QiShare(CocoaChina)
QiShare(StackOverflow)
QiShare(微信公眾號)


推薦文章:
iOS 推送通知
給你的動畫加點料:談?wù)凙nimationWorklet

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。