Wie sortiere ich Kontakte nach Erstellungsdatum oder Änderungsdatum in iOS-Kontakten oder OS X-Kontakten 7.x?

7

Gibt es eine Möglichkeit, das Datum anzuzeigen oder zu exportieren, an dem ein Kontakt in iOS 7 und / oder der Kontakte-App (Version 7.1) von einem Mac aus erstellt oder geändert wurde?

Dieser eine Datenpunkt würde das Dedupieren und Synchronisieren enorm unterstützen, selbst auf manuellere Weise.

Luke
quelle

Antworten:

3

Nachdem Contactsich ein bisschen in 'DB gegraben habe, habe ich Folgendes gefunden.

Wie bereits von @grgarside gesagt, ist die DB in

~/Library/Application\ Support/Address\ Book/Sources/<source-ID>/AddressBook-v22.abcddb

Wo <source-ID>ist höchstwahrscheinlich das zuletzt geänderte Verzeichnis.

AddressBook-v22.abcddbist eine SQLite DB-Datei mit 24 Tabellen (in meinem Fall). Das wichtigste ist, ZABCDRECORDwelches (unter anderem) den Vornamen, den Nachnamen und das Erstellungsdatum des Kontakts enthält (aber auch Änderungen usw.).

Die 2 interessanten Spalten in Ihrem Fall sind:

  • ZCREATIONDATE
  • ZMODIFICATIONDATE

Wie ich kürzlich herausgefunden habe , ist das Basisdatum für diese beiden Spalten der 01-01-2001. Die Spalten ZMODIFICATIONDATEYEARLESSund ZCREATIONDATEYEARLESS verwenden den 1. Januar des Erstellungsjahres als Basisdatum.

Mit können sqliteSie es so sortieren:

sqlite3 AddressBook-v22.abcddb "select ZFirstName, ZLastName from ZABCDRECORD order by ZMODIFICATIONDATE"

Es wird Vorname / Nachname sortiert nach Änderungsdatum ausgegeben.

Matthieu Riegler
quelle
Interessant, ich habe diese Spalten nicht ...?
grg
sqlite3 AddressBook-v22.abcddb "PRAGMA table_info(ZABCDRECORD);" | grep ZMODIFICATIONDATENichts mit diesem Befehl? (Ich bekomme 63 Spalten mit PRAGMA table_info(ZABCDRECORD);)
Matthieu Riegler
Hat
Interessant, nur zu Ihrer Information, ich verwende Kontakte 8.0. (Bau 1365)
Matthieu Riegler
@grgarside ebenfalls.
Aeroxy
2

Die Kontaktdatenbank wird in einer einzelnen SQLite3-Datenbank gespeichert. Sie finden Ihre hier ...

~/Library/Application\ Support/AddressBook/Sources/<source-ID>/AddressBook-v22.abcddb

Dies kann mit exportiert werden

sqlite3 AddressBook-v22.abcddb .dump > ~/Desktop/export

Da das Ergebnis eine einzelne Datei ist und erstellte / geänderte Daten nicht in meiner Datenbank gespeichert zu sein scheinen, können Sie nur nach Datum sortieren, indem Sie verschiedene Versionen der Datei vergleichen.

Sie können Time Machine verwenden, um ältere Versionen der Datei abzurufen, und FileMerge (ein Entwicklertool) oder ein anderes Vergleichstool wie Kaleidoscope, um das Ergebnis zu vergleichen.

Wenn Sie Ihre iOS-Datenbank durchsuchen möchten, können Sie Ihre Kontakte entweder jailbreaken oder mit Ihrem Mac synchronisieren.

grg
quelle
Dies erfordert möglicherweise eine Mischung aus Stack Overflow-Mitarbeitern, die das Innenleben von Core Data-Migrationen untersuchen und Protokolle in Verbindung mit den funktionsfähigen Dateien ändern, um eine Art Verlauf zu erstellen. Toller Eröffnungsaufschlag hier, aber ich kann nicht wirklich sehen, wie das funktionieren würde, selbst wenn Sie periodische Dumps machen wollten, während Sie große Änderungen vornehmen ...
bmike
Vielleicht mehr SuperUser als Stack Overflow imho.
Matthieu Riegler
0

Hinzufügen zu den Antworten hier (ich weiß immer noch nicht, wie man einen Link zu einem Kommentar hinzufügt) - wenn Sie dies einmal tun möchten, würden die Shell-Skripte ausreichen. Wenn Sie dies fortlaufend tun möchten, könnten Sie über die Verwendung eines Produkts nachdenken - ich verwende SQLiteManager , aber es ist teuer, außer wenn es zum Verkauf angeboten wird. Es gibt eine Reihe von kostenlosen und webbasierten SQLite-Managern. Diese Apps (wie SQLManager) sollten nach Spalten sortiert werden können. Ich finde das sehr nützlich, nicht nur für Kontakte, sondern für jede SQLite-Datenbank. Hier ist ein Beispiel für eine SQLite Firefox-Erweiterung.

Wenn Sie als Referenz SQLite-Datenbanken anzeigen möchten, die von Apps verwendet werden, suchen Sie die App im Finder (~ / Music / iTunes / Mobile \ Applications), kopieren Sie sie auf Ihren Desktop. Ändern Sie das Suffix in zip und doppelklicken Sie. Seien Sie vorsichtig. Klicken Sie bei gedrückter Ctrl-Taste auf die App-Datei. Wenn der Entwickler nichts dagegen hat, befindet sich die SQLite-Datei auf der obersten Ebene. Mit dieser Funktion teste ich meine Apps, wenn sie live geschaltet werden oder wenn sich das Betriebssystem ändert.

Wenn Sie sich dafür entscheiden, bei Skripten zu bleiben, kann möglicherweise jemand anderes die Details bereitstellen, aber ich glaube, Sie könnten ein Skript erstellen, das die Kontakte nicht nur kopiert - ich schlage vor - schreibgeschützt - sondern sie dann in Zahlen oder gleichwertig einfügt. Dann hätten Sie auch die Möglichkeit, nach Spalten zu sortieren.

David DelMonte
quelle
0

Versuchen Sie so etwas, wenn Sie nach Erstellungsdatum sortieren und das Datum anzeigen möchten:

  1. Terminal öffnen
  2. Navigieren Sie zu AddressBook-v22.abcddb
  3. Sqlite3 AddressBook-v22.abcddb "Datum / Uhrzeit auswählen (ZCREATIONDATE, 'unixepoch'), ZFirstName, ZLastName aus ZABCDRECORD nach ZCREATIONDATE bestellen"
user320794
quelle