Domanda:
Come ordinare i contatti per data di creazione o data di modifica in Contatti iOS o Contatti OS X 7.x?
Luke
2013-12-31 03:21:50 UTC
view on stackexchange narkive permalink

Esiste un modo per visualizzare o esportare la data in cui un contatto è stato creato o modificato in iOS 7 e / o nell'app Contatti (versione 7.1) se visualizzato da un Mac?

Questo punto dati aiuterebbe enormemente la deduplicazione e la sincronizzazione, anche in un modo più manuale.

Cinque risposte:
#1
+4
Matthieu Riegler
2014-01-07 23:02:26 UTC
view on stackexchange narkive permalink

Dopo aver scavato un po 'nel DB di Contatti , ecco cosa ho trovato.

Come già detto da @grgarside, il DB si trova in

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

Dove <source-ID> è molto probabilmente la directory modificata più recente.

AddressBook-v22.abcddb è un file DB SQLite con 24 tabelle (nel mio caso). Il più importante è ZABCDRECORD che contiene (tra gli altri) il nome, il cognome e la data di creazione del contatto (ma anche la modifica ecc.).

Le 2 colonne interessanti nel tuo caso sono:

  • ZCREATIONDATE
  • ZMODIFICATIONDATE

Come ho scoperto di recente, la data di base per queste 2 colonne è 01-01-2001. Le colonne ZMODIFICATIONDATEYEARLESS e ZCREATIONDATEYEARLESS utilizzano il 1 ° gennaio dell'anno di creazione come data di base.

Utilizzando sqlite puoi ordinarlo in questo modo:

sqlite3 AddressBook-v22.abcddb "seleziona ZFirstName, ZLastName da ZABCDRECORD order by ZMODIFICATIONDATE"

Produrrà FirstName / LastName ordinati per data di modifica.

Interessante, non ho queste colonne ...?
`sqlite3 AddressBook-v22.abcddb" PRAGMA table_info (ZABCDRECORD); " | grep ZMODIFICATIONDATE` Niente con questo comando? (Ottengo 63 colonne con `PRAGMA table_info (ZABCDRECORD);`)
Ho eseguito quel comando, nessun output ...
Interessante, solo FYI sto usando Contatti 8.0. (build 1365)
Allo stesso modo @grgarside.
#2
+2
grg
2014-01-07 03:50:29 UTC
view on stackexchange narkive permalink

Il database dei contatti è archiviato in un singolo database SQLite3. Puoi trovare il tuo qui ...

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

Questo può essere esportato utilizzando

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

Poiché il risultato è un singolo file e date create / modificate non sembrano essere archiviati nel mio database, l'unico modo per ordinare per data è confrontare le varie versioni del file.

Puoi utilizzare Time Machine per acquisire le versioni precedenti del file e FileMerge (un strumento per sviluppatori) o un altro strumento di confronto come Kaleidoscope per confrontare il risultato.

Se desideri esaminare il tuo database iOS, esegui il jailbreak o sincronizza i tuoi contatti con il tuo Mac.

Ciò potrebbe richiedere un mix di persone di Stack Overflow che analizzano il funzionamento interno delle migrazioni di Core Data e dei log delle modifiche insieme ai file funzionanti per assemblare una sorta di cronologia. Ottimo servizio di apertura qui, ma non riesco davvero a vedere come sarebbe possibile anche se volessi eseguire discariche periodiche mentre apporti grandi cambiamenti ...
Forse più SuperUser di Stack Overflow imho.
#3
  0
ICT1901
2014-01-11 23:49:06 UTC
view on stackexchange narkive permalink

Aggiungendo le risposte qui (non so ancora come aggiungere un collegamento a un commento) - se desideri farlo una volta, allora gli script di shell sarebbero sufficienti. Se desideri farlo su base continuativa, potresti pensare di utilizzare un prodotto: io uso SQLiteManager, ma è costoso, tranne quando è in vendita. Esistono numerosi gestori SQLite gratuiti e basati sul Web. Queste app (come SQLManager) dovrebbero avere la possibilità di ordinare in base a qualsiasi colonna. Lo trovo molto utile, non solo per i contatti, ma per qualsiasi database SQLite. Qui è un esempio di un'estensione SQLite per Firefox.

Per riferimento, se desideri vedere i database SQLite utilizzati dalle app, trova l'app nel Finder (~ / Music / iTunes / Mobile \ Applicazioni, copialo sul desktop. Cambia il suffisso in zip e fai doppio clic. Fai attenzione. Fai clic tenendo premuto il tasto Ctrl sul file .app e, se allo sviluppatore non dispiace, il file sqlite sarà al livello superiore . Utilizzo questa funzione per testare le mie app quando vengono pubblicate o quando cambia il sistema operativo.

Se scegli di rimanere con gli script, forse qualcun altro può fornire le specifiche, ma credo che potresti creare un script che non solo ha copiato i contatti - suggerisco - di sola lettura - ma poi li ha incollati in Numbers o equivalenti. Quindi, avresti anche la possibilità di ordinare per colonna.

#4
  0
salami
2016-03-01 12:25:32 UTC
view on stackexchange narkive permalink

Se desideri solo un modo rapido per visualizzare i contatti ordinati per data di creazione, ci sono alcune app che lo fanno.Ad esempio, https://itunes.apple.com/tc/app/recent-contacts/id541831736?mt=8.

#5
  0
user320794
2019-02-12 04:03:55 UTC
view on stackexchange narkive permalink

Prova qualcosa del genere se desideri ordinare per Data di creazione e vedere la data:

  1. Apri Terminale
  2. Accedi a AddressBook-v22.abcddb
  3. Sqlite3 AddressBook-v22.abcddb "seleziona datetime (ZCREATIONDATE, 'unixepoch'), ZFirstName, ZLastName da ZABCDRECORD order by ZCREATIONDATE"


Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...