Come esportare un’intera conversazione iMessage su Mac
Perché l’app Messaggi non ha un comando di esportazione, i metodi gratuiti che funzionano comunque, come recuperare la cronologia mai sincronizzata e come ottenere un album ancora apribile fra anni.
· 5 min read
L’app Messaggi su macOS non ha un comando Esporta. Non l’ha mai avuto. Cerca questa domanda e i primi risultati sono una discussione del supporto Apple e un post su Reddit, il che dice parecchio su quanto bene le opzioni integrate abbiano risolto la cosa.
Ecco che cosa funziona davvero.
Dove si trova la conversazione
Su un Mac, Messaggi tiene tutto in un database SQLite in ~/Library/Messages/chat.db, con gli allegati in ~/Library/Messages/Attachments/. macOS protegge entrambi: nessuna app può leggerli senza l’accesso completo al disco nelle Impostazioni di Sistema, e la cartella è nascosta nel Finder per impostazione predefinita.
Da qui discendono due cose, che spiegano quasi tutta la confusione sull’argomento:
- Qualsiasi strumento che esporti i tuoi messaggi ha bisogno dell’accesso completo al disco. Di per sé non è un campanello d’allarme: è l’unica via che macOS consente. Ciò che conta è che cosa fa lo strumento dopo aver letto il file.
- Il database è un dettaglio implementativo privato di Apple. La sua struttura cambia fra le versioni di macOS senza preavviso. Per questo gli strumenti di esportazione vanno aggiornati, e per questo un album esportato non dovrebbe mai essere nel formato di Apple.
Metodo 1: stampare in PDF (gratuito, integrato, limitato)
- Apri Messaggi, seleziona la conversazione.
- Scorri fino in cima tenendo premuto Comando + Freccia su, finché smette di caricare messaggi più vecchi.
- Archivio › Stampa, poi PDF › Salva come PDF.
Funziona, e per una conversazione breve è la risposta giusta. Due limiti reali: devi caricare l’intera conversazione scorrendo, cosa penosa su anni di cronologia, e un PDF non può contenere video o audio riproducibili.
Metodo 2: interrogare il database da solo (gratuito, tecnico)
Poiché chat.db è un normale file SQLite, puoi interrogarlo direttamente. Concedi prima l’accesso completo al disco al tuo terminale, poi:
sqlite3 ~/Library/Messages/chat.db
Attenzione a tre trappole in cui cade chi lo fa a mano:
- Gli orari non sono tempo Unix. Messaggi salva nanosecondi dal 2001-01-01, quindi ti serve
datetime(message.date/1000000000 + 978307200, 'unixepoch'). textè spesso NULL. I messaggi moderni tengono il contenuto inattributedBody, un typedstream Apple serializzato, non nella semplice colonnatext. Decodificarlo bene è la parte difficile dell’intero problema, e trattare ingenuamente il binario come UTF-16 produce spazzatura che sembra quasi giusta.- Aprilo in sola lettura. Usa
file:...?mode=rocosì una query distratta non potrà mai scrivere nel tuo database di Messaggi in uso.
Se vuoi questa strada fatta bene anziché a mano, imessage-exporter è gratuito, open source e decodifica correttamente il typedstream.
Metodo 3: esportare in un album (quello che quasi tutti vogliono davvero)
Il risultato che la maggior parte cerca è una cartella da tenere: l’intera conversazione, leggibile senza software speciale, con foto e video intatti.
Significa un’esportazione che produca:
- Ogni messaggio di entrambi i lati, in ordine, con gli orari.
- Ogni allegato copiato alla qualità originale, non ridimensionato dentro un documento.
- Un formato che non dipenda dallo strumento che l’ha creato. HTML, JSON e Markdown semplici vanno bene. Un database proprietario no.
In questa categoria ci sono imessage-exporter, iMazing, Decipher TextMessage e Message Album, che ha realizzato questo sito. L’accento particolare di Message Album è proprio sull’ultimo punto: l’esportazione è un sito offline autosufficiente senza framework, CDN, font esterni o server, più un manifest di checksum SHA-256, nella convinzione che ciò che stai conservando non dovrebbe smettere di funzionare perché è sparita una dipendenza.
Recuperare la cronologia mai sincronizzata sul Mac
È il passaggio che quasi tutte le guide saltano, ed è spesso il motivo per cui un’esportazione risulta incompleta.
Il tuo Mac ha solo i messaggi che vi si sono sincronizzati. Se la conversazione è iniziata prima che avessi quel Mac, o se “Messaggi su iCloud” ha scaricato dal disco gli allegati più vecchi, esportare dalla libreria del Mac lascerà fuori delle cose in silenzio.
La soluzione è esportare da un backup di iPhone:
- Collega l’iPhone o l’iPad e apri il Finder.
- Seleziona il dispositivo nella barra laterale.
- Scegli Esegui backup adesso. Sia i backup cifrati sia quelli non cifrati contengono Messaggi. Spunta Codifica backup locale se vuoi anche Salute e gli altri dati protetti.
- Punta il tuo strumento di esportazione a quel backup anziché alla libreria del Mac.
Il backup contiene ciò che c’è sul telefono, che di solito è più di quanto sia arrivato al Mac.
Come capire se un’esportazione è completa
Fai una sola domanda a qualsiasi strumento usi: che cosa fa quando manca qualcosa?
Gli allegati mai scaricati in locale e i contenuti privati di Apple non decodificabili sono entrambi normali. Uno strumento che li segnala come avvisi espliciti ti fa sapere che cosa hai. Uno che li lascia cadere in silenzio ti lascia un album che sembra completo e non lo è, e non te ne accorgerai fino al giorno in cui cercherai una foto precisa.
Controlla anche i conteggi. Se uno strumento ti dice quanti messaggi ha letto dalla sorgente e quanti ne ha scritti in uscita, quei due numeri dovrebbero coincidere, oppure la differenza dovrebbe essere spiegata.
Che farne dell’album dopo
Un album che esiste in un posto solo non è salvato, è in transito. Copialo altrove: un disco esterno, un’altra macchina, o lo spazio cloud che preferisci. Poiché una buona esportazione è una normale cartella di file normali, si tratta solo di copiare una cartella.
Se la tua esportazione include i checksum, tieni il manifest insieme a essa. È l’unica cosa che ti permette di confermare, fra cinque anni, che la copia che stai guardando è intatta.