嘿,我是玩弄制作小可可应用,并使用在山狮新的通知中心API。 但是我的应用程序现在出现在通知中心设置,以及日历,邮件等在一起。
由于这只是我玩弄我希望它从列表现在消失了,但我无法找到无论如何将其删除,试过几件事情,拖出来,拿着ALT +鼠标右键等等。 有谁知道在哪里了(可能是)的plist用于填充该列表可以在什么位置?
嘿,我是玩弄制作小可可应用,并使用在山狮新的通知中心API。 但是我的应用程序现在出现在通知中心设置,以及日历,邮件等在一起。
由于这只是我玩弄我希望它从列表现在消失了,但我无法找到无论如何将其删除,试过几件事情,拖出来,拿着ALT +鼠标右键等等。 有谁知道在哪里了(可能是)的plist用于填充该列表可以在什么位置?
我被困在同一条船上。
虽然我不相信清除从曾经登记是一个记录的步骤通知中心的应用程序,有明确的一些东西的设置做到这一点。 下面是我发现了什么。 该数据不存储在一个plist中,而是一个SQLite数据库。
如果你看看~/Library/Application Support/NotificationCenter/<id>
在我的情况,我只用了通知中心下一个目录),你会看到一个<id>.db
目录下的文件。
编者按 : HOFI指出, 由于MACOS 10.10说SQLite数据库可以通过在shell命令返回的目录中找到
$(getconf DARWIN_USER_DIR)com.apple.notificationcenter/db
,命名只是db
。
里面戳,我看到这样的表app_info
, app_source
, presented_notifications
等。此外,该模式包括清理触发,看起来像这样:
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;
使用sqlite3的客户,如果你做一个
select * from app_info;
第一列是app_id
您的应用程序,第二列是你的应用程序的bundleid。 查找基础上,bundleid您的应用程序。 然后做一个
delete from app_info where app_id = <app_id>
这里是你发现使用上面的SELECT命令正确APP_ID。
什么是令人沮丧的是,这样做后,一切都在通知中心待了(包括中央和系统偏好设置)。 我不得不注销并重新登录才能看到这些更改生效,但幸运的是,我的多个测试应用程序现在都没有了;-)
如果任何人的少令人费解的方式知道,我所有的耳朵。
如果您删除的应用程序(可能需要清空回收站为好),并注销并重新登录的,它会从列表中删除。
下面,也许是严厉的做法似乎为我工作,当我进入这个烂摊子。 它避免了改变的AppID /等。 至少。
rm -rf ~/Library/Developer/Xcode/DerivedData/*
killall usernoted
killall NotificationCenter
rm ~/Library/Application Support/NotificationCenter/*
重启/注销未在此方法所需。
我只是更名的通知中心文件夹中的文件,然后重新启动。 一个新的文件被创建,其用只是默认应用填充。
我曾与BetterTouchTool不卸载后,通知中心消失麻烦。 不幸的是,这里所说的方法,并没有为我工作,但我想它最终会。
对于遇到了麻烦这下高塞拉利昂工作的人:
在终端,导航到通知中心文件夹中:
cd $(getconf DARWIN_USER_DIR)/com.apple.notificationcenter/
使用PWD获得路径复制到剪贴板(应该是这样的/var/folders/c3/289nmdsd2cz68yd5p47k553w0000gn/0/com.apple.notificationcenter)
pwd
有可能是一个更优雅的方式,但是这个工作对我来说。 需要注意的是由于某种原因,该数据库中获取与APPLICATION_ID在db表仍然存在(这被称为重建app
,而不是app_id
在高塞拉利昂,顺便说一句),但该条目从通知中心消失。
您可以从Xcode中很容易地做到这一点。
打开Organizer
,然后选择Projects
顶部标签。 你会看到你在左侧的所有应用程序的列表。 对于要删除,从左侧的菜单中选择它,并选择任何应用程序中Delete...
用于Derived Data
。
这仍保留在通知中心的任何用户的设置,以及通知自己。
更改项目中,你是在调用玩弄用户通知代码
[[NSUserNotificationCenter defaultUserNotificationCenter] removeAllDeliveredNotifications];
从应用程序委托的方法-applicationDidFinishLaunching:
这将从用户通知中心中删除所有用户的通知。
Tadaaa! 该应用程序已被删除您的通知中心永久地根据个人经验。
我试图删除的通知,但对我来说这是一个网站(9to5Mac的)要准确。 我可以在系统偏好看它| 通知并将其设置为禁用,但我继续得到通知。 我终于弄明白了。 对于网站,你必须进入Safari浏览器,然后选择Safari偏好| 网站,然后通知,然后找到网站,将它设置为拒绝或只是删除它完全。 我删除9to5Mac的这里,一旦我做到了,这是从一般的通知中心去为好,什么是皮塔! 但至少有一个办法。
此外,从我的搜索我也有源码浏览器中打开的通知DB文件和我的网站的通知“应用程序”是不被发现,在Safari所以你必须删除/禁用它来代替。