2012-04-05 185 views
36

我正在尝试一些新的Mac mini上支持蓝牙低功耗的iOS测试应用程序。这些框架中使用了CoreBluetooth框架。但是,我无法使蓝牙在iPhone模拟器中工作,这是Xcode的一部分。Xcode中的iPhone模拟器是否支持蓝牙低功耗?

当我分配新的CBCentralManager时,centralManagerDidUpdateState:收到CBCentralManagerStatePoweredOff,代表蓝牙当前已关闭。

我第一次运行文本应用程序,然后打开一个盒子,看起来很漂亮(只使用语言变量,而不是实际的文本)和两个按钮。第一个让我进入设置面板,在那里有一个选项来启用蓝牙。但是,在我告诉它启用蓝牙之后,它只显示旋转动画,它不会完成或取消。即使重新启动Mac后,仍然只有旋转动画。箱子也不开放了。

本质上,我认为iPhone模拟器应该支持蓝牙低功耗。否则,在模拟器上的设置应用程序中有一个选项没有意义。此外,中央管理器的状态是CBCentralManagerStatePoweredOff,但不是CBCentralManagerStateUnsupported,它代表该平台不支持蓝牙低功耗。这也给希望支持可能存在。

  • iPhone模拟器是否支持蓝牙低功耗?
  • 如果是,我该如何启用它?

回答

36

模拟器does support根据苹果的这篇应用笔记,Bluetooth Low Energy(4.0)。唯一的问题是,即使你有一台内置BLE的计算机,你也不能将模拟器与它一起使用,因为(我认为)你占用了BLE上的可用性,以便其他设备发现你的计算机,从而限制Mac的功能。

所以如果你去找一个BLE USB加密狗,你就可以在模拟器中使用它。

编辑:从@JoeShaw添加信息:

不幸的是,看起来好像核心蓝牙的支持已经从模拟器下降为iOS 7,参考:doubleencore.com/2013/09/whats-new-在蓝牙-LE-IOS-7。此外,链接的技术似乎已被删除。

+0

是的,这是最新的更新。但是,即使您连接了BLE USB加密狗,它也可能会以Mac OS注册加密狗而不是内部加密狗的方式出现问题。然后,模拟器仍然无法使用内部模块,并且由于外部加密狗被阻塞,它也不能工作。因此,我建议在系统启动后连接加密狗以解决此问题。 – Etan 2012-06-18 13:11:02

+0

更多信息。你在哪里购买加密狗? – chwi 2012-06-18 17:08:55

+1

没有获得一个,它只是我在Apple网站上阅读的信息。我去了一个真正的iPhone 4S,否则你不会遇到所有的错误:-) – Etan 2012-06-18 20:43:44

2

我一直工作在一个BLE应用在过去的一周,可以肯定地说,没有,模拟器不,除非你使用Mac有BLE(的Macbook Air)支持BLE - 但即使如此,我我不是100%确定如何启用这个功能(很可能只是通过在您的Mac和模拟器上的BLE进行调整)。

如果您没有启用BLE的mac,必须自己找4s做测试!

+0

我从2011年中期开始使用Mac mini服务器,所以它应该有蓝牙4.0。 – Etan 2012-04-10 08:10:24

+0

同样,不是没有外部加密狗根据苹果的文档 – chwi 2012-06-20 06:51:14

4

我发现苹果在their own samples中写道,模拟器不能用于测试核心蓝牙的应用程序。

重要提示: 该项目需要蓝牙LE兼容设备(目前只有iPhone 4S),并且不能在模拟器上工作。

+2

引用苹果的方式! – dustinrwh 2016-11-28 23:13:38

13

我一直在使用模拟器来测试BLE应用程序 - 但你需要在OSX 10.7上。正如Wilhelmsen所提到的,您还需要一个BLE USB加密狗。此外,你需要设置一个NVRAM设置:

$sudo nvram bluetoothHostControllerSwitchBehavior="never" 

请参阅本技术说明从苹果的更多详细信息,使用模拟器来测试BLE应用:http://developer.apple.com/library/ios/#technotes/tn2295/_index.html

+0

不工作。 在Xcode 6.1上,OSX 10.9.5,模拟器iPhone5〜6plus。 – allenlinli 2014-10-23 12:25:06

8

http://www.doubleencore.com/2013/09/whats-new-in-bluetooth-le-ios-7/,核心支持蓝牙已我从来没有想过为什么,但这意味着您将来需要在真实的硬件上进行测试。

它也看起来好像苹果已经删除了技术说明2295,因为当我点击URL时重定向。

+3

问题是,所有不同的BT软件狗的兼容性问题花费了太多的努力来解决问题。因此,Apple放弃了对模拟器的BT支持,因为遇到的错误使得模拟器的行为与真实设备不同。 – Etan 2013-11-18 11:25:06

0

其实我在模拟器尝试过,并没有工作。 模拟器无法识别您的计算机是否有蓝牙4.0,但如果您在Xcode中使用命令行工具项目,那么它可以工作。只是为了你想在命令行工具中创建一些东西。