2016-02-25 5 views
3

Я использую 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; 
} 

Многие вопросы, вращаясь брелок доступа, кажется, решена, понимая, что брелка не является хранение данных и что он может быть освобожден в разы (из-за предупреждений памяти, например). Однако, поскольку я всегда запускаюсь на одном устройстве, а токен по-прежнему существует после отключения и запуска снова, я не вижу, как это может быть проблемой здесь.

ответ

1

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

+0

Я вижу. Есть ли обходной путь для этого? Я предполагаю, что многие большие приложения используют брелок, и создание чего-то вроде потока входа настолько сложно, если вы не можете полагаться на брелок для работы на устройстве. –

+0

Я не знаю ни о каком обходном пути. Что я делаю, так это то, что я просто использую симулятор настолько, насколько могу. Вы также можете сделать какое-то специальное решение DEBUG - я имею в виду, что в режиме отладки не используйте keychain: - / –