Не удалось получить доступ к предыдущему сохраненному значению в связке ключей после обновления - PullRequest
1 голос
/ 29 марта 2019

У нас возникла проблема с доступом к значению, которое мы ранее хранили в цепочке для ключей в предыдущей версии нашего приложения.Мы обновили нашу версию Xamarin.iOS с 11.6.14 до 12.2.1.15 и нашу версию XCode с 9.4.1 до 10.1.

Мы больше не можем получить доступ к этому значению после обновления.

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

bool WriteGenericPasswordValueToSecureKeychain(string service, string account, string value)
       {
           if (service == null || account == null || value == null)
           {
               throw new ArgumentNullException("Both arguments need a value and cannot be null");
           }

           var query = new SecRecord(SecKind.GenericPassword)
           {
               Service = service,
               Account = account
           };

           var newRecord = new SecRecord(SecKind.GenericPassword)
           {
               Service = service,
               Account = account,
               ValueData = NSData.FromString(value, NSStringEncoding.UTF8)
           };

           SecStatusCode error;
           var match = SecKeyChain.QueryAsRecord(query, out error);
           if (error == SecStatusCode.Success)
           {
               error = SecKeyChain.Update(match, newRecord);
           }
           else
           {
               error = SecKeyChain.Add(newRecord);
           }

           if (error != SecStatusCode.Success && error != SecStatusCode.DuplicateItem)
           {
               return false;
           }

           return true;
       }
...