打包 iOS 应用后推送通知停止工作
Posted
技术标签:
【中文标题】打包 iOS 应用后推送通知停止工作【英文标题】:Push notifications stop working after packaging iOS app 【发布时间】:2018-02-28 16:11:35 【问题描述】:我正在开发一个企业 ios 应用程序,它接收各种功能的推送通知。我安装了推送通知服务并在使用 Xcode 和 iPhone X 调试应用程序时工作(手机没关系,我尝试了多种,它们似乎都可以直接从 Xcode 工作)。
如果我打包应用程序并通过无线方式将其分发到设备,我会收到正常的“您是否愿意接收推送通知”(我同意),但它不会收到推送通知。
我检查过的内容:
确保设备功能“推送通知”已打开。 确保包标识符匹配。 验证 pushID 是否正确。 验证后台模式:远程通知已打开。我唯一能想到的是,也许当应用程序被打包时,它正在将某些东西翻转到生产环境而不是开发环境,并且当我发送推送通知时,它可能无法发送到生产环境或类似的东西。
以前有人遇到过这个问题吗?
【问题讨论】:
您确定打包应用时配置文件是开发还是生产 同意@HarshalBhavsar,我也会检查证书 @HarshalBhavsar 感谢您的提示。我尝试打包应用程序以进行开发和安装,但它仍然无法正常工作。我记得几年前有一个不同的推送通知服务,需要单独的开发和分发证书来进行推送。我正在使用我自己编写的仅使用一个证书的 php 服务,这可能是问题吗? 【参考方案1】:@HarshalBhavsar 的回答让我更接近了。我在这里找到了解释: https://***.com/a/35628480/3921182
事实证明,Apple 有一个与分发(生产)分开的开发推送通知服务。将推送通知消息发送到分布式应用程序时,它们实际上需要发送到:
ssl://gateway.push.apple.com:2195 而不是 ssl://gateway.sandbox.push.apple.com:2195
【讨论】:
您必须为开发和生产使用不同的 .p12。也正如你所说的不同的 ssl 对于企业开发,实际上现在有一个组合 .p12 的选项,它涵盖了开发和分发,这很不错,但也给一切带来了一定程度的混乱哈哈。感谢所有帮助@HarshalBhavsar以上是关于打包 iOS 应用后推送通知停止工作的主要内容,如果未能解决你的问题,请参考以下文章
Firebase FCM 推送通知停止工作 iOS 11.1.1