Xcode "iPhone Simulator" 未显示在音频 Midi 设置 > Midi 网络设置中

Xcode "iPhone Simulator" not showing up in Audio Midi Setup > Midi Network Setup

我正在构建一个 iPad Midi 应用程序,因此需要在模拟器中 运行 连接到 MIDI 设备。以下是基本说明:

A​​pple Mac OSX 模拟器(iPhone 或 iPad)

  1. 在 OSX 上打开音频 Midi 设置。确保选中 MIDI window(Window 菜单->显示 MIDI Window
  2. 双击网络(在 MIDI 工作室中)
  3. 如果会话框为空,请单击 + 并创建会话 - 默认为会话 1
  4. 运行 xcode 项目和 "iPhone Simulator" 应该出现在“目录”框中。
  5. 单击“连接”- 作为参与者将移至“会话”框。

问题是 "iPhone Simulator" 在过去 6 个月里只出现过两次,几天前 OSX 10.11.2 升级后又消失了。我试过重新启动,更改所有涉及的应用程序的启动顺序,但都没有成功。终于向苹果提交雷达了。

所以我想知道是否有人知道捕捉它的技巧?它之前已经捕获过两次,但我一直无法重现它。

我以前也遇到过这个问题;这似乎对我有用:

  1. Check to make sure you don't have duplicates of the CoreMIDI.Framework in your project. *If present remove the reference to the duplicate CoreMIDI.Framework (highlight, tap delete)
  2. Product > Clean
  3. Run the iOS Simulator

您现在应该会在会话 1 中看到 iPhone 模拟器。

经过一番折腾,这里的情况似乎如下:

1) 如果您设法在 CoreMidi.framework 中 link 不止一次,您将失去 "iPhone Simulator" 根据 l'L'l 的回答。 2) 如果您使用 Cocoa Pod,它使用 CoreMidi.Framework 例如MIKMIDI 你可以丢"iPhone Simulator"。我发现的唯一修复方法是包含源代码或使用子项目。

苹果先说:

“工程部门就此问题提供了以下反馈:

目前不支持 OS X 和 Sim 之间的 MIDI 网络连接。"

哼哼,修不好!为了进一步阐明这是 OSX 10.11.2 和 Xcode 7.2

然后他们感到内疚,突然给我发了这个:

这是一封关于错误 ID# 23875386 的礼貌电子邮件。

工程部提供了以下反馈并要求提供一些额外信息以进一步调查此问题:

听起来你想在模拟器中激活网络 MIDI 驱动程序,以便它可以与主机环境通信。

这有帮助吗(从您的应用程序调用)?:

进口

... [MIDINetworkSession defaultSession].enabled = YES;

这适用于 所有 种情况!

在连接到 MIDI 设备之前,请确保您有此代码。

Objective-C:

#import <CoreMIDI/MIDINetworkSession.h>

MIDINetworkSession* session = [MIDINetworkSession defaultSession];
session.enabled = YES;
session.connectionPolicy = MIDINetworkConnectionPolicy_Anyone;

Swift:

let session = MIDINetworkSession.default()
session.isEnabled = true
session.connectionPolicy = MIDINetworkConnectionPolicy.anyone

下面也是一个很好的资源。

http://goodliffe.blogspot.ca/2011/01/more-ios-midi-using-networked-midi.html

确认于 Mac OS 10.12.4:

一定要设置主机和模拟器的端口不同。默认情况下,它们通常都设置为 5004,但如果它们同时为 运行,则会在端口上发生冲突。

尝试将主机会话更改为端口 5006。