OSX通知中心图标

时间:2012-08-08 02:15:35

标签: macos nsnotificationcenter osx-mountain-lion

我第一次使用OSX的通知中心API,似乎无法弄清楚如何让我的应用程序的图标显示在通知徽章中。

默认情况下,“您的应用没有图标”图标会一直显示:

这是我到目前为止所做的事情

  • 我创建了一个包含512,256,128,32&的icns文件。 16px版本
  • 将图标拖到目标摘要的“应用图标”部分
  • 我确保选中复选框以将图标复制到项目中
  • plist的“图标文件”部分引用正确的图标名称(减去.icns)部分

有什么想法吗?当我通过Xcode运行应用程序或导出存档时,图标不会显示。

我也从Sparrow.app中提取了Sparrow.icns文件并尝试使用那个而不是我制作的文件。这也不起作用。

9 个答案:

答案 0 :(得分:20)

我能够通过在构建目标的“常规”部分中增加内部版本号来解决此问题。

答案 1 :(得分:11)

对于Apple的开发人员论坛(linklink,对于有权访问的人),实际上正在进行辩论。据我所知,目前还没有真正的解决方案,但您可以尝试以下方法:

  • 更改您应用的捆绑包ID,然后重试。如果你改变它,清理你的应用程序,然后改回来,有些人报告他们的图标显示成功。
  • 以其他用户身份登录。缓存通知中心使用的可能是每个用户,因此您可能能够以不同的人身份获取正确图标化的通知。

答案 2 :(得分:11)

您可以通过删除通知中心数据库文件(~/Library/Application Support/NotificationCenter/SOME_UUID.db)强制通知中心刷新所有图标,然后终止通知中心进程(例如,从活动监视器)。

不幸的是,这会产生删除通知历史记录的副作用,但对我来说这不是一个问题。

答案 3 :(得分:4)

已为OSX 10.10 +移动了文件夹位置。

以下命令将您带到新位置:

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

然后

$ open .

答案 4 :(得分:1)

我设法让图标显示的最简单方法是更改​​项目中的Bundle Identifier。这适用于OSX 10.10.5和XCode 7.2

(一旦通知中心接收到更改,您可以将其更改回原始包标识符,如果您已经拥有与之关联的配置文件)

答案 5 :(得分:1)

我通过归档我的应用并将副本添加到我的应用程序文件夹来解决了这个问题。当应用程序位于“应用程序”文件夹中时,即使您从XCode运行应用程序,该图标也始终可见...

答案 6 :(得分:1)

我尝试了所有上述建议,但对我而言,在10.14上唯一起作用的是删除DerivedData:

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

答案 7 :(得分:0)

如果仍然有人遇到此问题,并且以上方法均无效,那么我将通过以下方法解决该问题:

  1. Notifications中打开System Preference(最简单的方法是打开Alfredspotlight并键入Notifications
  2. 找到您的应用并将其删除(按backspace / delete按钮)

注意:这可能会删除所有通知

答案 8 :(得分:0)

我正在使用Xcode 11.5,但我遇到了同样的问题。以我的情况而言,清理构建输出,关闭并重新打开项目就足够了。然后重新构建,然后再次运行。之后便有图标了。

旁注:我已经将assets.xcassets文件中除1024 x 1024像素以外的所有尺寸的应用程序图标放置。不知道这是否相关。希望有帮助。