我需要 APNS 证书和 VOIP 证书吗?

Posted

技术标签:

【中文标题】我需要 APNS 证书和 VOIP 证书吗?【英文标题】:Do I need APNS certificate as well as VOIP certificate? 【发布时间】:2017-04-05 09:23:43 【问题描述】:

我们的应用程序已经注册了 APNS。因为我们要实现PushKit,所以我们也创建了VOIP证书。真的有必要吗? 我们不能只使用 APNS 证书进行 VOIP 推送吗?

由于现在有两个证书,我必须维护两个令牌。一个用于发送普通推送,另一个用于发送 VOIP 推送。

我们不能简单地将一个令牌/证书用于两个目的吗?

【问题讨论】:

【参考方案1】:

实际上,您可以为您的 voip 推送和普通推送使用一个通用证书。 当你发送普通推送时,使用普通主题和普通令牌,这通常是你的包标识符

com.company.appname

当您发送 voip 推送时,请使用 voip 主题和您的 pushkit 令牌,即

com.company.appname.voip

See links in Apple

【讨论】:

同意。参考:developer.apple.com/library/content/documentation/…【参考方案2】:

实际上,可能对标准和 VoIP 推送都使用单一证书

Apple docs 和 portal 不是很明显,我个人花了很多时间来理解它

但我可以 100% 肯定地说:

实际上您可以创建 3 种类型的证书:

通用(用于生产/沙盒标准推送 + VoIP) 仅适用于标准推送的沙盒 仅 VoIP(适用于 Prod+Sandbox)

如您所见,您可以为一切创建一个通用证书,从而简化您的生活 - 只需忘记单独的通用证书和 VoIP 证书。

这是我用来生成单个通用证书的很酷的指南,它可以在任何地方使用 https://developers.connectycube.com/ios/how-to-create-apns-certificate

强烈推荐。就我个人而言,我不再创建单独的 Sandbox-only 和 VoIP 证书了。

【讨论】:

但是,我们将有 2 个不同的代码来接收常规和 VOIP 通知。以及要维护的不同设备令牌?【参考方案3】:

不,您不能将相同的证书和设备令牌用于简单推送和 VOIP 推送。您必须需要为两者创建单独的证书。因为两者都会生成不同的设备令牌,不能相互使用。

【讨论】:

但是我们可以使用VOIP推送令牌发送正常推送吗? 不,你不能!如果您尝试这样做,那么它会起作用,但它不会是简单的 push ,所有推送都将是 VOIP 推送,并将在各自的委托方法中处理。这将直接执行在 didreceive 方法中编写的代码。并且不会向您显示横幅,因为这被视为静默推送通知 啊,好的,我明白了。我知道无声推送,只需测试一次即可确定,无论如何感谢您的帮助:) 欢迎您..!如果您想使用 VOIP 进行简单推送,则需要安排本地通知以显示横幅。 是的,我知道 :)【参考方案4】:

是的,您必须保留/维护这两个证书和两个令牌,因为 APNS 和 VOIP 证书的用途完全不同。

带有'content-available'=> 1 的 Pushkit 负载将是静默通知,不会出现在通知栏中。

保持两者不同的原因是“某些用户可能不想为特定应用注册 VOIP 功能”。

检查一些需要的东西here。

【讨论】:

以上是关于我需要 APNS 证书和 VOIP 证书吗?的主要内容,如果未能解决你的问题,请参考以下文章

iOS 应用创建APNS 和 VOIP的pem证书流程

iOS 应用创建APNS 和 VOIP的pem证书流程

开发部署需要哪个 APNS 证书

迁移到 iOS VoIP 推送通知

为啥 APNS 需要 Entrust ssl 证书的 ssl

多个 MDM 服务器,多个 APNs 证书?