¿Se ejecuta Core BLE en segundo plano después de que se abandona la fuerza en iOS 7.1? ¿O simplemente iBeacon?

¿Alguien sabe si Core BLE continúa ejecutándose en segundo plano después de que una fuerza de usuario abandone la aplicación en iOS 7.1? ¿O simplemente iBeacon continúa funcionando? Sé que ninguno de los dos seguirá emitiendo en vigor, pero ambos seguirán escaneando.

EDIT: He intentado probar la implementación actual que he tenido y no parece ejecutarse en segundo plano después de que se cerró la fuerza. Lo que he escuchado hasta ahora de otras fonts es que funciona, pero no parece estar ejecutándose para mí con la implementación estándar de CoreBluetooth.

Para CoreBluetooth (CBCentralManager y CBPeripheralManager), se aplican las siguientes reglas:

  • Si el usuario cierra la aplicación manualmente usando el conmutador de aplicaciones, la parte BLE de su aplicación también se elimina.
  • Si el usuario no cierra la aplicación manualmente, puede usar los modos de background del bluetooth-central y del bluetooth-peripheral para get devoluciones de llamada relevantes mientras su aplicación está en segundo plano. Sin embargo, iOS aún puede matar a su aplicación bajo la presión de la memory o por cualquier razón, en cuyo caso la parte BLE también se ha ido.
  • Para mantener viva la parte BLE, puede usar los identificadores de restauración al crear una instancia de CBCentralManager y CBPeripheralManager. Los administradores con un identificador de restauración se mantienen con vida incluso después de que iOS destruyó su aplicación, y si ocurre un evento BLE interesante), su aplicación se iniciará en segundo plano y se pasará al estado de los administradores cuando la aplicación haya sido eliminada para su restauración.
    • La queue principal se suspende durante la ejecución en segundo plano; asegúrese de configurar los administradores de manera que los events no se envíen a la queue principal.
    • Si el usuario cierra la aplicación manualmente utilizando el conmutador de aplicaciones, se perderá la restauración y la parte BLE de su aplicación no permanecerá activa.
    • Para probar la restauración, debe resolver el uso de herramientas como BackgroundKill . Tenga en count que el depurador Xcode puede mantener viva su aplicación, así que asegúrese de desconectar primero el depurador (que acabará con la aplicación), luego inicie su aplicación, abra BackgroundKill y examine la salida de la console en la window de Xcode Organizer.

Sí, sigue funcionando. Este es un cambio en iOS 7.1.

Vea mi respuesta detallada y el procedimiento de testing en los comentarios aquí: https://stackoverflow.com/a/22365156/1461050