iOS KeyChain no recupera valores del fondo

Actualmente estoy almacenando el nombre de usuario (correo electrónico) y un hash con sal del correo electrónico y la contraseña en el llavero de iOS. Estoy usando la versión ARC'ified encontradaaquí.

<code>KeychainItemWrapper *wrapper = [[KeychainItemWrapper alloc] initWithIdentifier:@"MyCustomIdentifier" accessGroup:nil];
[wrapper setObject:APP_NAME forKey:(__bridge id)kSecAttrService];
[wrapper setObject:email forKey:(__bridge id)kSecAttrAccount];
[wrapper setObject:token forKey:(__bridge id)kSecValueData];
</code>

Todo esto funciona bien cuando necesito sacar el token para mis llamadas de red mientras la aplicación está activa. Funciona para iniciar sesión desde un inicio limpio, así como todas las llamadas de red en todo. El problema comienza cuando la aplicación está en segundo plano.

Tenga en cuenta que esto solo ocurre de manera esporádica y todavía no lo puse en una versión o dispositivo iOS específico.

El usuario dispara una ubicación (monitoreo de la región) y quiero actualizar el servidor con su estado. Intento sacar el token del llavero, de la misma manera que lo hago con cada otra llamada de la red, y actualizar el estado. Pero para algunos usuarios, el valor es nulo. Sin él, no puedo actualizar las cosas de la red. ¿Por qué funcionaría esto para la mayoría, pero no para un pequeño porcentaje?

<code>KeychainItemWrapper *wrapper = [[KeychainItemWrapper alloc] initWithIdentifier:@"MyCustomIdentifier" accessGroup:nil];
NSString *token = [wrapper objectForKey:(__bridge id)kSecValueData];
</code>

Volví a la versión sin ARC del keychainwrapper, pero sigo obteniendo los mismos resultados. Agradecería cualquier comentario sobre esto. Es solo una pequeña parte de mis usuarios, pero es un problema que me gustaría solucionar y no preocuparme. Gracias por adelantado.

Además, todo mi trabajo de fondo se configura en una Tarea de fondo para evitar que las cosas se agoten. No tengo ningún problema con el trabajo que rodea al llavero, pero no dejo que las cosas avancen hasta que se llene mi token.

EDITAR He descubierto mi problema con el llavero que no recupera los valores del fondo. Publicaré la respuesta a continuación y la aceptaré, ya que creo que esta pregunta puede ser valiosa para otros más adelante.

Respuestas a la pregunta(3)

Su respuesta a la pregunta