Я использую SSKeychain для хранения токена сеанса. Когда я компилирую и запускаю приложение из XCode, иногда токен не может быть найден (похоже, он работает спорадически). Однако, если я отключу свое устройство и запустил приложение без XCode, токен вернется, 10/10 раза. Я не уверен, что это проблема с SSKeychain или с Keychain в целом. Код, я использую для хранения и чтения значений заключается в следующем:Не удается найти значение брелка при работе с XCode
- (void)setSecureValue:(NSString *)value forKey:(NSString *)key
{
[SSKeychain setPassword:value forService:kServiceName account:key];
}
- (NSString *)secureValueForKey:(NSString *)key
{
if (key != nil)
{
return [SSKeychain passwordForService:kServiceName account:key];
}
return nil;
}
Многие вопросы, вращаясь брелок доступа, кажется, решена, понимая, что брелка не является хранение данных и что он может быть освобожден в разы (из-за предупреждений памяти, например). Однако, поскольку я всегда запускаюсь на одном устройстве, а токен по-прежнему существует после отключения и запуска снова, я не вижу, как это может быть проблемой здесь.
Я вижу. Есть ли обходной путь для этого? Я предполагаю, что многие большие приложения используют брелок, и создание чего-то вроде потока входа настолько сложно, если вы не можете полагаться на брелок для работы на устройстве. –
Я не знаю ни о каком обходном пути. Что я делаю, так это то, что я просто использую симулятор настолько, насколько могу. Вы также можете сделать какое-то специальное решение DEBUG - я имею в виду, что в режиме отладки не используйте keychain: - / –