Wie kann ich Spotlight anweisen, meine .dSYM-Bundles zu indizieren?
Heute habe ich zum ersten Mal versucht - und es ist mir nicht gelungen - ein Absturzprotokoll auf einem neu gekauften MacBook zu symbolisieren (nennen wir diese Maschine MB1). MB1 wurde mit vorinstalliertem Mac OS X 10.9 ausgeliefert. Ich habe das Problem der fehlgeschlagenen Symbolisierung bis hin zu Spotlight verfolgt, das keine meiner Symbole indiziert.dSYM
Bundles (ohne den Spotlight-Index von Apple)symbolicatecrash
Skript kann das nicht finden.dSYM
Paket, das mit dem Absturzprotokoll übereinstimmt). Ich bin zu meinem Schluss gekommen, weil
mdfind "com_apple_xcode_dsym_uuids == *"
druckt nichts, obwohl ich mehrere habe.xcarchive
Bündel in meinem~/Library/Developer/Xcode/Archives
Ordner, und sie enthalten auf jeden Fall.dSYM
Unterbündel, mit deren UUID ich drucken kanndwarfdump --uuid
. Ich habe auch ein paar.dSYM
Bundles im Build-Ordner meines Projekts (DerivedData
), aber auch keiner von ihnen ist indiziert.
Die kurze und einfache Frage lautet daher: Wie kann ich Spotlight anweisen, meine .dSYM-Bundles zu indizieren?
Für den Fall, dass es keine einfache Antwort auf diese einfache Frage gibt, hier ist, was ich bereits auf MB1 ausprobiert habe:
Überprüfen Sie die Berechtigungen von Dateien und Ordnern in~/Library/Developer/Xcode/Archives
(Sie sind alle OK, 755 für Ordner, 644 für Dateien)Laufmdimport ~/Library/Developer/Xcode/Archives
(hat keine Auswirkung)Fügen Sie unter "Systemeinstellungen> Spotlight> Datenschutz" zuerst das hinzu und entfernen Sie es dann~/Library/Developer/Xcode/Archives
Ordner (hat auch keine Auswirkung)Überprüfen Sie mitmdutil -s /
diese Indizierung ist für das Volume aktiviert (es ist)Löschen Sie den gesamten Index und erstellen Sie ihn neumdutil -E /
(dauert vielleicht 10-15 Minuten, hat aber immer noch keine Wirkung)Um genauer zu gehen: Ich besitze ein älteres MacBook (nennen wir dieses Gerät MB2), das mein Entwicklergerät war, bevor ich auf MB1 umgestiegen bin. Auf MB2 hatte ich nie Probleme mit dem Symbolisieren. MB2 hatte Mac OS X 10.8 installiert, als ich noch aktiv daran arbeitete, aber ich habe kürzlich MB2 auf Mac OS X 10.9 aktualisiert.
Heute läuftmdfind
auf MB2 gibt mir noch viel.dSYM
Bundles, beide aus demArchives
Ordner und aus dem ProjektDerivedData
Ordner erstellen. Dies sind alles alte Dateien aus Mac OS X 10.8 Tagen, aber anscheinend behält Spotlight den Index für alle Betriebssystem-Upgrades bei. Ich dachte, es wäre interessant zu sehen, wie sich Spotlight verhält, wenn neue Dateien erstellt werden. Deshalb habe ich Folgendes getan:
mdfind
. Dies findet das Zwischenprodukt.dSYM
Bündel in derDerivedData
Ordner erstellen.Löschen Sie das Zwischenprodukt.dSYM
bündeln und rennenmdfind
nochmal. Diesmal keine Ergebnisse, d. H.dSYM
Bündel in derArchives
Ordner wird NICHT gefunden!Machen Sie eine Kopie der.xcarchive
in Schritt 1 erstelltes Bundle und platzieren Sie die Kopie im Stammverzeichnis des Benutzer-Ausgangsverzeichnisses. Laufmdfind
. Dies findet die.dSYM
Unterbündel innerhalb des kopierten.xcarchive
bündeln!An dieser Stelle bin ich zu dem Schluss gekommen, dass weil~/Library
Dies ist ein versteckter Ordner, der Spotlight daran hindert, Inhalte darin zu indizieren. Dies kann einfach durch Erstellen einer regulären Datei bestätigt werden~/Library
und danach suchen (keine Treffer), dann die Datei außerhalb von verschieben~/Library
und erneut suchen (1 Treffer). Leider fällt diese Theorie aus zwei Gründen flach auf die Nase:
~/Library
wurde bereits in Mac OS X-Versionen vor 10.9 ausgeblendet, dies verhinderte jedoch nie die Indizierung von Spotlight.dSYM
DateienDas "versteckte" Flag ist nicht alles, was Spotlight davon abhält, Inhalte zu indizieren~/Library
: Wenn ich den Ordner mit einblendechflags nohidden ~/Library
macht die reguläre Datei nicht für Spotlight sichtbar.Zurück zu MB1: Ich habe versucht, Schritt 3 von oben zu wiederholen, d. H. Eine Kopie von zu erstellen.xcarchive
bündeln Sie im Stammverzeichnis des Basisverzeichnisses des Benutzers und führen Sie dann ausmdfind
. Überraschenderweise unterscheidet sich das Ergebnis auf MB1 von MB2:mdfind
findet noch keine.dSYM
Bündel, was auch immer!
An dieser Stelle gebe ich auf und hoffe auf Ihre Hilfe. Mein Fazit ist, dass Mac OS X 10.9 irgendwie für meine Probleme verantwortlich ist, aber für mein Leben kann ich nicht herausfinden, warum dies so ist. Falls es hilft, hier ein paar zusätzliche Konfigurationsdetails:
MB1: Xcode 5.0.2 und Xcode 4.6 sind installiert, 5.0.2 ist die Standardeinstellung (eingestellt mitxcode-select
). Ebenfalls installiert ist Homebrew. Das System ist eine Neuinstallation von Mac OS X 10.9.MB2: Xcode 4.5, 4.6 und 5.0 sind installiert, 4.6 ist die Standardeinstellung. Ebenfalls installiert ist MacPorts. Das System ist eine Upgrade-Installation von Mac OS X 10.9 (zuvor installiert).