web-dev-qa-db-fra.com

Le trousseau Xamarin Auth Store ne fonctionne pas après la mise à niveau d'ios10

J'utilise Xamarin.Auth ( https://components.xamarin.com/view/xamarin.auth/ ) pour stocker mes informations d'identification, comme je l'ai toujours fait.

var accountStore = AccountStore.Create ();
foreach (var account in  accountStore.FindAccountsForService("myAppName"))
    accountStore.Delete (account, "myAppName");

AccountStore.Create().Save(acc, "myAppName");

Après la mise à niveau vers iOS 10, j'obtiens cette erreur lors du stockage des informations d'identification:

"Could not save account to KeyChain: -34018"

at Xamarin.Auth.KeyChainAccountStore.Save (Xamarin.Auth.Account account,System.String serviceId) [0x000b2] in <402cf9b3716845b3bdddef581cb33a3e>:0 

Dernière version installée 1.2.3.1 Le problème semble persister uniquement sur le SIMULATEUR

34
Ziba Leah

Je creusais le lien Pat a envoyé le commentaire: bugzilla.xamarin.com/show_bug.cgi?id=43514

Et a trouvé un commentaire utile de Pavel Sich , il a dit:

Assurez-vous simplement d'activer l'accès au trousseau dans les droits et sélectionnez également les droits pour les versions du simulateur (débogage). Par défaut, cela n'est pas défini.

Dans ma solution xamarin, j'ai double-cliqué sur le projet .IOS pour ouvrir le volet d'options, sélectionné Signature du bundle IOS et changé la boîte de sélection Platform depuis "iPhone" sur "iPhoneSimulator", puis définissez le champ Custom Entitlements sur mon Entitlements.plist. Maintenant ça marche bien pour moi.

Juste une note, c'est après avoir édité le Entitlement.plist comme suggéré par Thibault D. dans la réponse précédente.

J'espère que cela t'aides.

68
Rafael

Selon ce fil il suffit que vous ajoutiez un fichier de droits vide dans votre configuration de chant groupée:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|iPhoneSimulator' ">
  ...
  <CodesignEntitlements>Entitlements.plist</CodesignEntitlements>
</PropertyGroup>

Vide Entitlements.plist fichier:

<?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>
10
Thibault D.

Il semble que lorsque vous travaillez sur IphoneSimulator même vous avez activé KeyChain dans Entitlements.plist, cela ne fonctionne toujours pas et lève cette exception. Parce que Xamarin ne semble pas avoir par défaut CodesignEntitlements ensembles pour la configuration IphoneSimulator bien qu'il ait pour les configurations Iphone. Vous devez ouvrir votre IOS.csproj fichier et ajoutez manuellement cette ligne

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|iPhoneSimulator' ">

  <CodesignEntitlements>Entitlements.plist</CodesignEntitlements>
</PropertyGroup>
0
batmaci

Définir des droits personnalisés dans les paramètres du projet ios enter image description here

0
Yauhen Sampir