Łańcuch kluczy iOS nie pobiera wartości z tła

Aktualnie przechowuję nazwę użytkownika (e-mail) i solutowany skrót adresu e-mail i hasła w łańcuchu kluczy iOS. Używam znalezionej wersji ARC'ifiedtutaj.

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

To wszystko działa dobrze, gdy muszę wyciągnąć token na moje połączenia sieciowe, gdy aplikacja jest aktywna. Działa przy logowaniu z czystego uruchamiania, jak również przy wszystkich połączeniach sieciowych w całym tekście. Problem zaczyna się, gdy aplikacja jest w tle.

Pamiętaj, że zdarza się to sporadycznie i muszę jeszcze przypiąć go do określonej wersji lub urządzenia z systemem iOS.

Użytkownik wybiera lokalizację (monitorowanie regionu) i chcę zaktualizować serwer o swój status. Próbuję wyciągnąć token z pęku kluczy, tak samo jak w przypadku każdego innego połączenia sieciowego i zaktualizować status. Ale dla niektórych użytkowników wartość jest zerowa. Bez tego nie mogę zaktualizować rzeczy w sieci. Dlaczego miałoby to działać dla większości, ale nie dla małego procentu?

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

Wróciłem do wersji keychainwrappera innej niż ARC, ale wciąż uzyskuję takie same wyniki. Byłbym wdzięczny za wszelkie opinie na ten temat. To tylko niewielka część moich użytkowników, ale jest to problem, który chciałbym naprawić i nie martwić się o to. Z góry dziękuję.

Ponadto wszystkie moje prace w tle są konfigurowane w tle, aby zapobiec przekroczeniu limitu czasu. Nie mam żadnych problemów z pracą wokół pęku kluczy, ale nie pozwalam, by sprawy szły naprzód, dopóki mój token nie zostanie wypełniony.

EDYTOWAĆ Odkryłem, że mój problem z pękiem kluczy nie pobiera wartości z tła. Opublikuję odpowiedź poniżej i zaakceptuję ją, ponieważ uważam, że to pytanie może stać się cenne dla innych później.

questionAnswers(3)

yourAnswerToTheQuestion