SSKeychain не сохраняет данные

#ios #sskeychain

#iOS #sskeychain

Вопрос:

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

Заранее спасибо!

извините за мой английский 🙂

Комментарии:

1. Вы использовали этот метод в appdelegates для создания UUID

2. пусть UserDefaults = NSUserDefaults.standardUserDefaults(), если UserDefaults.objectForKey(«ApplicationIdentifier») == nil { пусть UUID = NSUUID(). UUIDString UserDefaults.setObject(UUID, forKey: «ApplicationIdentifier») пользовательские ошибки. синхронизировать () }

3. и еще одно предложение создать новый сертификат SSKeychain.

4. Спасибо за ваш ответ! Но мне интересно, что, если мы сохраним UUID в NSUserDefaults, когда пользователь удалит приложение, UUID также будет удален. итак, мы должны воссоздать новый UUID. Я использую библиотеку с открытым исходным кодом SSKeychain для хранения UUID. Я сгенерировал уникальную строку устройства и использовал связку ключей для хранения. С помощью UUID я могу управлять количеством устройств, которые используются в центре ухода. В последнее время реальное количество устройств отличается от числа, которое я нашел в БД. Итак, я думаю, что UUID некоторых устройств невозможно получить из SSKeychain и воссоздать новый UUID.

5. в iPhone некоторое время возникает проблема на некоторых устройствах, поэтому в этом случае вы можете сделать так, как указано в моем ответе

Ответ №1:

Попробуйте это в своих appdelegates для Objective C

 NSString *uniqueId = [SSKeychain passwordForService:@"YOUR_PROJECT_IDENTIFIER" account:@"unique_id"];

if ([uniqueId length]==0)
{
      uniqueId = [AppDelegate uuid];
      [SSKeychain setPassword:uniqueId forService:@"Store credentials in Keychain Identifier" account:@"unique_id"];
}
[[NSUserDefaults standardUserDefaults] setValue:uniqueId forKey:@"iPhoneUniqueID"];
NSLog(@"Device_ID:%@",uniqueId);
  

Комментарии:

1. Большое спасибо! я хочу подтвердить, что SSKeychain не будет сохранять данные, когда: ** br ** 1. Смена разработчика команды в моем проекте. ** br** 2. Загрузите новый профиль подготовки. 3. Обновите iOS или что-нибудь еще?

2. Загрузите новый профиль подготовки используйте этот профиль для SSKeychain. Надеюсь, ваша проблема будет решена

3. @user6407153 я столкнулся с той же проблемой, с которой сталкиваетесь вы, и я внес некоторые изменения, о которых я вам говорю, и моя проблема будет решена, и я обновляю свой метод UUID на указанный выше. если ваша проблема решается с помощью моего решения, тогда одобрите мой ответ и дайте мне право голоса. Спасибо.

4. Спасибо за вашу поддержку! Я впервые сталкиваюсь с этой проблемой, мои знания о SSKeychain настолько плохи. Итак, не могли бы вы подробно объяснить мне, как поместить ваш код выше в проект. <pre> [SSKeychain SetPassword:UniqueID forService:@»Хранить учетные данные в идентификаторе цепочки ключей» учетная запись: @»unique_id»]; <code> Что означает эта строка @»Хранить учетные данные в идентификаторе цепочки ключей»? еще одно, большое спасибо!

5. Когда вы используете этот код внутри — (BOOL) application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { }, которые запускают этот код и получают доступ к вашей цепочке ключей из вашего проекта и вашему паролю цепочки ключей для конкретной учетной записи разработчика. и я также новичок в SSKeychain, поэтому я больше не помогаю вам в этомточка . я сожалею об этом.