Значок Центра уведомлений OSX

Я впервые использую API-интерфейсы Центра уведомлений OSX и не могу понять, как сделать так, чтобы значок моего приложения отображался на значке уведомлений.

По умолчанию значок "в вашем приложении нет значка" продолжает появляться:

Вот что я сделал до сих пор

  • Я создал файл icns, который включает версии 512, 256, 128, 32 и 16px
  • перетащил значок в раздел "Значок приложения" в сводке цели
  • Я сделал, чтобы обязательно установить флажок, чтобы скопировать значок в проект
  • раздел plist "Icon file" ссылается на правильное имя иконки (минус.icns)

Есть идеи? Значок не появляется, когда я запускаю приложение через XCode или когда я экспортирую архив.

Я также извлек файл Sparrow.icns из Sparrow.app и попытался использовать этот файл вместо того, который я сделал. Это тоже не сработало.

7 ответов

Решение

Можно заставить Центр уведомлений обновить все значки, удалив файл базы данных Центра уведомлений (~/Library/Application Support/NotificationCenter/SOME_UUID.db) и затем убивает процесс Центра уведомлений (например, из Activity Monitor).

К сожалению, у этого есть побочный эффект удаления вашей истории уведомлений, но это не было большой проблемой для меня.

Я смог решить эту проблему, увеличив номер сборки в разделе Общие для цели сборки.

На самом деле на форумах разработчиков Apple продолжаются дебаты ( ссылка, ссылка для людей с доступом) по этому поводу. Насколько я знаю, в настоящее время нет реального решения, но вы можете попробовать следующее:

  • Измените идентификатор пакета вашего приложения и попробуйте снова. Если вы измените его, очистите свое приложение и вернетесь назад, некоторые люди сообщат об успешном обнаружении их значка.
  • Войдите как другой пользователь. Центр уведомлений кэширования может использоваться для каждого пользователя, поэтому вы можете получать уведомления с соответствующим значком от имени другого пользователя.

Расположение папки было перемещено для OSX 10.10+.

Следующая команда перенесет вас в новое место:

$ cd `getconf DARWIN_USER_DIR`/com.apple.notificationcenter/db               

а потом

$ open .

Я попробовал все вышеперечисленные предложения, но единственное, что сработало для меня в 10.14, это удалить DerivedData:

rm -rf ~/Library/Developer/Xcode/DerivedData

Если у кого-то все еще есть эта проблема, и ни один из вышеперечисленных методов не сработал, вот как я ее решил:

  1. открыто Notifications из System Preference (проще всего открыть Alfred или spotlight и введите Notifications)
  2. найдите свое приложение и удалите его (нажмите backspace/delete кнопка)

ПРИМЕЧАНИЕ: это может удалить все уведомления.

Самый простой способ, которым мне удалось получить значок, это изменить Идентификатор пакета в вашем проекте. Это работает на OSX 10.10.5 и XCode 7.2

(Как только центр уведомлений примет изменение, вы можете изменить его на свой исходный идентификатор пакета, если у вас уже есть связанный с ним профиль обеспечения)

Я решил проблему, заархивировав свое приложение и добавив копию в папку с приложениями. Когда приложение находится в папке приложения, значок всегда виден, даже если вы запускаете приложение из XCode...

Я использую Xcode 11.5, и у меня была такая же проблема. В моем жестком случае этого было достаточно, чтобы очистить вывод сборки, закрыть и снова открыть проект. Затем выполните новую сборку и дайте ей снова поработать. Икона была там и потом.

Боковое примечание: я поместил значок приложения для каждого размера в assets.xcassetsфайл, кроме 1024 x 1024 пикселей. Не знаю, актуально это или нет. Надеюсь, это поможет.

Другие вопросы по тегам