Spotify automatisches Startgeheimnis [Duplikat]

Beim Versuch, den Start von Spotify zur Anmeldezeit loszuwerden, habe ich ein interessantes Verhalten festgestellt: Während seine Plists an keinem der bekannten Speicherorte wie Library/LaunchAgents und Library/LaunchDaemons vorhanden sind, ist es auch im Dock nicht auf Open at Login eingestellt oder beim Abmelden schafft es es trotzdem, irgendwie zu starten.

Ich habe einen neuen Testbenutzer erstellt, die App nur einmal gestartet, wurde mit einer Anmeldeaufforderung begrüßt, die App geschlossen und entschieden, dass sie seitdem starten würde. Ich habe versucht, den gesamten Inhalt des Home-Ordners des Benutzers im Terminal zu löschen, während ich als anderer Benutzer ausgeführt wurde (rm -rf /users/testuser/*), aber Spotify würde trotzdem starten.

Frage mich, wie sie das machen? Es ist ziemlich einfach, dies zu überprüfen, indem Sie die App herunterladen und ausführen, Sie müssen nicht einmal ein Konto erstellen.

Der Sinn der Frage besteht darin, den Mechanismus zu verstehen, anstatt ihn tatsächlich am Öffnen zu hindern (es gibt einen Schalter in der App).

Eine Idee, die mir gerade in den Sinn gekommen ist, ist, fs_usage|grep otify auszuführen, während ich diesen Schalter verwende, aber ich kann mich gerade nicht anmelden und kann nicht auf diesen Schalter zugreifen.
Können Sie uns sagen, welcher Mac und welches OSX
OSX 10.11.6, Mac Pro Anfang 2008

Antworten (1)

Heutzutage können viele Funktionen, wie Anmeldeobjekte, Erweiterungen/Kexte, LaunchAgents oder andere Helfer, in das Anwendungspaket gepackt werden.

Wenn Sie sich den Inhalt der Spotify.app genau ansehen, indem Sie mit der rechten Maustaste oder mit der rechten Maustaste darauf klicken und „Paketinhalt anzeigen“ auswählen, finden Sie einen „Library“-Ordner, der im Inhaltsordner enthalten ist. Darin befindet sich ein LoginItems-Ordner, der das Anmeldeobjekt enthält. /Applications/Spotify.app/Contents/Library/LoginItems/StartUpHelper.app/Contents/MacOS/StartUpHelper

Dieser „StartUpHelper“ startet Spotify bei der Anmeldung. Dies scheint das Standardverhalten der Anwendung zu sein.

Sie schrieben:

Andernfalls würde es für jeden neuen Benutzer gestartet werden, der dem System hinzugefügt wird.

Ich habe sicherlich gesehen, wie Spotify automatisch bei einem Benutzer gestartet wird, der nach der Installation erstellt wurde, sich von dem Benutzer abgemeldet hat, der das neue Konto erstellt hat, und das neue Benutzerkonto über den Anmeldebildschirm eingerichtet hat (alternativ waren zwei Neustarts erforderlich, damit Spotify gestartet werden kann in das neue Benutzerkonto einloggen).
Nur als Spotify nach dem Erstellen des Benutzers installiert wurde, wurde es beim Anmelden nicht gestartet.

Ein Test, um zu erklären, warum einige Benutzer den automatischen Start von Spotify bei der Anmeldung nicht sehen:

Ich habe einen neuen Benutzer erstellt und eingerichtet, bevor Spotify auf einem anderen Benutzerkonto installiert wurde, und nach der Installation von Spotify (wieder in einem anderen Benutzerkonto) mehrere Abmeldungen/Anmeldungen und Neustarts versucht, um sicherzustellen, dass es nicht automatisch gestartet wird Login für diesen neuen Benutzer.
Ich habe auch bemerkt, dass das DARWIN USER DIRECTORY des Benutzers den folgenden Befehl ausführt ...
getconf DARWIN_USER_DIR

Ich hatte auch einen Benutzer, für den Spotify jedes Mal automatisch bei der Anmeldung gestartet wurde. Wieder notierte ich mir das DARWIN USER DIRECTORY des Benutzers.
Als ich mich bei diesem letztgenannten Benutzer anmeldete, beendete ich Spotify und löschte...
com.apple.LaunchServices-231-v2.csstore
...aus dem Darwin-Benutzerverzeichnis.
Dann habe ich dieselbe Datei aus dem Darwin-Benutzerverzeichnis des anderen Benutzers (für den Spotify bei der Anmeldung nicht automatisch gestartet wurde) in das Verzeichnis dieses Benutzers kopiert (im Finder, um sicherzustellen, dass sich der Eigentümer der Datei ebenfalls ändert).

Dann habe ich mich abgemeldet und mehrmals bei dem Benutzer neu gestartet, für den Spotify automatisch gestartet hat, aber das Verhalten hat aufgehört und Spotify hat den Start unterlassen.

PS. Für weitere ausführliche Informationen zu Anmeldeelementen innerhalb eines Anwendungspakets empfehle ich, sich für ein kostenloses Entwicklerkonto anzumelden und sich mit (einem Teil) der Dokumentation zum Anwendungsdesign vertraut zu machen (Sie müssen sich jedoch nicht anmelden, nur um lesen Sie die Dokumentation).

Sicher, aber wie eng man das Bundle auch packt, erklärt nicht, wie die App von alleine starten soll. Irgendetwas muss damit anfangen.
@ЗахарJoe Ich weiß nicht, was du mit "wie fest du das Bündel packst" meinst. Die Einstellung, die Sie in der App festlegen, startet sie entweder oder nicht. Der StartUpHelper startet es dann. Haben Sie das Dokument gelesen, das ich auf der Entwicklerseite verlinkt habe?
Ja, ich habe es gelesen. Ein Teil davon verweist auf das Öffnen von Anwendungen als Teil einer Arbeit, z. B. beim Öffnen eines Dokuments, und dann gibt es einen Verweis auf Info.plist, das angeblich den Start einer Hilfs-App steuert - es gibt keine Zeichenfolgen, auf die sie im Spotify-Helfer verweisen die Info.plist der App. Außerdem sehe ich nirgendwo, wie eine plist, die systemweit in einer Hilfs-App platziert ist, "wissen" würde, ob sie für einen bestimmten Benutzer starten sollte, und genau das passiert. Andernfalls würde es für jeden neuen Benutzer gestartet werden, der dem System hinzugefügt wird.
Ich vermute , die App muss sich zuerst bei Launch Services registrieren (dh mindestens einmal starten) und möglicherweise das Quarantäneattribut entfernen, bevor sie ihr Standardverhalten beim Starten bei der Anmeldung zeigen kann.
Würde es nicht einfach in den Anmeldeobjekten des Benutzers in den Systemeinstellungen aufgeführt werden?
Nein, die im Anwendungspaket selbst integrierten LoginItems sind nicht erforderlich, obwohl dies für den Benutzer in den Systemeinstellungen transparenter (und bequemer) wäre.
In Ordnung. Ich suche nach einer Antwort, die mich auf eine Datei verweist, die Spotify mitteilt, welcher Benutzer die App automatisch gestartet hat und welche nicht (seine Position im Dateisystem) und die Erklärung dieser Autostart-Methode hier, wahrscheinlich mit a Verweis auf einen bestimmten Punkt in der Dokumentationsliteratur, der alles zusammenhält.
Zur Unterstützung dessen, was ich gesagt habe: Gehen Sie zu Ihrem $TMPDIR und entfernen Sie Ihre Launch Services-Datenbank in Ihrem Testvolumen ( nicht Produktionsvolumen): open $TMPDIR/../0. Dort (eingeloggt bei einem Benutzer, bei dem Spotify beim Anmelden automatisch gestartet wird) habe ich gelöscht com.apple.LaunchServices-231-v2.csstore(ich vermute, 231 bezieht sich auf diesen Benutzer 501, da es mehr csstore-Dateien geben sollte, die ich alle gelöscht habe, aber nur diese nach der Anmeldung zurückgegeben wurde wieder rein und erneut testen). Ich habe auch die Spotify-Benutzerdateien in der Bibliothek dieses Benutzers gelöscht: in Anwendungsunterstützung, Caches und Einstellungen. Spotify wurde bei der Anmeldung nicht gestartet.
Nebenbei bemerkt: Da das Löschen der in meinem obigen Kommentar erwähnten Datei für den nächsten Start neu erstellt wird, besteht ein dauerhafterer und richtiger Weg darin, Spotify von Launch Services abzumelden: (wobei Ihnen die Datei(en) nicht angezeigt werden /System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -u /Applications/Spotify.app) im Dateisystem)
In meinem Dateisystem gibt es nirgendwo eine com.apple.LaunchServices*-Datei. Ich glaube nicht, dass LaunchServices das tut, was Sie denken. Selbst in der von Ihnen verlinkten Dokumentation wird das automatische Starten einer App nicht erwähnt. Gerade gestartet, aber in einem anderen Zusammenhang. Hier ist ein Artikel, der es in einer für Menschen besser lesbaren Form erklärt: eclecticlight.co/2017/08/11/… Zusammenfassend können Sie Ihre Hilfs-App registrieren, um eine andere App zu öffnen, aber es wird nicht erklärt, wie die Hilfs-App gestartet wird zunächst automatisch auf.
Das Abmelden einer App bei LaunchServices ist in jeder Hinsicht gleichbedeutend mit dem Löschen dieser App aus /Applications.
„Es gibt nirgendwo in meinem Dateisystem eine com.apple.LaunchServices*-Datei.“ Was bekommst du dafür ls -al $TMPDIR/../0 | grep com.apple.LaunchServices?
"...es erklärt nicht, wie die Helfer-App überhaupt automatisch gestartet wird." Es befindet sich in "LoginItems". Wenn Sie wissen möchten, wie "LoginItems" im Detail funktionieren, sei es in den Systemeinstellungen oder innerhalb der Anwendung, ich weiß es nicht. Irgendeine API oder andere. Ich codiere weder für Apple noch bin ich ein Entwickler, um APIs, Frameworks und andere zu nennen (obwohl das relevante Framework – Service Management Framework – in dem Link erwähnt wurde, den ich in meiner Antwort gepostet hatte).
"Das Abmelden einer App bei LaunchServices ist in jeder Hinsicht das Äquivalent zum Löschen dieser App aus /Applications." Es erklärt Ihre Frage, warum Spotify nicht für andere Benutzer gestartet wurde, die es noch nicht gestartet hatten, aber nach dem einmaligen Öffnen automatisch gestartet wurden. Ich weiß nicht, was es noch zu sagen gibt, um es klarer zu machen.
Mit etwas Glück kommt jemand anderes mit einer Antwort, die Sie akzeptieren (oder zumindest glauben können;).
@3axap Joe Ich habe meine Antwort mit einem Test aktualisiert. Sind Sie vielleicht bereit zu akzeptieren, das Anmeldeverhalten für verschiedene Benutzer zu erklären?
BIS. Tolle Antwort Kumpel.