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