"Couldn't find MIDI network driver" 在 iOS 13 个模拟器中崩溃

"Couldn't find MIDI network driver" crash in iOS 13 simulators

在 Xcode 11 beta 6 的 iOS 13 个模拟器中,我在启用 MIDI 网络会话时发生崩溃。

我能够通过将以下行添加到新项目中 AppDelegate 的 didFinishLaunching:WithOptions: 来进行复制:

MIDINetworkSession.default().isEnabled = true
MIDINetworkSession.default().connectionPolicy = .anyone

当 运行 在 iOS 13 模拟器中时,应用程序将在这些行的第一行崩溃,将 "Couldn't find MIDI network driver" 打印到控制台。 iOS 12 和更早的模拟器不受影响。

奇怪的是,似乎并不是我所有的 iOS 13 个模拟器都受到影响。似乎我在 Xcode 11 beta 4 和更早版本中使用的任何 iOS 13 模拟器都可以正常工作。唯一受影响的模拟器可能是我在 Xcode 11 beta 5 之后第一次使用的模拟器。

我假设这是一个测试版软件错误,并且已经向 Apple 提交了错误。但我觉得在这里记录下来以防其他人遇到它是明智的。


更新时间:2019-09-11

Xcode 11.0 GM 种子(包括新的 iPhone 11 模型)中的模拟器对我来说仍然是一个问题。


更新时间:2019-09-30

问题仍然存在于 Xcode 11.1 GM 种子中。我按照 Evan 的回答中的步骤进行操作,似乎可以解决问题。

我遇到了和你一样的错误,这让我很沮丧。我搜索了四天的解决方案,终于找到了一个。我希望这对你也有帮助!请仔细按照以下步骤操作:

  1. 更新Xcode到最新版本

  2. 确保您的构建目标部署版本设置为 iOS 13.0

  3. 退出应用程序模拟器和 Xcode 如果它们是打开的

  4. 使用 Finder,导航到您的 Xcode 版本所在的文件夹(我的在我的应用程序文件夹中)

  5. Control + 单击 Xcode,然后 select 'Show Package Contents'

  6. 导航到 /Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime

  7. Control + 单击 'iOS.simruntime',然后 select 'Show Package Contents'

  8. 导航至 /Contents/MacOS 并确认您看到名为 'iOS 13.0'

  9. 的文档
  10. 退出 'MacOS' 文件夹回到 'Contents' 文件夹并导航到 /Resources/RuntimeRoot/System/Library/Audio

  11. 复制整个 'MIDI Drivers' 文件夹

  12. 退出 'Audio' 文件夹并导航回 'RuntimeRoot' 文件夹

  13. 导航到 /Library/Audio,您应该会看到这里没有名为 'MIDI Drivers' 的文件夹,只有 'Plug-Ins' 和 'Tunings'

  14. 将您复制的 'MIDI Drivers' 文件夹粘贴到此 'Audio' 文件夹中

  15. 关闭 Finder,重新启动 Xcode 并在 iOS 13 模拟器

  16. 中再次尝试 运行ning 您的项目

现在,Xcode 不应该抱怨缺少 MIDI 驱动程序,您的代码应该 运行 没有 EXE_BAD_ACCESS!希望对您有所帮助,如果您还有其他问题,请随时与我联系。

这应该在 iOS 13.2 模拟器中解决 Xcode 11.2;根本原因正是 Evan 所确定的 - 文件位于错误的路径。

这只是 的简化版,因为我经常这样做。假设您的 Xcode 在 /Applications/Xcode.app:

复制MIDI Drivers
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/Audio

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/Library/Audio

并重新启动 Xcode。

备注

所以它出现在 RuntimeRoot/System/Library/Audio 中,也需要出现在 RuntimeRoot/Library/Audio 中。