Значок Центра уведомлений 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
Если у кого-то все еще есть эта проблема, и ни один из вышеперечисленных методов не сработал, вот как я ее решил:
- открыто
Notifications
изSystem Preference
(проще всего открытьAlfred
илиspotlight
и введитеNotifications
) - найдите свое приложение и удалите его (нажмите
backspace
/delete
кнопка)
ПРИМЕЧАНИЕ: это может удалить все уведомления.
Самый простой способ, которым мне удалось получить значок, это изменить Идентификатор пакета в вашем проекте. Это работает на OSX 10.10.5 и XCode 7.2
(Как только центр уведомлений примет изменение, вы можете изменить его на свой исходный идентификатор пакета, если у вас уже есть связанный с ним профиль обеспечения)
Я решил проблему, заархивировав свое приложение и добавив копию в папку с приложениями. Когда приложение находится в папке приложения, значок всегда виден, даже если вы запускаете приложение из XCode...
Я использую Xcode 11.5, и у меня была такая же проблема. В моем жестком случае этого было достаточно, чтобы очистить вывод сборки, закрыть и снова открыть проект. Затем выполните новую сборку и дайте ей снова поработать. Икона была там и потом.
Боковое примечание: я поместил значок приложения для каждого размера в assets.xcassets
файл, кроме 1024 x 1024 пикселей. Не знаю, актуально это или нет. Надеюсь, это поможет.