ios CoreBluetooth 未知错误:1309

我在运行一个正在开发的BlueTooth应用程序时,偶尔会在控制台上发出“CoreBluetooth [WARNING] Unknown error:1309”的消息,即使这个消息指出这是一个警告,但是它会停止执行应用程序。通过closures蓝牙设置来解决这个问题,然后再打开。谁能告诉我是什么原因造成的,应该怎么做才能避免?

这是一个已知的问题,这是由于CoreBluetooth(苹果的bug)中的死锁造成的,1309错误大多出现在您的应用作为中央设备和外设运行时,以及操作彼此重叠时,在这种情况下会产生死锁可以通过重启设备来解决)。

似乎在其他一些情况下(iOS 7和更低版本)BLE堆栈也被破坏,在iOS 7.1堆栈上更稳定,并没有像这样的问题。
我们如何解决这样的问题?
显示用户可以自行解决问题的故障排除屏幕。

你可以在这里find已知的iOS问题http://help.getpebble.com/customer/portal/articles/957568-troubleshooting#Pair

无论如何,我认为你可以开始使用https://github.com/l0gg3r/LGBluetooth这将减less错误在你身边的机会,并使你的工作更有效。
这里是读/写的例子

[LGUtils readDataFromCharactUUID:@"f045" serviceUUID:@"5ec0" peripheral:peripheral completion:^(NSData *data, NSError *error) { NSLog(@"Data : %s Error : %@", (char *)[data bytes], error); }]; 

 int8_t dataToWrite = 0xFF; [LGUtils writeData:[NSData dataWithBytes:&dataToWrite length:sizeof(dataToWrite)] charactUUID:@"cef9" serviceUUID:@"5ec0" peripheral:peripheral completion:^(NSError *error) { NSLog(@"Error : %@", error); }]; 

由于CoreBluetooth正在发布这个“警告”,所以苹果或蓝牙社区必须有人编写代码,或者至less知道是什么情况触发了这个消息。 谁能告诉我这是什么原因造成的?我应该怎样做才能避免这种情况?或者指出一些能够帮助我完成这项工作的材料?

如果我不得不冒出一个猜测,我会说,你没有收到太多答复的主要原因是因为除了“有时我看到错误1309,事情停止工作”之外,你没有给出你的问题的描述。

如果还没有,请在bugreporter.apple.com上提交一个错误,并尽可能详细地包含详细信息 – 描述您正在尝试执行的操作,重新引导导致问题的步骤,甚至是testing应用程序。 直接回应我的错误号码,我会跟进