21

小さなココア アプリケーションを作成し、Mountain Lion で新しい Notification Center API を使用して遊んでいました。ただし、私のアプリは、カレンダー、メッセージなどとともに通知センターの設定に表示されるようになりました。

遊んでいたのは私だけだったので、今すぐリストから消したいのですが、削除する方法が見つからず、いくつかのことを試したり、ドラッグしたり、alt + 右クリックしたりしました。そのリストにデータを入力する(おそらく)plistがどこにあるか知っている人はいますか?

4

11 に答える 11

31

私は同じ船に閉じ込められました。

一度登録したアプリケーションを Notification Center からパージすることが文書化されたステップだとは思いませんが、それを行うためのセットアップがいくつかあることは明らかです。これが私が見つけたものです。このデータは plist ではなく、sqlite データベースに保存されます。

見てみると~/Library/Application Support/NotificationCenter/<id> (私の場合、NotificationCenter の下に 1 つのディレクトリしかありませんでした)、ディレクトリの下に<id>.dbファイルが表示されます。

編集者注: Hofi、macOS 10.10 以降、 SQLite データベースはシェル コマンドによって返されたディレクトリにあり
$(getconf DARWIN_USER_DIR)com.apple.notificationcenter/db、名前はdb.

内部を調べてみるとapp_infoapp_sourcepresented_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アプリケーションの です。2 番目の列はアプリの bundleid です。bundleid に基づいてアプリケーションを見つけます。次に、

delete from app_info where app_id = <app_id>

は、上記の select コマンドを使用して見つけた正しい app_id です。

イライラしたのは、これを行った後、すべてが NotificationCenter に残っていたことです (センターとシステム設定の両方)。変更が有効になるのを確認するには、ログアウトしてから再度ログインする必要がありましたが、幸いなことに、複数のテスト アプリがなくなりました ;-)

より複雑でない方法を誰かが知っていれば、私はすべて耳にします。

于 2012-08-25T11:48:44.887 に答える
7

アプリケーションを削除し(ゴミ箱も空にする必要がある場合があります)、ログアウトして再度ログインすると、リストから削除されます。

于 2012-11-07T17:19:19.353 に答える
5

次の、おそらく手荒なアプローチは、私がこの混乱に陥ったときにうまくいくようです。AppID などの変更を回避します。少なくとも。

  1. XCodeを終了
  2. rm -rf ~/Library/Developer/Xcode/DerivedData/*
  3. killall usernoted
  4. killall NotificationCenter
  5. rm ~/Library/Application Support/NotificationCenter/*
  6. システム環境設定→通知を開きます(これにより、すべてが再起動されるようです)

この方法では、再起動/ログアウトは必要ありません。

于 2013-11-08T14:52:18.330 に答える
2

NotificationCenter フォルダー内のファイルの名前を変更しただけで、再起動しました。デフォルトのアプリだけが入力された新しいファイルが作成されました。

于 2012-09-23T16:17:35.013 に答える
0
  1. ファインダーに移動
  2. 「この Mac」タブで Macintosh HD を検索します。
  3. アプリケーションをクリックします
  4. Shift + コマンド + G を押します
  5. ~/library と入力します
  6. アプリケーションサポートをクリック
  7. 通知センターをクリック
  8. そこにある唯一のファイルをゴミ箱にドラッグします
  9. 進行中のアプリをすべて終了する
  10. 空のごみ箱
  11. 再起動

タダー!個人的な経験に基づいて、アプリケーションは通知センターから完全に削除されました。

于 2014-08-09T22:08:32.967 に答える
0

これは Xcode から簡単に実行できます。

を開き、上部のタブをOrganizer選択します。Projects左側にすべてのアプリケーションのリストが表示されます。削除するアプリケーションについては、左側のメニューから選択Delete...し、を選択しますDerived Data

これにより、通知センターのユーザー設定と通知自体が引き続き保持されます。

于 2012-09-07T14:04:07.527 に答える
0

macOS Catalina の場合、db へのパスはlsof -p $(ps aux | grep -m1 usernoted | awk '{ print $2 }')| awk '{ print $NF }' | grep 'db2/db$' | xargs dirname

于 2020-10-09T16:03:32.373 に答える