Je suis actuellement en train de stocker le nom d'utilisateur (e-mail) et un salée de hachage de l'e-mail et mot de passe dans l'iOS Trousseau de clés. Je suis l'aide de l'ARC'ified version trouvée ici.
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];
Tout cela fonctionne très bien quand j'en ai besoin pour tirer le jeton pour mes appels réseau, tandis que l'application est active. Il travaille pour une session à partir d'un démarrage en mode minimal, ainsi que tous les appels de réseau tout au long de. Le problème commence lorsque l'application est en arrière-plan.
Gardez à l'esprit, cela ne se produit que de façon sporadique et je n'ai pas encore la broche vers le bas à une version d'iOS ou de l'appareil.
L'utilisateur voyages d'un emplacement (région de suivi) et je veux mettre à jour le serveur avec leur statut. J'ai essayer de tirer le jeton de le trousseau d'accès, de la même manière que je fais pour tous les autres d'appel du réseau, et de mettre à jour le statut. Mais pour certains utilisateurs, la valeur est nulle. Sans elle, je ne peux pas mettre à jour le réseau des trucs. Pourquoi serait-ce de travailler pour la plupart, mais pas pour un petit pourcentage?
KeychainItemWrapper *wrapper = [[KeychainItemWrapper alloc] initWithIdentifier:@"MyCustomIdentifier" accessGroup:nil];
NSString *token = [wrapper objectForKey:(__bridge id)kSecValueData];
J'ai repris le non-ARC version de la keychainwrapper, mais j'ai toujours les mêmes résultats. Je vous serais reconnaissant de tout commentaire. C'est seulement une petite partie de mes utilisateurs, mais c'est une question que je voudrais corriger et ne pas s'inquiéter. Merci à l'avance.
Aussi, l'ensemble de mon travail de fond est mis en place dans un backgroundTask pour empêcher les choses de l'expiration du délai. Je ne suis pas avoir de problèmes avec le travail entourant le trousseau de clés, mais je n'ai pas laisser les choses aller de l'avant jusqu'à ce que mon jeton est rempli.
MODIFIER J'ai compris mon problème avec leur trousseau de ne pas extraire les valeurs de l'arrière-plan. Je vais poster la réponse ci-dessous et les accepter comme je sens que cette question peut devenir utile à d'autres plus tard.