CoreBluetooth y interferencia Wi-Fi

Estoy realmente estancado con un problema, por lo tanto, no hace falta decirlo, necesito tu ayuda. Estoy usando CoreBluetooth para comunicarse entre dos iDevices, es la misma aplicación, se ejecuta como una central en un dispositivo y como un periférico en el otro dispositivo. En algunos casos, la central pierde connection con el periférico con el siguiente error:

Error Domain=CBErrorDomain Code=10 "The connection has failed unexpectedly." UserInfo=0x14ee8fe0 {NSLocalizedDescription=The connection has failed unexpectedly.} 

En este caso particular, el periférico era un iPad 4 y el central era un iPad mini. Localicé el problema y resulta que, una vez que me encuentro con este problema, el problema persistirá cada vez que me conecto, independientemente de reiniciar la aplicación o incluso del bluetooth en ambos lados, SIN EMBARGO, la parte interesante es si apago Wifi en el dispositivo central, la connection ya no tiene time.

¿Tienes alguna sugerencia, soluciones? Ambos dispositivos ejecutan iOS 7.1.1

Este es un problema muy conocido, y tiene una solución que se confirma que funciona para el lado Mac.

 sudo defaults write /Library/Preferences/com.apple.airport.bt.plist bluetoothCoexMgmt Hybrid 

Después de ejecutar este script, el problema desaparecerá y las conexiones BT se mantendrán estables.

Y aquí está la explicación:

Antecedentes: después de un montón de fisgonear y rascarse la cabeza, esto es lo que encontré: el problema aquí es que el sistema no usa el mismo modo de coexistencia Bluetooth / Aeropuerto para BLE que usa para BT Classic. Un signo de cuento: si tiene algún dispositivo BT Classic conectado y activo, el error no se repro (ni para el dispositivo Classic ni para ningún dispositivo BLE conectado). En el momento en que el dispositivo Classic se desconecta, el error repros (es decir, todas las conexiones BLE también se eliminan).

Además, pude encontrar una reference en la tabla de símbolos de un agente de configuration de aeropuerto a una configuration de anulación para el modo de coexistencia. Si configura el modo manualmente como se indicó anteriormente para 'híbrido' (el mismo modo que se invoca generalmente cuando un dispositivo clásico está conectado), el error ya no se reproduzca.

Todos los créditos van a William Henderson de Knock para este truco.

Hubo casos en que también se percibió el mismo efecto en dispositivos iOS. Esto sucede algunas veces cuando las conexiones Core Bluetooth no son estables. A veces, esto puede hacer que la connection WiFi no se pueda utilizar. Pero es difícil de reproducir, al less no pude hacerlo, y tu pregunta tampoco le preocupa.