**内部错误:未捕获的异常**
未捕获的异常:加载的com.apple.CoreSimulator.CoreSimulatorService作业与我们的期望不符:
堆栈: 0 0x00007fff95278aca __exceptionPreprocess(在CoreFoundation中) 1 0x00007fff95c8273c objc_exception_throw(在libobjc.A.dylib中) 2 0x00007fff952788ba + [NSException raise:format:arguments:](在CoreFoundation中) 3 0x00007fff924d288c - [NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:](在Foundation中)
答案 0 :(得分:2)
此问题表明加载的CoreSimulatorService作业与预期不符。在启动使用模拟器(Xcode,Simulator,simctl,xcodebuild,Instruments等)的任何进程时,系统首先检查加载的CoreSimulatorService是否适用于该版本的Xcode。如果不是,它会卸载作业并加载正确的作业。执行此操作后,它会重新验证连接,如果连接仍不符合预期,则会发出此错误。
当同一个用户帐户同时使用多个版本的Xcode 时,通常会发生这种情况。使用一个,完成,使用另一个,完成,使用另一个等等是完全没问题的。不能同时运行两个不同的副本。
答案 1 :(得分:1)
此错误通常是在com.apple.CoreSimulator.CoreSimulatorService
运行时更新或切换Xcode版本引起的。 Xcode(包括xcodebuild
)在构建iOS / tvOS / watchOS时使用模拟器来处理XIB / Storyboard文件,所以即使你没有启动Simulator.app,只需运行一个构建就可以启动CoreSimulator。
此检查确保launchd启动的XPC服务与库匹配。在你的情况下它失败了,表明launchd启动了旧版本的CoreSimulator。
如果CI系统重新使用安装了多个Xcode版本的实例,则需要确保用户会话完全注销,并且在开始下一次构建之前没有其他XPC服务实例正在运行。
如果您尝试在同一版本中切换Xcode版本,则需要在sudo killall -9 com.apple.CoreSimulator.CoreSimulatorService 2> /dev/null
后向xcode-select
插入脚本。确保Xcode,Simulator.app和Console.app全部关闭,或者他们尝试建立XPC连接只会让launchd立即重启作业。