Contacts.app se bloquea al iniciar

0

Mi Contacts.app se estrelló en el lanzamiento. En el informe del accidente encontré, entre otros, el siguiente extracto:

Application Specific Information:
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Multiple object mappings were found for AB key AAMkADM2MDFmNGNmLWM3NmMtNGYxOS1iMDg4LWY0YjI1MGYzNjYxYQBGAAAAAABDPkLykrMnSJ1IqQdY8YscBwBYGhW8CcVeTK3joidjOJa9AAAAAAEiAABYGhW8CcVeTK3joidjOJa9AAA10vffAAA= of type itemId'
terminating with uncaught exception of type NSException
abort() called
    
pregunta d-b 25.01.2016 - 00:10

1 respuesta

0

Me di cuenta específicamente esta línea se encontraron correlaciones de objetos múltiples para AAMkADM2MDFmNGNmLWM3NmMtNGYxOS1iMDg4LWY0YjI1MGYzNjYxYQBGAAAAAABDPkLykrMnSJ1IqQdY8YscBwBYGhW8CcVeTK3joidjOJa9AAAAAAEiAABYGhW8CcVeTK3joidjOJa9AAA10vffAAA tecla AB = tipo de itemId ', que indica que sospechaba que tenía un duplicado en alguna parte de la base de datos de contactos

Así es como lo resolví, en una terminal:

cd ~/Library/ Application\ Support/AddressBook/
grep -r MtNGYxOS1iMDg4LWY0YjI1MGYzNjYxYQBGAAAAAABDPkLykrMnSJ1IqQdY8YscBwBYGhW8CcVeTK3jo *

(esto es parte de la "cadena larga" anterior. Fue suficiente para mí, ya que la búsqueda solo produjo un resultado, Exchange en Sources/187CB027-195A-4D96-99B2-B8A546A743DC )

Este archivo demostró ser un archivo de base de datos SQLite. Ábrelo con algún lector de SQLite. Utilicé sqlitestudio.

En esta base de datos hay una tabla ZMAPPING en la que estamos interesados. Encuentre las entradas relevantes en esta tabla con algunos SQL

select * from zmapping where zitemid like '%AAMkADM2MDFmNGNmLWM3NmMtNGYxOS1iMDg4LWY0YjI1MGYzNjYxYQBGAAAAAABDPkLykrMnSJ1IqQdY8YscBwBYGhW8CcVeTK3joidjOJa9AAAAAAEiAABYGhW8CcVeTK3joidjOJa9AAA10vffAAA=%'

En mi caso, esta consulta devolvió dos líneas. Anote los valores en Z_PK para todas las líneas devueltas. Ahora busque en la tabla ZMAPPING las filas con estos valores Z_PK y copie los valores correspondientes en la columna ZADDRESSBOOKUNIQUEID. Usando estos valores copiados, vuelva al terminal y ejecute 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

Ahora hice strings en este archivo para averiguar la tarjeta de dirección de quién estaba a punto de eliminar. Si es necesario, tome nota de cualquier dirección, número de teléfono, etc. que desee conservar. Luego borre este archivo.

Repita este proceso para todas las demás entradas encontradas (una más en mi caso).

Finalmente, elimine las líneas en ZMAPPING que encontró usando la consulta sql. No te olvides de cometer / guardar.

Inicia Contacts.app y vuelve a crear el contacto eliminado.

    
respondido por el d-b 25.01.2016 - 00:10

Lea otras preguntas en las etiquetas