web-dev-qa-db-ja.com

通知センターからアプリケーションを削除する

ちょっと私は小さなCocoaアプリケーションを作成し、Mountain Lionで新しい通知センターAPIを使用して遊んでいました。ただし、私のアプリは現在、通知センターの設定、カレンダー、メッセージなどと一緒に存在しています。

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

20
robahl

私は同じ船で行き詰まりました。

登録したアプリケーションを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_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_で、2番目の列はアプリケーションのbundleidです。 bundleidに基づいてアプリケーションを見つけます。その後、

_delete from app_info where app_id = <app_id>
_

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

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

複雑でない方法を知っている人がいたら、私はすべて耳にします。

31
SeafoodBuffet

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

7
Matt

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

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

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

4
Puffin

アンインストール後にBetterTouchToolが通知センターから消えないという問題がありました。残念ながら、ここで述べた方法は私にはうまくいきませんでしたが、最終的にはそれを理解しました。

これをHigh Sierraで動作させるのに問題がある人のために:

  1. ターミナルで、NotificationCenterフォルダーに移動します。

    cd $(getconf DARWIN_USER_DIR)/com.Apple.notificationcenter/
    
  2. pwdを使用してパスを取得し、クリップボードにコピーします(/var/folders/c3/289nmdsd2cz68yd5p47k553w0000gn/0/com.Apple.notificationcenterのようになります)

    pwd
    
  3. Finderで、フォルダー(cmd + shift + g)に移動してパスを貼り付けます
  4. Dbファイルを含むフォルダーを見つけ、フォルダー全体をゴミ箱にドラッグします(「db2」という名前のフォルダーは1つしかありませんでした)。
  5. 空のごみ箱! (これは非常に重要で、それなしでは私のマシンでは動作しませんでした)
  6. ログアウトして再度ログインする

よりエレガントな方法があるかもしれませんが、これは私にとってはうまくいきました。何らかの理由で、データベースはapplication_idがdb-table(High Sierraではapp_idではなくappと呼ばれます)にまだ存在する状態で再構築されますが、エントリは通知センター。

1
codejunky

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

1
Ed Burke

通知を削除しようとしましたが、私の場合は正確にウェブサイト(9to5mac)でした。システム環境設定で確認できます。通知を無効に設定しましたが、通知を受け取り続けました。ようやくわかりました。 Webサイトの場合は、Safariに移動してから、Safariの設定| Webサイト、次に通知、Webサイトを検索し、それを[拒否]に設定するか、完全に削除します。ここで9to5macを削除しました。削除すると、一般的な通知センターからも削除されました。しかし、少なくとも方法があります。

また、私の検索から、通知DBファイルをsqliteブラウザーで開き、Web通知「アプリ」が見つからなかったため、代わりにSafariで削除/無効にする必要があります。

0
user2378432

ユーザー通知で遊んでいたプロジェクトのコードを変更して呼び出します

[[NSUserNotificationCenter defaultUserNotificationCenter] removeAllDeliveredNotifications];

アプリのデリゲートのメソッドから-applicationDidFinishLaunching:。これにより、ユーザー通知センターからすべてのユーザー通知が削除されます。

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

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

0

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

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

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

0
David V