iOS KeyChain не получает значения из фона

В настоящее время я храню имя пользователя (электронную почту) и соленый хэш электронной почты и пароль в iOS KeyChain. Я использую найденную версию ARCВот.

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

Это все работает нормально, когда мне нужно извлечь токен для сетевых вызовов, пока приложение активно. Он работает для входа в систему с чистого запуска, а также для всех сетевых вызовов во всем. Проблема начинается, когда приложение находится в фоновом режиме.

Имейте в виду, что это происходит только время от времени, и мне еще предстоит связать его с определенной версией iOS или устройством.

Пользователь отключает местоположение (мониторинг региона), и я хочу обновить сервер своим статусом. Я пытаюсь извлечь токен из цепочки для ключей, так же, как и для любого другого сетевого вызова, и обновить статус. Но для некоторых пользователей значение равно нулю. Без этого я не могу обновлять сетевые ресурсы. Почему это работает для большинства, но не для небольшого процента?

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

Я вернулся к не-ARC версии связки ключей, но все равно получаю те же результаты. Буду признателен за любые отзывы по этому поводу. Это лишь небольшая часть моих пользователей, но это проблема, которую я хотел бы исправить и не беспокоиться. Заранее спасибо.

Кроме того, вся моя фоновая работа настроена в backgroundTask, чтобы предотвратить время ожидания. У меня нет никаких проблем с работой, связанной с цепочкой для ключей, но я не позволяю вещам идти вперед, пока мой токен не будет заполнен.

EDIT Я выяснил мою проблему с тем, что они не получают значения из фона. Я опубликую ответ ниже и приму его, так как считаю, что этот вопрос может стать ценным для других позже.

Ответы на вопрос(3)

Ваш ответ на вопрос