MessageSifter
Letztens beschwerte ich mich ja, dass ich es nicht mehr schaffe, leicht per sqlite3
-Befehl meine Nachrichten aus der iMessage-Datenbank zu exportieren. Irgendwann in den letzten Jahren hat Apple anscheinend angefangen, die Nachrichten lieber als NSAttributedString
zu speichern, statt im Klartext.
Da ich trotzdem gerne weiterhin diverse Informationen, wie zum Beispiel gesendete Links oder Everdell-Ergebnisse exportieren wollte, musste ich mir also schnell eine Applikation bauen, mit der ich die Datenbank öffnen und die NSAttributedStrings
dekodieren kann. Zum Glück konnte mir ChatGPT und das Internet helfen ein paar Zeilen Code zu schreiben, die ich mal bei Github hochgeladen habe, falls jemand ein ähnliches Problem hat.
Einmal kompilieren und dann kann man es wie folgt ausführen:
./MessageSifter "pfad-zur-chat.db" [Anzahl der Nachrichten]
Es werden dann alle Nachrichten, nach Datum abwärts sortiert ausgegeben und können mit grep
oder so weiter durchsucht werden.

Wahrscheinlich sollte man den Code aber anpassen, denn aktuell hängt da noch ein WHERE handle_id = 1
mit drin, das dafür sorgt, dass nur die Nachrichten zu einer bestimmten Person ausgegeben werden. Entweder löscht man das noch raus, oder man sucht in der Datenbank mal nach der passenden ID.
Für den unwahrscheinlichen Fall, dass das irgendwer braucht: Viel Spaß!