级别:★☆☆☆☆
标签:「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都没有用)。希望能临时帮助遇到同样问题的同学解决问题。