我正在一个 OSX 示例应用程序(基于 PushyMac)中测试推送通知。
我有开发推送通知工作 - 我可以发送推送,并且在应用程序打开的情况下,我在应用程序中收到通知就好了。我当时将它们转发到通知中心,以便可以看到它们。
但是,我无法弄清楚当应用程序未运行时通知应该如何出现在通知中心。关闭应用程序后,我发送的通知永远不会出现在通知中心,并且我的应用程序在启动时也不会收到它们。
为了确保我真的收到了通知,我按照此文档打开了 OSX APNS 日志记录:
我不得不为 OS X Lion 更正命令,将 APNS 服务名称更改为简单的“apns” - 所以现在的日志记录命令是:
sudo defaults write /Library/Preferences/com.apple.apsd APSWriteLogs -bool TRUE
sudo defaults write /Library/Preferences/com.apple.apsd APSLogLevel -int 7
sudo killall apsd
之后,在日志中我可以看到系统收到了我的推送通知:
<APSCourier: 0x7fe704a262b0>: Received message for enabled topic 'io.push.desktopsample' with payload '<CFBasicHash 0x7fe704a4e340 [0x7fff73447110]>{type = immutable dict, count = 2,
entries =>
0 : <CFString 0x7fe704a3f690 [0x7fff73447110]>{contents = "aps"} = <CFBasicHash 0x7fe704a4cd50 [0x7fff73447110]>{type = immutable dict, count = 1,
entries =>
0 : <CFString 0x7fe704a3de00 [0x7fff73447110]>{contents = "alert"} = <CFString 0x7fe704a3ff10 [0x7fff73447110]>{contents = "Test Push 8"}
}
1 : <CFString 0x7fe704a4e7a0 [0x7fff73447110]>{contents = "ei"} = <CFString 0x7fe704a50b80 [0x7fff73447110]>{contents = "POly"}
}
'
但正如我所说,通知中心没有任何内容。任何想法为什么通知没有出现?是否只有生产 APNS 推送到达通知中心?