Xamarin Auth Store Keychain не работает после обновления ios10
Я использую Xamarin.Auth(https://components.xamarin.com/view/xamarin.auth/) для хранения моих учетных данных, как я всегда делал.
var accountStore = AccountStore.Create ();
foreach (var account in accountStore.FindAccountsForService("myAppName"))
accountStore.Delete (account, "myAppName");
AccountStore.Create().Save(acc, "myAppName");
После обновления до iOS 10 я получаю эту ошибку, хранящую учетные данные:
"Could not save account to KeyChain: -34018"
at Xamarin.Auth.KeyChainAccountStore.Save (Xamarin.Auth.Account account,System.String serviceId) [0x000b2] in <402cf9b3716845b3bdddef581cb33a3e>:0
Установлена последняя версия 1.2.3.1
Проблема, похоже, сохраняется только на SIMULATOR
Ответы
Ответ 1
Я прорыл ссылку Pat, отправленную в комментарии:
bugzilla.xamarin.com/show_bug.cgi?id=43514
И нашел полезный комментарий от Pavel Sich, он сказал:
Просто убедитесь, что вы активируете доступ к keychain в Entitlements и также выбираете права на сборку Simulator (Debug). По умолчанию это не задано.
В моем решении xamarin я дважды щелкнул проект .IOS, чтобы открыть панель параметров, выбранную подпись IOS Bundle Signing и изменил поле выбора платформы с "iPhone" на "iPhoneSimulator", а затем установил поле Пользовательские права на мои права. PLIST. Теперь он отлично работает для меня.
Просто заметьте, это после редактирования права доступа. Как было предложено Thibault D. в предыдущем ответе.
Надеюсь, что это поможет.
Ответ 2
В соответствии с этот поток достаточно, чтобы вы добавили пустой файл прав в свою комплектацию:
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|iPhoneSimulator' ">
...
<CodesignEntitlements>Entitlements.plist</CodesignEntitlements>
</PropertyGroup>
Пустой Entitlements.plist
файл:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
</dict>
</plist>