2012-08-16 20 views
16

Hej Grałem około z dokonując niewielkiej aplikacji kakao i przy użyciu nowego centrum powiadomień API w Mountain Lion. Jednak moja aplikacja jest teraz obecna w ustawieniach Centrum powiadomień wraz z Kalendarzem, Wiadomościami i tak dalej.Usuń aplikację z Centrum Powiadamiania

Tak jak ja tylko bawiłem się, chcę, aby zniknął z listy, ale nie mogę go znaleźć, wypróbowałem kilka rzeczy, przeciągnąłem, trzymałem alt + prawy przycisk myszy i tak dalej. Czy ktoś wie, gdzie może znajdować się (prawdopodobnie a) plist, który zapełnia tę listę?

Odpowiedz

30

Utknąłem w tej samej łodzi.

Chociaż nie wierzę, czyszczenie aplikacji z centrum powiadomień, które zostały wpisane do rejestru jest udokumentowany krok, jest wyraźnie niektóre setup rzeczy do zrobienia, że. Oto co odkryłem. Te dane nie są przechowywane w bazie plist, ale raczej sqlite.

Jeśli spojrzysz na ~/Library/Application Support/NotificationCenter/<id> (w moim przypadku miałem tylko jeden katalog pod NotificationCenter), zobaczysz plik <id>.db w katalogu.

Redaktora uwaga: Hofi wskazuje, że od MacOS 10.10 powiedział SQLite bazy danych można znaleźć w katalogu zwracanych przez polecenie powłoki
$(getconf DARWIN_USER_DIR)com.apple.notificationcenter/db, nazwany po prostu db.

Poking wewnątrz, widzę jak app_info tabele, app_source, presented_notifications itp Ponadto schemat zawiera oczyszczenia spust, który wygląda tak:

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; 

Korzystanie z sqlite3 klienta, jeśli nie

select * from app_info; 

pierwsza kolumna jest app_id od aplikacji, druga kolumna jest z aplikacji bundleid. Znajdź swoją aplikację na podstawie pakietu. Następnie wykonaj ustawienie, gdzie znajduje się poprawny identyfikator aplikacji znaleziony za pomocą powyższego polecenia select.

Co było frustrujące było to, że po zrobieniu tego, wszystko wokół mieszkaliśmy w NotificationCenter (zarówno w centrum i Preferencje systemowe). Musiałem się wylogować i zalogować ponownie, aby zmiany zaczęły obowiązywać, ale na szczęście moje aplikacje testowe już się nie pojawiły ;-)

Jeśli ktoś wie o mniej skomplikowanym sposobie, to ja mam tylko uszy.

+6

Możesz 'sudo killall usernoted', aby uniknąć konieczności wylogowywania. –

+7

w dniu 10.10 baza danych została przeniesiona, aby uzyskać lokalizację z terminalu 'cd $ (getconf DARWIN_USER_DIR)/com.apple.notificationcenter/db' – Hofi

+0

Po usunięciu wpis zostaje ponownie zainstalowany po restarcie. – powder366

0

Zmień kod w projekcie którym grały ze zgłoszeń użytkowników w zadzwonić

[[NSUserNotificationCenter defaultUserNotificationCenter] removeAllDeliveredNotifications]; 

od metody swojej aplikacji delegata -applicationDidFinishLaunching:. Spowoduje to usunięcie wszystkich powiadomień użytkownika z centrum powiadomień użytkownika.

+1

Hmm nie można skompilować, jeśli spróbuję użyć klasy SCIUserNotificationCenter, nie ma żadnej. Jednak skompilował się, gdy zmieniłem na NSUserNotificationCenter, ale moja aplikacja pozostaje na liście. removeAllDeliveredNotifications to prawdopodobnie tylko sposób na usunięcie wszelkich bieżących powiadomień. Twoja aplikacja będzie nadal obecna na liście centrum powiadomień. – Krajsnick

+0

edytowane, aby naprawić literówkę - używając niewłaściwego prefiksu w centrum powiadomień użytkownika. –

0

Można to zrobić łatwo z Xcode.

Otwórz Organizer i wybierz kartę Projects u góry. Zobaczysz listę wszystkich aplikacji po lewej stronie. Dla każdej aplikacji, którą chcesz usunąć, wybierz ją z menu po lewej stronie i wybierz Delete... dla Derived Data.

To nadal zachowuje wszelkie ustawienia użytkownika w Centrum powiadomień, a także same powiadomienia.

1

Po prostu zmieniłem nazwę pliku w folderze NotificationCenter, a następnie ponownie uruchomiłem. Utworzono nowy plik, który zawiera tylko domyślne aplikacje.

+0

Jaka była oryginalna nazwa (pełna ścieżka?) Pliku, którego nazwa została zmieniona? Czy to spowoduje zresetowanie wszystkich ustawień preferencji Centrum powiadomień? –

7

Jeśli usuniesz aplikację (może być również konieczne opróżnienie kosza) i wylogujesz się z niej ponownie, zostanie ona usunięta z listy.

+0

To właśnie zrobiłem dla mnie (żadne pliki nie były w '~/Library/Application Support/NotificationCenter'). – theory

3

Poniższe, być może zręczne podejście, wydaje mi się skuteczne, gdy wchodzę w ten bałagan. Unika zmiany przynajmniej identyfikatora AppID/etc;

  1. rzucić Xcode
  2. rm -rf ~/Library/Developer/Xcode/DerivedData/*
  3. killall usernoted
  4. killall NotificationCenter
  5. rm ~/Library/Application Support/NotificationCenter/*
  6. Otwórz Preferencje systemowe -> Powiadomienia (to wydaje się, aby ponownie wszystko)

Restart/wylogowanie nie jest wymagane w tej metodzie.

0
  1. Przejdź do Finder
  2. Search Macintosh HD na karcie "This Mac"
  3. kliknij opcję Aplikacje
  4. Naciśnij Shift + Command + G
  5. typu w ~/Library Application Support
  6. Kliknij
  7. Kliknij Centrum powiadomień
  8. Przeciągnij jedyny plik, który jest tam do kosza
  9. Zamknij wszystkie aplikacje na dzieje
  10. Empty Trash
  11. Uruchom ponownie

Tadaaa! Aplikacja została trwale usunięta do Centrum powiadomień na podstawie osobistych doświadczeń.

0

Próbowałem usunąć powiadomienie, ale w moim przypadku chodziło o dokładność strony internetowej (9to5mac). Mogłem to zobaczyć w Preferencjach systemowych | Powiadomienia i ustawienie wyłączenia, ale nadal otrzymywałem powiadomienia. W końcu to rozgryzłem. W przypadku stron internetowych musisz przejść do Safari, a następnie do preferencji Safari Strony internetowe, a następnie Powiadomienia, następnie znajdź stronę internetową i ustaw ją jako Odmów lub po prostu usuń ją całkowicie. Usunąłem tutaj 9to5mac, a kiedy to zrobiłem, zniknęło też z ogólnego Centrum Powiadomień, co za pita! ale przynajmniej jest jakiś sposób.

Również z moich poszukiwań również otworzyłem plik DB powiadomienia z przeglądarką sqlite i nie znaleziono aplikacji "powiadomień" w Internecie, więc trzeba ją usunąć/wyłączyć w Safari.

Powiązane problemy