J'ai particulièrement remarqué cette ligne Des correspondances multiples d'objets ont été trouvées pour la clé AB AAMkADM2MDFmNGNmLWM3NmMtNGYxOS1iMDg4LWY0YjI1MGYzNjYxYQBGAAAAAABDPkLykrMnSJ1IqQdY8YscBwBYGhW8CcVeTK3joidjOJa9AAAAAAEiAABYGhW8CVeTK3joidjOJa9AAA10vffAAA= de type itemId'. ce qui, je le soupçonnais, indiquait que j'avais un doublon quelque part dans la base de données des contacts.
Voici comment je l'ai résolu, dans un terminal :
cd ~/Library/ Application\ Support/AddressBook/
grep -r MtNGYxOS1iMDg4LWY0YjI1MGYzNjYxYQBGAAAAAABDPkLykrMnSJ1IqQdY8YscBwBYGhW8CcVeTK3jo *
(cela fait partie de la "longue chaîne" ci-dessus. C'était suffisant pour moi, puisque la recherche n'a donné qu'un seul résultat, Exchange
sur Sources/187CB027-195A-4D96-99B2-B8A546A743DC
)
Ce fichier s'est avéré être un fichier DB SQLite. Ouvrez-le avec un lecteur SQLite. J'ai utilisé sqlitestudio.
Dans cette base de données, il y a une table ZMAPPING qui nous intéresse. Trouvez les entrées pertinentes dans cette table avec un peu de SQL
select * from zmapping where zitemid like '%AAMkADM2MDFmNGNmLWM3NmMtNGYxOS1iMDg4LWY0YjI1MGYzNjYxYQBGAAAAAABDPkLykrMnSJ1IqQdY8YscBwBYGhW8CcVeTK3joidjOJa9AAAAAAEiAABYGhW8CcVeTK3joidjOJa9AAA10vffAAA=%'
Dans mon cas, cette requête a retourné deux lignes. Notez les valeurs dans Z_PK pour toutes les lignes retournées. Maintenant, cherchez dans la table ZMAPPING les lignes avec ces valeurs Z_PK et copiez les valeurs correspondantes dans la colonne ZADDRESSBOOKUNIQUEID. En utilisant ces valeurs copiées, retournez au terminal et exécutez un grep
$ grep -r 8F436716-52E6-49A9-AC03-2A120B08 *
…
Binary file Sources/187CB027-195A-4D96-99B2-B8A546A743DC/Metadata/8F436716-52E6-49A9-AC03-2A120B083CF9:ABPerson.abcdp matches
J'ai maintenant fait strings
sur ce fichier pour savoir à qui appartenait la carte d'adresse que j'étais sur le point de supprimer. Si nécessaire, prenez note de l'adresse, du numéro de téléphone, etc. que vous souhaitez conserver. Puis supprimez ce fichier.
Répétez ce processus pour toutes les autres entrées qui ont été trouvées (une de plus dans mon cas).
Enfin, supprimez les lignes de ZMAPPING que vous avez trouvées en utilisant la requête sql. N'oubliez pas de faire un commit/save.
Lancez l'application Contacts.app et recréez le contact supprimé.