蓝牙低功耗应用无法在iOS 7上编写特性

我有一个蓝牙低功耗(BLE)应用程序,通过开放式连接与BLE设备通信。 我正在使用CoreBluetooth库。 我将iPhone升级到iOS 7和XCode升级到XCode 5.我重新编译了我的蓝牙低功耗应用程序,发现它不再有效。 连接成功。 发现服务和特征没有问题。 即使阅读这些特征似乎也很好。 但写入应该在BLE设备上触发某些操作的特性没有任何影响。

如果我使用XCode将同一个应用程序下载到另一个iOS 6的 iPhone上,一切正常。 所以我可以确定问题可能是iOS 7而不是XCode 5的重新编译。 XCode 5也可以为同一个项目准备iOS 6设备的不同应用程序,因为我可以看到应用程序在两个设备上的外观不同。

那么从iOS 6到iOS 7的变化使得写入特性失败了?

我遇到了同样的问题,问题在于固件而不是你的iOS代码。 iOS6在特性类型上更加轻松,但iOS7更加严格。

Feature的WriteWithoutResponse标志必须明确设置为与iOS7一起使用

我在我的初创公司使用RedBear的Biscuit for Arduino来测试我们的产品,它与iOS6非常相似但是当应用程序迁移到iOS7时,写入会安静地失败。

这里有更详细的讨论(参见Mattj949的更新)@ https://redbearlab.zendesk.com/entries/25031402-BLE-Mini-and-iOS-7这个问题有一些Apple线程, http://列表。 apple.com/archives/bluetooth-dev/2013/Aug/msg00046.html和http://lists.apple.com/archives/bluetooth-dev/2013/Aug/msg00050.html