web-dev-qa-db-fra.com

Supprimer l'application du centre de notification

Hé, je m'amusais à faire une petite application de cacao et à utiliser la nouvelle API Notification Center de Mountain Lion. Cependant, mon application est maintenant présente dans les paramètres du centre de notification, ainsi que dans l'agenda, les messages, etc.

Comme il ne s’agissait que de moi, je veux qu’il disparaisse de la liste, mais je ne parviens pas à le supprimer. J'ai essayé plusieurs choses, en le glissant, en maintenant la touche Alt + droite enfoncée, etc. Est-ce que quelqu'un sait où le répertoire (probablement un) qui remplit cette liste pourrait être situé?

18
Krajsnick

J'étais coincé dans le même bateau.

Bien que je ne croie pas que la purge des applications du Centre de notifications précédemment enregistrées soit une étape documentée, il existe clairement des outils pour le faire. Voici ce que j'ai découvert. Ces données ne sont pas stockées dans un plist mais plutôt dans une base de données sqlite. 

Si vous regardez ~/Library/Application Support/NotificationCenter/<id> (Dans mon cas, je n'avais qu'un seul répertoire sous NotificationCenter), vous verrez un fichier <id>.db sous le répertoire. 

Note de l'éditeur : Hofi indique que depuis macOS 10.10 ladite base de données SQLite se trouve dans le répertoire renvoyé par la commande Shell
$(getconf DARWIN_USER_DIR)com.Apple.notificationcenter/db, nommé db.

À l'intérieur, je vois des tables telles que app_info, app_source, presented_notifications, etc. De plus, le schéma inclut un déclencheur de nettoyage qui ressemble à ceci:

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;

Si vous utilisez un client sqlite3,

select * from app_info;

la première colonne est le app_id de votre application, la deuxième colonne est son bundleid. Trouvez votre application basée sur le bundleid. Alors fais un

delete from app_info where app_id = <app_id>

où est le bon app_id que vous avez trouvé en utilisant la commande select ci-dessus.

Ce qui était frustrant, c’est qu’après cela, tout était resté dans NotificationCenter (le centre et les préférences système). J'ai dû me déconnecter et me reconnecter pour que les modifications prennent effet, mais heureusement, mes multiples applications de test ont maintenant disparu ;-)

Si quelqu'un connaît un chemin moins compliqué, je suis tout ouïe.

31
SeafoodBuffet

Si vous supprimez l'application (vous devrez peut-être aussi vider la corbeille), puis vous vous déconnectez et vous reconnectez, elle est supprimée de la liste.

7
Matt

L’approche suivante, peut-être lourde, semble fonctionner pour moi lorsque je me retrouve dans ce pétrin. Evite de changer AppID/etc au moins;

  1. quitter XCode
  2. rm -rf ~/Library/Developer/Xcode/DerivedData/*
  3. tuer tous les utilisateurs
  4. killall NotificationCenter
  5. rm ~/Bibliothèque/Application Support/NotificationCenter/*
  6. Ouvrez les Préférences Système -> Notifications (cela semble tout redémarrer)

La réinitialisation/déconnexion n'est pas requise dans cette méthode.

4
Puffin

J'ai eu des problèmes avec BetterTouchTool ne disparaissant pas du Notification Center après la désinstallation. Malheureusement, les méthodes mentionnées ici ne m'ont pas fonctionné, mais j'ai fini par comprendre.

Pour ceux qui ont du mal à faire fonctionner cela sous High Sierra:

  1. Dans le terminal, accédez au dossier NotificationCenter:

    cd $(getconf DARWIN_USER_DIR)/com.Apple.notificationcenter/
    
  2. get path en utilisant pwd et copier dans le presse-papier (devrait ressembler à /var/folders/c3/289nmdsd2cz68yd5p47k553w0000gn/0/com.Apple.notificationcenter)

    pwd
    
  3. Dans le Finder, accédez au dossier (cmd + shift + g) et collez le chemin
  4. Recherchez le dossier contenant le fichier db et faites glisser le dossier entier vers la corbeille (Je n'avais qu'un seul dossier nommé "db2")
  5. Poubelle vide! (Ceci est très important, ne fonctionne pas sur ma machine sans elle)
  6. Se déconnecter et se reconnecter

Il y a peut-être un moyen plus élégant mais cela a fonctionné pour moi. Notez que pour une raison quelconque, la base de données est reconstruite avec le application_id toujours présent dans la table de base de données (appelée app au lieu de app_id sur High Sierra btw), cependant l'entrée a disparu du centre de notification.

1
codejunky

J'ai simplement renommé le fichier dans le dossier NotificationCenter, puis redémarré. Un nouveau fichier a été créé. Il contient uniquement les applications par défaut.

1
Ed Burke

J'essayais de supprimer une notification, mais dans mon cas, c'était pour un site Web (9to5mac) pour être exact. Je pourrais le voir dans les Préférences Système | Notifications et définissez-le pour être désactivé, mais j'ai continué à recevoir des notifications. J'ai finalement compris. Pour les sites Web, vous devez accéder à Safari, puis à Safari Préférences | Sites Web, puis Notifications, puis recherchez le site Web et définissez-le sur Refuser ou supprimez-le tout simplement. J'ai enlevé 9to5mac ici et une fois que je l'ai fait, il était également parti du centre de notifications général, quel pita! mais au moins il y a un moyen.

De plus, lors de ma recherche, j'ai également ouvert le fichier de base de données de notification avec un navigateur sqlite. Mon application de notification Web ne se trouvait pas. Vous devez donc le supprimer/désactiver dans Safari.

0
user2378432

Changer le code dans le projet que vous jouiez avec les notifications des utilisateurs pour appeler

[[NSUserNotificationCenter defaultUserNotificationCenter] removeAllDeliveredNotifications];

à partir de la méthode de votre délégué app -applicationDidFinishLaunching:. Cela supprimera toutes les notifications utilisateur du centre de notification utilisateur.

0
Nate Chandler
  1. Aller au Finder
  2. Recherchez Macintosh HD sous l'onglet "Ce Mac"
  3. Cliquez sur Applications
  4. Appuyez sur Maj + Commande + G
  5. Tapez ~/bibliothèque
  6. Cliquez sur Application Support
  7. Cliquez sur Notification Center
  8. Faites glisser le seul fichier présent dans la corbeille
  9. Quitter toutes les applications en cours 
  10. Poubelle vide
  11. Redémarrer

Tadaaa! L'application a été supprimée de manière permanente dans votre centre de notifications en fonction de votre expérience personnelle. 

0
hollaitsmeguesswho

Vous pouvez le faire facilement depuis Xcode.

Ouvrez Organizer et sélectionnez l'onglet Projects en haut. Vous verrez une liste de toutes vos applications à gauche. Pour toute application que vous souhaitez supprimer, sélectionnez-la dans le menu de gauche, puis choisissez Delete... pour le Derived Data.

Cela conserve toujours les paramètres utilisateur dans le Centre de notifications, ainsi que les notifications elles-mêmes.

0
David V