Wie lässt sich eine Mac App debuggen, welche vom Finder gestartet wurde?

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Wie lässt sich eine Mac App debuggen, welche vom Finder gestartet wurde?

    Ich habe eine Mac (Document Based) App, welche NSPanels als Inspector Windows verwendet. Die Positionen der NSPanels werden beim Beenden der App gespeichert und beim erneuten Starten wieder entsprechend gesetzt, so dass die Inspector Windows wieder an der Stelle erscheinen, an der sie vorher waren.

    Der Code zum Speichern der Position(en) beim Beenden und das Setzen beim Start funktioniert soweit wunderbar, wenn ich die App aus Xcode heraus starte.

    Sobald ich jedoch einen Release Build der App erstelle und die App mit einem zu öffnendem Dokument über den Finder gestartet wird, befinden sich alle Inspector Windows/NSPanel an der gleichen Position. ?(

    Mir ist aktuell nicht ganz klar, warum dies nur passiert, wenn die App mit einem Dokument über den Finder gestartet wird. Selbst mit dem gleichen Dokument als Argument über Xcode gestartet tritt dieses Problem nicht auf.

    Ich habe jetzt mal Log Ausgaben eingebaut, um zu sehen, welche Position die einzelnen NSPanel erhalten. Funktioniert aus Xcode gestartet natürlich alles wunderbar und die ausgegebenen Werte passen alle.

    Wie kann ich mir jedoch diese Ausgaben anschauen, wenn die App über den Finder gestartet wird? Früher ging dies mal in der Konsole App, aber mit macOS 10.12 scheint dies nicht mehr zu funktionieren. Beim Anklicken von system.log auf der linken Seite in der Konsole App steht rechts nur "Datei konnte nicht gelesen werden.". ?(

    Hat jemand einen Tipp, wie ich die App, wenn diese aus dem Finder gestartet wird, in Xcode debuggen kann, oder wie ich die Log Ausgaben der App sehen kann, wenn diese über den Finder gestartet wurde?
  • MyMattes schrieb:

    Bin gerade nicht am Mac, aber kann es sein, dass die Konsole (inzwischen) dafür einen Admin-User erfordert? Kommt mir zumindest bekannt vor...

    Mattes

    Stimmt, ohne Admin User/Rechte zeigt die Konsole App nichts mehr an. Da hätte Apple dann allerdings, wie in den Systemeinstellungen, eine Möglichkeit zum Abfragen/Aktivieren von Admin Rechten einbauen können. ;)
  • gritsch schrieb:

    Logge doch einfach mal wann das dokument geöffnet wird vom document-handler und wann du die fensterpositionen setzt.
    Warum machst du das aber manuell? Das sollte doch eigentlich automatisch funktionieren wenn du dem fenster einen userdefaults-save-name gibts.

    Da ich nicht nur die Position, sondern noch weitere Infos zum Inspector speichere, war es einfacher dies alles in einem Rutsch und manuell zu erledigen.

    Ich habe jetzt mal, in dem Window Controller shouldCascadeWindows auf NO gesetzt. Jetzt funktioniert es ohne Probleme.

    Interessant und seltsam ist jedoch, dass dies aus Xcode gestartet alles wunderbar funktioniert hat und nur dann Probleme bereitet, wenn die App über den Finder mit einem zu öffnendem Dokument gestartet wird. ?(

    Aber wer weiß schon, was Apple da wieder verzapft hat.