Невозможно получить доступ к предыдущему сохраненному значению в цепочке ключей после обновления

У нас возникла проблема с доступом к значению, которое мы ранее сохранили в связке ключей в предыдущей версии нашего приложения. Мы обновили версию 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;
       }

person Brent Van Vosselen    schedule 29.03.2019    source источник
comment
См. статью stackoverflow. ком/вопросы/50348482/.   -  person Lucas Zhang    schedule 01.04.2019