iOS 13模拟器中的“找不到MIDI网络驱动程序”崩溃

fut*_*dam 12 ios coremidi ios-simulator ios13

在Xcode 11 beta 6的iOS 13模拟器中,启用MIDI Network Session时崩溃。

通过didFinishLaunching:WithOptions:在一个新项目中向AppDelegate添加以下行,我能够进行复制:

MIDINetworkSession.default().isEnabled = true
MIDINetworkSession.default().connectionPolicy = .anyone
Run Code Online (Sandbox Code Playgroud)

在iOS 13模拟器中运行时,该应用将在以下第一行崩溃,并在控制台上显示“找不到MIDI网络驱动程序”。iOS 12和更早版本的模拟器不受影响。

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

我假设这是一个Beta软件错误,并且已经向Apple提交了该错误。但是我觉得在这里进行记录很聪明,以防其他人遇到它。


更新时间:2019-09-11

对于Xcode 11.0 GM种子(包括新的iPhone 11型号)中的模拟器,这仍然是我的问题。


更新时间:2019-09-30

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

小智 11

我遇到了与您相同的错误,这让我感到沮丧。我搜索了四天的解决方案,最后找到了一个。希望对您有帮助!请仔细执行以下步骤:

  1. 将Xcode更新到最新版本

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

  3. 如果它们已打开,请退出应用程序Simulator和Xcode

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

  5. 按住Control键并单击Xco​​de,然后选择“显示软件包内容”

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

  7. 按住Control键并单击“ iOS.simruntime”,然后选择“显示软件包内容”

  8. 导航到/Contents/MacOS并确认您看到名为“ iOS 13.0”的文档

  9. 退出“ MacOS”文件夹,回到“目录”文件夹,然后导航到 /Resources/RuntimeRoot/System/Library/Audio

  10. 复制整个“ MIDI驱动程序”文件夹

  11. 退出“音频”文件夹,并一直导航回到“ RuntimeRoot”文件夹

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

  13. 将复制的“ MIDI驱动程序”文件夹粘贴到此“音频”文件夹中

  14. 关闭Finder,重新启动Xcode,然后尝试在iOS 13模拟器中再次运行项目

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

  • 这太神奇了,而且有效。1)你怎么知道的?2)通过使用cmd-shift-G并转到有问题的文件夹(例如`/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/ Runtimes / iOS.simruntime / Contents / Resources / RuntimeRoot / Library / Audio`等。谢谢。 (3认同)