【问题标题】:Sending push notification to development app, with production server certificate使用生产服务器证书向开发应用程序发送推送通知
【发布时间】:2014-03-11 14:37:00
【问题描述】:
我们正在构建支持推送通知的应用程序。到目前为止,我们使用沙盒模式实现了带有开发证书的推送服务器。在应用商店发布应用程序的那一刻,Web 服务器需要使用生产证书切换到生产模式。
问题是,如果我们将服务器切换到生产环境,应用程序的开发实例还会收到推送通知吗?如果不是,应该如何在生产和开发上同时提供可用的推送通知?
【问题讨论】:
标签:
ios
ssl
push-notification
apple-push-notifications
【解决方案1】:
当您切换到生产证书(并连接到 APNS 生产服务器)时,开发实例不会收到推送通知。此外,尝试向开发设备令牌发送通知会导致错误(因为开发设备令牌在生产环境中无效)。在将服务器切换到生产模式之前,您应该从数据库中删除开发设备令牌。这将为您省去很多麻烦。
这是来自here的相关引用:
最常见的问题是设备令牌无效。 如果令牌来了
来自沙盒环境,例如当您测试一个
内部开发,您不能将其发送到生产推送
服务。每个推送环境都会为
相同的设备或计算机。如果您确实将设备令牌发送到错误的
环境中,推送服务会将其视为无效令牌,并且
丢弃通知。
注意:建议您运行一个单独的实例
为每个推送环境提供provider,避免发送问题
设备令牌到错误的环境。
如果您确实需要继续支持应用程序的开发实例的推送通知,您必须在数据库中区分开发和生产设备令牌(即标记哪些设备令牌是开发令牌,哪些是生产)。您必须使用不同的证书维护与生产和沙盒 APNS 服务器的单独连接,并且在向设备令牌发送通知时必须使用正确的连接(基于它在数据库中的标记方式)。