Hey, ich habe mit dem Erstellen einer kleinen Kakaoanwendung herumgespielt und die neue Notification Center API in Mountain Lion verwendet. Meine App ist jedoch jetzt zusammen mit Kalender, Nachrichten usw. in den Einstellungen des Benachrichtigungszentrums vorhanden.
Da ich nur herumgespielt habe, möchte ich, dass es jetzt von der Liste verschwindet, aber ich kann es sowieso nicht finden, es zu entfernen. Ich habe einige Dinge ausprobiert, herausgezogen, Alt + Rechts-Klick gedrückt gehalten und so weiter. Weiß jemand, wo die (wahrscheinlich eine) Liste, die diese Liste enthält, gefunden werden könnte?
Ich war im selben Boot festgefahren.
Ich glaube nicht, dass das Löschen von Anwendungen aus dem Notification Center, die sich einmal registriert haben, ein dokumentierter Schritt ist. Hier ist was ich herausgefunden habe. Diese Daten werden nicht in einer Liste gespeichert, sondern in einer SQLite-Datenbank.
Wenn Sie ~/Library/Application Support/NotificationCenter/<id>
Suchen (in meinem Fall hatte ich nur ein Verzeichnis unter NotificationCenter), wird unter dem Verzeichnis eine <id>.db
-Datei angezeigt.
Anmerkung des Herausgebers : Hofi weist darauf hin, dass seit macOS 10.10 besagte SQLite-Datenbank in dem vom Shell-Befehl zurückgegebenen Verzeichnis zu finden ist$(getconf DARWIN_USER_DIR)com.Apple.notificationcenter/db
, nur db
genannt.
Wenn ich hinein stecke, sehe ich Tabellen wie app_info
, app_source
, presented_notifications
usw. Außerdem enthält das Schema einen Bereinigungsauslöser, der folgendermaßen aussieht:
CREATE TRIGGER app_deleted AFTER DELETE ON app_info
BEGIN
DELETE FROM scheduled_notifications WHERE app_id=old.app_id;
DELETE FROM presented_notifications WHERE app_id=old.app_id;
DELETE FROM presented_alerts WHERE app_id=old.app_id;
DELETE FROM notifications WHERE app_id=old.app_id;
DELETE FROM app_Push WHERE app_id=old.app_id;
DELETE FROM app_loc WHERE app_id=old.app_id;
DELETE FROM app_source WHERE app_id=old.app_id;
END;
Verwenden Sie einen sqlite3-Client, wenn Sie a
select * from app_info;
die erste Spalte ist der app_id
Ihrer Anwendung, die zweite Spalte ist das Bundle Ihrer App. Finden Sie Ihre Anwendung anhand des Bundleins. Dann mache eine
delete from app_info where app_id = <app_id>
wo ist die richtige app_id, die Sie mit Ihrem select-Befehl oben gefunden haben.
Was frustrierend war, war, dass danach alles im NotificationCenter (sowohl in der Mitte als auch in den Systemeinstellungen) angezeigt wurde. Ich musste mich abmelden und wieder einloggen, um die Änderungen wirksam werden zu sehen, aber zum Glück sind meine mehreren Test-Apps jetzt verschwunden ;-)
Wenn jemand einen weniger verschlungenen Weg kennt, bin ich ganz Ohr.
Wenn Sie die Anwendung löschen (möglicherweise müssen Sie auch den Papierkorb leeren) und sich ab- und wieder anmelden, wird sie aus der Liste entfernt.
Der folgende, vielleicht schwerfällige Ansatz scheint für mich zu funktionieren, wenn ich in dieses Chaos gerate. Vermeidet zumindest das Ändern von AppID/etc;
Bei dieser Methode ist kein Neustart/Abmelden erforderlich.
Ich hatte Probleme mit BetterTouchTool, das nach der Deinstallation nicht aus dem Notification Center verschwindet. Leider haben die hier genannten Methoden für mich nicht funktioniert, aber ich habe es letztendlich herausgefunden.
Für alle, die Schwierigkeiten haben, dies unter High Sierra zu erreichen:
Navigieren Sie im Terminal zum NotificationCenter-Ordner:
cd $(getconf DARWIN_USER_DIR)/com.Apple.notificationcenter/
holen Sie sich den Pfad mit pwd und kopieren Sie ihn in die Zwischenablage (sollte etwas wie /var/folders/c3/289nmdsd2cz68yd5p47k553w0000gn/0/com.Apple.notificationcenter sein)
pwd
Es könnte einen eleganteren Weg geben, aber das hat für mich funktioniert. Beachten Sie, dass die Datenbank aus irgendeinem Grund neu erstellt wird, wobei die application_id noch in der db-table (die app
anstelle von app_id
in High Sierra genannt wird) vorhanden ist. btw), der Eintrag ist jedoch aus der Benachrichtigungszentrale verschwunden.
Ich habe die Datei einfach im NotificationCenter-Ordner umbenannt und dann neu gestartet. Es wurde eine neue Datei erstellt, die nur mit den Standard-Apps gefüllt wurde.
Ich habe versucht, eine Benachrichtigung zu entfernen, aber in meinem Fall musste eine Website (9to5mac) genau sein. Ich könnte es in den Systemeinstellungen | sehen Benachrichtigungen und legen Sie fest, dass es deaktiviert ist, aber ich erhielt weiterhin Benachrichtigungen. Ich habe es endlich herausgefunden. Für Websites müssen Sie in Safari gehen, dann in Safari-Einstellungen | Websites, dann Benachrichtigungen, dann finden Sie die Website und setzen Sie sie entweder auf "Ablehnen" oder entfernen Sie sie einfach. Ich habe 9to5mac hier entfernt und als ich das getan habe, war es auch aus dem allgemeinen Benachrichtigungscenter verschwunden, was für eine Pita! aber es gibt zumindest einen weg.
Auch von meiner Suche aus habe ich die Benachrichtigungs-DB-Datei mit einem sqlite-Browser geöffnet, und meine Webbenachrichtigung "app" war nicht zu finden. Daher müssen Sie sie in Safari löschen/deaktivieren.
Ändern Sie den Code in dem Projekt, in dem Sie Benutzerbenachrichtigungen abgelegt haben, um aufzurufen
[[NSUserNotificationCenter defaultUserNotificationCenter] removeAllDeliveredNotifications];
von der Methode Ihres App-Delegaten -applicationDidFinishLaunching:
. Dadurch werden alle Benutzerbenachrichtigungen aus dem Benutzerbenachrichtigungscenter entfernt.
Tadaaa! Die Anwendung wurde aufgrund persönlicher Erfahrungen dauerhaft zu Ihrem Benachrichtigungscenter entfernt.
Sie können dies leicht von Xcode aus tun.
Öffnen Sie Organizer
und wählen Sie oben die Registerkarte Projects
aus. Auf der linken Seite sehen Sie eine Liste aller Anwendungen. Für jede Anwendung, die Sie entfernen möchten, wählen Sie sie im linken Menü aus und wählen Sie Delete...
für den Derived Data
.
Dadurch bleiben alle Benutzereinstellungen im Notification Center sowie die Benachrichtigungen selbst erhalten.