来自一台服务器的多个应用程序的 IOS 推送通知
Posted
技术标签:
【中文标题】来自一台服务器的多个应用程序的 IOS 推送通知【英文标题】:IOS Push Notifications for multiple Apps from one server 【发布时间】:2013-08-23 18:20:19 【问题描述】:我们为推送通知设置了 2 个应用程序。 (甲和乙)
每个(当然)都有不同的配置文件,我们为每个生成了单独的证书。 应用 A 接收推送通知正常,应用 B 没有。
两者都在与同一台服务器通信 - 它确实会确定将通知发送到哪个应用程序并使用正确的证书。
我注意到,如果您在一台设备上安装这两个应用程序,它们都会获得相同的令牌(我们的服务器会跟踪每个应用程序。)。在这种情况下,当服务器发送一个 msg 时,它会向同一个 Token 发送两次 - 每个证书一次。应用 A 将收到消息,应用 B 不会。
将消息发送到两个应用程序时,Apple 服务器会响应所有消息都已正确发送且没有错误。但是消息永远不会出现在一个应用程序中。
关于去哪里看有什么建议吗?
【问题讨论】:
如果你先发送B通知,B应用会收到而A应用不会? XCode 肯定为每个应用程序设置了不同的配置文件,并且这两个应用程序当前都在商店中并且正在工作 - 除了推送通知。令牌绝对是相同的。 只有 App B 的设备设置永远不会收到消息。服务器已经在 App A 之前发送给 App B。 @CasaDelGato 根据您的描述,问题出在 App B 的证书上,或者出在 App B 的配置文件上(当您第一次启动 App B 时,您是否会询问是否允许推送通知?) @Eran - 想想看,我认为任何一个应用程序都没有问过我是否要允许推送通知。我已经多次从设备中删除它们。嗯,但就我而言,我总是通过直接从 Xcode 构建来“安装”。 【参考方案1】:经过大量搜索和查找,我发现了这个问题:Iphone - Multiple Apps, Different App ID, Same Token
它指出您必须为每个应用程序使用不同的 .certSigningRequest。我与我们的 AppStore 人员核实过,他对两个证书都使用了同一个。他解决了这个问题,现在它可以工作了!
【讨论】:
是的,您需要将私钥处理为 p12 文件以准备 pem 文件,并且此私钥是在创建 .certSigningRequest 文件时在钥匙串应用程序中生成的。因此,此 CSR 可以在到期时重复用于同一应用程序,但任何其他应用程序都需要单独使用。是时候接受你的回答了。以上是关于来自一台服务器的多个应用程序的 IOS 推送通知的主要内容,如果未能解决你的问题,请参考以下文章