級別:★☆☆☆☆
標籤:「Mojave」「Xcode10」「simulator」
作者: MrLiuQ
審校: QiShare團隊
前言:蘋果正式釋出Mojave系統後不久,小編因垂涎“暗黑模式”,便更新了自己的Mac本。之後發現使用Xcode 10無法在模擬器上跑程式的現象。在檢索解決方案無果後,小編慫恿兩位同事升級Mojave,同樣出現了此問題。 在意識到問題並非個例後,小編反饋給QiShare團隊,在經過大量試驗後才找到解決方案。故寫下本篇文章,希望對大家有所幫助。
一、問題現象:
Xcode現象: 在Xcode10執行程式後,一直處於Launching狀態無變化(見圖1),模擬器能被喚起,但模擬器上的app無法啟動。一段時間後,Xcode彈出錯誤提示(見圖2)。
圖2問題描述如下:
Failed to initiate service connection to simulator
DTServiceHubClient failed to bless service hub for simulator
二、解決方案:
解決方案操作步驟:
1、在Finder中找到應用程式目錄下的Xcode,右鍵顯示包內容;
2、在Contents中找到PlugIns資料夾,壓縮備份;
3、刪除PlugIns資料夾後重啟Xcode(無法啟動);
4、解壓備份的PlugIns至原路徑,再重啟Xcode。
操作步驟圖示如下:
- 1、在Finder中找到應用程式目錄下的Xcode,右鍵顯示包內容(如圖3)。
- 2、在Contents中找到PlugIns資料夾,壓縮備份(如圖4)。
- 3、刪除PlugIns資料夾後重啟Xcode(如圖5)。
- 這時,無法重啟Xcode,出現如下警告⚠️(如圖6)。
- 4、解壓備份的PlugIns至原路徑,再重啟Xcode(如圖7)。
- 操作完成,問題解決。
PS:雖然解決了問題,但小編並不知道問題的原因,而且還發現,重新啟動電腦後,已解決的問題會復現,但仍可以通過上述方案解決。暫時認為這是Mojave的BUG,希望蘋果能在下個系統版本中修復這個BUG,也歡迎大家留言探討。
三、解決思路:
根據Xcode的錯誤提示(DTServiceHubClient failed to bless service hub for simulator
),猜測是更新Xcode後,Xcode的外掛出現了問題。於是就先嚐試查詢安裝的第三方外掛(~/Library/Developer/Xcode/Plug-ins
),發現沒有該路徑,也就是說沒有安裝第三方的外掛。然後,嘗試查詢Xcode自身的外掛(/Applications/Xcode.app/Contents/PlugIns
),把自身外掛刪除,再重新解壓回來後,模擬器就可以正常使用了。
這是目前小編解決這個Mojave與Xcode10模擬器問題的唯一方法。(如果有別的方法,歡迎各路大神留言討論~)
四、其他方法:(也許其他場景可以用得上)
1. Edit Scheme 檢查配置
點選edit scheme
檢查配置是否正確:
2. 重置模擬器
erase all content and settings
刪除所有模擬器內容和設定。
小結:目前這是QiShare的唯一解決方案:重新安裝Xcode自身外掛(ps:之前小編重新安裝Xcode都沒有用)。希望能臨時幫助遇到同樣問題的同學解決問題。
關注我們的途徑有:
QiShare(簡書)
QiShare(掘金)
QiShare(知乎)
QiShare(GitHub)
QiShare(CocoaChina)
QiShare(StackOverflow)
QiShare(微信公眾號)