iOS 13 和 Xamarin.iOS 的故障排除提示

更新到 Xcode 11 后,模拟器无法启动

更新到 Xcode 11 beta 1 后,每次启动模拟器时都会抛出以下异常,并且模拟器不启动。 所有模拟器都发生此情况。

Exception

Foundation.ObjCException: NSInvalidArgumentException: -[SimDevice registerNotificationHandler:]: unrecognized selector sent to instance 0x7ffbf5d1e110

解决方法

在发布修补程序之前,可以按照以下步骤重新安装旧模拟器框架,以便开发人员能够继续工作:

注意

这些步骤假定你有两个 Xcode 应用程序:

  • Xcode11-beta1.app – 不适用于模拟器和 Visual Studio for Mac 的 beta 版本
  • Xcode102.app – Xcode 10 的稳定版本。 你可能还会调用 Xcode.app

根据配置更改下面的命令行示例。

  1. 确保通过 xcode-select 选择了 Xcode 11:

    sudo xcode-select -s /Applications/Xcode11-beta1.app/Contents/Developer/

  2. 根据需要运行首次安装工具。

    /Applications/Xcode11-beta1.app/Contents/Developer/usr/bin/xcodebuild -runFirstLaunch

  3. 删除以下框架:

    sudo rm -Rf /Library/Developer/PrivateFrameworks/CoreSimulator.framework/Versions/*

  4. 切换回旧的 Xcode 版本

    sudo xcode-select -s /Applications/Xcode102.app/Contents/Developer/

  5. 为刚刚选择的旧 Xcode 版本重新运行首次启动工具

    /Applications/Xcode102.app/Contents/Developer/usr/bin/xcodebuild -runFirstLaunch

执行这些步骤后,应该能够再次使用 iOS 模拟器。