在Xcode 11 beta 6的iOS 13模拟器中,启用MIDI Network Session时崩溃。
通过在新项目中将以下行添加到AppDelegate的didFinishLaunching:WithOptions:
中,我可以进行复制:
MIDINetworkSession.default().isEnabled = true
MIDINetworkSession.default().connectionPolicy = .anyone
在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的回答中的步骤进行操作,似乎可以解决该问题。
答案 0 :(得分:11)
我遇到了与您相同的错误,这让我感到沮丧。我搜索了四天的解决方案,最后找到了一个。希望对您有帮助!请仔细执行以下步骤:
将Xcode更新到最新版本
确保将构建目标部署版本设置为iOS 13.0
如果应用程序Simulator和Xcode已打开,请退出
使用Finder,导航到您的Xcode版本所在的文件夹(我的应用程序文件夹中是我的文件夹)
控制+单击Xcode,然后选择“显示软件包内容”
导航到/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime
控制+单击“ iOS.simruntime”,然后选择“显示软件包内容”
导航到/Contents/MacOS
并确认您看到名为“ iOS 13.0”的文档
退出“ MacOS”文件夹,回到“目录”文件夹,然后导航至/Resources/RuntimeRoot/System/Library/Audio
复制整个“ MIDI驱动程序”文件夹
退出“音频”文件夹,并一直导航回到“ RuntimeRoot”文件夹
导航至/Library/Audio
,您应该会看到这里没有名为“ MIDI Drivers”的文件夹,只有“ Plug-Ins”和“ Tunings”
将复制的“ MIDI驱动程序”文件夹粘贴到此“音频”文件夹中
关闭Finder,重新启动Xcode,然后尝试在iOS 13模拟器中再次运行您的项目
现在,Xcode不应抱怨缺少MIDI驱动程序,并且您的代码应在没有EXE_BAD_ACCESS的情况下运行!希望对您有所帮助,如果还有其他疑问,请随时与我联系。
答案 1 :(得分:2)
这只是the accepted answer的简化,因为我经常这样做。假设您的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
中。
答案 2 :(得分:1)
这应该在Xcode 11.2随附的iOS 13.2模拟器中解决;根本原因正是Evan所确定的-文件路径错误。