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