"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 的回答中的步骤进行操作,似乎可以解决问题。
我遇到了和你一样的错误,这让我很沮丧。我搜索了四天的解决方案,终于找到了一个。我希望这对你也有帮助!请仔细按照以下步骤操作:
更新Xcode到最新版本
确保您的构建目标部署版本设置为 iOS 13.0
退出应用程序模拟器和 Xcode 如果它们是打开的
使用 Finder,导航到您的 Xcode 版本所在的文件夹(我的在我的应用程序文件夹中)
Control + 单击 Xcode,然后 select 'Show Package Contents'
导航到 /Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime
Control + 单击 'iOS.simruntime',然后 select 'Show Package Contents'
导航至 /Contents/MacOS
并确认您看到名为 'iOS 13.0'
的文档
退出 'MacOS' 文件夹回到 'Contents' 文件夹并导航到 /Resources/RuntimeRoot/System/Library/Audio
复制整个 'MIDI Drivers' 文件夹
退出 'Audio' 文件夹并导航回 'RuntimeRoot' 文件夹
导航到 /Library/Audio
,您应该会看到这里没有名为 'MIDI Drivers' 的文件夹,只有 'Plug-Ins' 和 'Tunings'
将您复制的 'MIDI Drivers' 文件夹粘贴到此 'Audio' 文件夹中
关闭 Finder,重新启动 Xcode 并在 iOS 13 模拟器
中再次尝试 运行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
中。
在 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 的回答中的步骤进行操作,似乎可以解决问题。
我遇到了和你一样的错误,这让我很沮丧。我搜索了四天的解决方案,终于找到了一个。我希望这对你也有帮助!请仔细按照以下步骤操作:
更新Xcode到最新版本
确保您的构建目标部署版本设置为 iOS 13.0
退出应用程序模拟器和 Xcode 如果它们是打开的
使用 Finder,导航到您的 Xcode 版本所在的文件夹(我的在我的应用程序文件夹中)
Control + 单击 Xcode,然后 select 'Show Package Contents'
导航到
/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime
Control + 单击 'iOS.simruntime',然后 select 'Show Package Contents'
导航至
/Contents/MacOS
并确认您看到名为 'iOS 13.0' 的文档
退出 'MacOS' 文件夹回到 'Contents' 文件夹并导航到
/Resources/RuntimeRoot/System/Library/Audio
复制整个 'MIDI Drivers' 文件夹
退出 'Audio' 文件夹并导航回 'RuntimeRoot' 文件夹
导航到
/Library/Audio
,您应该会看到这里没有名为 'MIDI Drivers' 的文件夹,只有 'Plug-Ins' 和 'Tunings'将您复制的 'MIDI Drivers' 文件夹粘贴到此 'Audio' 文件夹中
关闭 Finder,重新启动 Xcode 并在 iOS 13 模拟器
中再次尝试 运行ning 您的项目
现在,Xcode 不应该抱怨缺少 MIDI 驱动程序,您的代码应该 运行 没有 EXE_BAD_ACCESS!希望对您有所帮助,如果您还有其他问题,请随时与我联系。
这应该在 iOS 13.2 模拟器中解决 Xcode 11.2;根本原因正是 Evan 所确定的 - 文件位于错误的路径。
这只是 /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
中。