O iOS KeyChain não recupera valores do plano de fundo

No momento, estou armazenando o nome de usuário (e-mail) e um hash salgado do e-mail e senha no KeyChain do iOS. Estou usando a versão ARC'ified encontradaAqui.

<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>

Isso tudo funciona bem quando eu preciso puxar o token para minhas chamadas de rede enquanto o aplicativo está ativo. Ele funciona para o login de uma inicialização limpa, bem como todas as chamadas de rede por toda parte. O problema começa quando o aplicativo está em segundo plano.

Tenha em mente que isso só acontece esporadicamente e ainda não o fixei em uma versão ou dispositivo específico do iOS.

O usuário tropeça em um local (monitoramento de região) e eu quero atualizar o servidor com seu status. Eu tento extrair o token do chaveiro, da mesma forma que faço para todas as outras chamadas de rede, e atualizo o status. Mas para alguns usuários, o valor é nulo. Sem isso, não posso atualizar as coisas da rede. Por que isso funcionaria para a maioria, mas não para uma pequena porcentagem?

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

Voltei para a versão não-ARC do keychainwrapper, mas ainda obtenho os mesmos resultados. Eu apreciaria qualquer feedback sobre isso. É apenas uma pequena parte dos meus usuários, mas é um problema que eu gostaria de corrigir e não me preocupar. Desde já, obrigado.

Além disso, todo o meu trabalho em segundo plano é configurado em backgroundTask para evitar que as coisas saiam do tempo limite. Não estou tendo problemas com o trabalho em torno do chaveiro, mas não deixo que as coisas avancem até que meu token seja preenchido.

EDITAR Eu descobri o meu problema com o chaveiro não recuperando valores do fundo. Vou postar a resposta abaixo e aceitá-la, pois acho que essa pergunta pode se tornar valiosa para outras pessoas mais tarde.

questionAnswers(3)

yourAnswerToTheQuestion