Remove an application from Notification Center
Asked Answered
W

12

23

I was playing around with making a small cocoa application and using the new Notification Center API in Mountain Lion.

However my app is now present in the notification center settings, together with Calendar, Messages and so on.

As it was just me playing around, I want it to disappear from the list now, but I cannot find anyway to remove it.

I tried several things, dragging it out, holding alt + Right Click and so on.

Where could the (probably a) plist that populates that list be located?

Willywillynilly answered 16/8, 2012 at 18:20 Comment(0)
L
33

While I don't believe purging applications from Notification Center that have once registered is a documented step, there's clearly some stuff setup to do that.

Here's what I found out:

This data isn't stored in a plist but rather a sqlite database.

If you look into ~/Library/Application Support/NotificationCenter/<id> (in my case, I only had one directory under NotificationCenter), you'll see an <id>.db file under the directory.*

Poking inside, I see tables like app_info, app_source, presented_notifications, etc. Furthermore, the schema includes a clean-up trigger that looks like this:

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;

Using a sqlite3 client, if you do a

select * from app_info;

the first column is the app_id of your application, the second column is your app's bundleid. Find your application based on the bundleid. Then do a

delete from app_info where app_id = <app_id>

where <app_id> is the correct app_id you found using your select command above.

After doing this, everything stayed around in Notification Center (both the center and System Preferences). I had to logout and log back in to see the changes take effect, but luckily, my multiple test apps are now gone.


*:

  • Hofi points out that since macOS 10.10, said SQLite database can be found in the directory returned by shell command: $(getconf DARWIN_USER_DIR)com.apple.notificationcenter/db named just db.

  • jbg notes that as of macOS Monterey (12.x), the directory path is now: $(getconf DARWIN_USER_DIR)com.apple.notificationcenter/db2, and the db database's app_info table has been renamed to app.

Lamelliform answered 25/8, 2012 at 11:48 Comment(0)
E
16

Highlight the app in the list and hit fn+backspace or del/delete if you have that on your keyboard.

Erie answered 17/5, 2020 at 21:0 Comment(0)
T
7

If you delete the application (might need to empty the trash as well) and log out and back in, it gets removed from the list.

Trela answered 7/11, 2012 at 17:19 Comment(0)
P
5

The following, perhaps heavy-handed approach seems to work for me when I get into this mess. It avoids changing AppID/etc. at least.

  1. Quit XCode
  2. rm -rf ~/Library/Developer/Xcode/DerivedData/*
  3. killall usernoted
  4. killall NotificationCenter
  5. rm ~/Library/Application Support/NotificationCenter/*
  6. Open System Preferences → Notifications (this seems to restart everything)

Reboot/log out is not required in this method.

Prado answered 8/11, 2013 at 14:52 Comment(0)
S
5

I had trouble with BetterTouchTool not disappearing from the Notification Center after uninstall. Unfortunately, the methods mentioned here didn't work for me but I figured it out eventually.

For anybody having trouble getting this to work under High Sierra:

  1. In terminal, navigate to NotificationCenter folder:

    cd $(getconf DARWIN_USER_DIR)/com.apple.notificationcenter/
    
  2. get path using pwd and copy to clipboard (should be something like /var/folders/c3/289nmdsd2cz68yd5p47k553w0000gn/0/com.apple.notificationcenter)

    pwd
    
  3. In finder, go to folder (cmd+shift+g) and paste path
  4. Find the folder containing the db file and drag the entire folder to the trash (I had only one folder named "db2")
  5. Empty Trash! (This is very important, didn't work on my machine without it)
  6. Log Out and In again

There might be a more elegant way but this worked for me. Note that for some reason, the Database gets rebuilt with the application_id still present in the db-table (which is called app instead of app_id on High Sierra, btw), however the entry disappeared from the notification center.

Snowfall answered 10/8, 2018 at 10:33 Comment(0)
A
2

I simply renamed the file in the NotificationCenter folder, then rebooted. A new file was created which was populated with just the default apps.

Assumed answered 23/9, 2012 at 16:17 Comment(0)
S
1

For macOS Catalina, the path to the db can be found with lsof -p $(ps aux | grep -m1 usernoted | awk '{ print $2 }')| awk '{ print $NF }' | grep 'db2/db$' | xargs dirname

Sesquicentennial answered 9/10, 2020 at 16:3 Comment(0)
O
0

Change the code in the project which you were playing around with user notifications in to call

[[NSUserNotificationCenter defaultUserNotificationCenter] removeAllDeliveredNotifications];

from your app delegate's method -applicationDidFinishLaunching:. This will remove all user notifications from the user notification center.

Odometer answered 24/8, 2012 at 18:47 Comment(0)
I
0

You can do this easily from Xcode.

Open Organizer, and select the Projects tab at the top. You will see a list of all your applications on the left side. For any application you want to remove, select it from the left-hand menu and choose Delete... for the Derived Data.

This still retains any user settings in Notification Center, as well as the notifications themselves.

Illusionism answered 7/9, 2012 at 14:4 Comment(0)
M
0
  1. Go to Finder
  2. Search Macintosh HD under the tab "This Mac"
  3. Click Applications
  4. Press Shift + Command + G
  5. Type in ~/library
  6. Click Application Support
  7. Click Notification Center
  8. Drag the only file that's there to the Trash
  9. Quit all on going apps
  10. Empty Trash
  11. Restart

The application has been removed from your Notifications Center permanently based on personal experience.

Mangrum answered 9/8, 2014 at 22:8 Comment(0)
S
0

I was trying to remove a notification, but in my case it was for a website (9to5mac) to be exact. I could SEE it in System Preferences | Notifications and set it to be disabled, but I continued to get notifications. I finally figured it out. For websites you have to go into Safari, then Safari Preferences | Websites, then Notifications, then find the website and either set it to Deny or just remove it altogether. I removed 9to5mac here and once I did, it was gone from the general Notification Center as well, what a pita! but at least there is a way.

Also from my searching I too opened the notification DB file with a sqlite browser and my web notification "app" was not to be found, so you have to delete/disable it in Safari instead.

Slovakia answered 25/8, 2017 at 15:9 Comment(0)
S
0

I had 3, I don't think they were apps but site notifications.

I had to clear history and extensions from safari and chrome; they were gone from the notification center.

Seise answered 30/11, 2023 at 2:37 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.