我的应用推送通知仅在我客户的 iPhone 上不起作用

Posted

技术标签:

【中文标题】我的应用推送通知仅在我客户的 iPhone 上不起作用【英文标题】:My App Push Notification is not working in my client's iPhone only 【发布时间】:2015-04-22 09:49:45 【问题描述】:

我正在 ios 中开发移动应用程序,并且我已成功创建推送证书和服务器端实现。

现在的问题是,推送通知在我的 iPhone 5S 和 iPhone 6 上运行良好。我已经在印度的许多手机上检查过它,它运行良好,但是当我在我客户的 iPhone 5S 上测试它时它就无法运行。之后,我的客户带来了另一部 iPhone 5S,并给了我他的新设备 UDID,但它再次无法正常工作。请帮我看看有什么问题。

经过大量谷歌搜索后,我找到了以下步骤,以便我们的应用可以再次请求推送通知权限。

    从设备中删除不再有推送通知的应用。 完全关闭设备,然后重新打开。 转到设置并提前一天设置日期和时间 再次关闭设备并将其重新打开 再次安装应用程序,它会像您第一次安装时一样要求通知。

我按照上述步骤操作,设备要求获得推送通知权限,但在他的 iPhone 上仍然无法使用。

之后,我在印度的 iPhone 上执行了相同的步骤,推送通知已经在其中工作。完成上述步骤后,我的应用程序要求获得推送通知权限,并且工作正常。

以下信息可能有助于我们解决此问题。我的客户在英国曼彻斯特,他正在使用基于 O2 合同的 iPhone。

【问题讨论】:

您可以通过转到“设置”>“通知”>“您的应用”,然后选择正确的选项来明确更改应用的通知设置 你使用的是开发证书还是生产证书? 在设置页面启用向您的应用推送通知..! 是的,我试过了,但还是不行,我正在使用开发证书@ZeMoon @Gaurav 具有开发证书,您只能在调试模式下收到通知。即使用 Xcode 直接在您的手机上运行。对于 Adhoc 和 App Store 构建使用生产证书。它会像魅力一样发挥作用。 【参考方案1】:

在您的手机中进行测试并使用苹果的沙箱服务器进行推送通知时,您必须使用开发证书,在客户端的情况下,它是使用部署证书的已部署应用程序,因此您需要从在您的服务器端推送通知的服务器并使用实时服务器。然后它会起作用,我曾经也遇到过同样的问题。 gateway.sandbox.push.apple.com:2195 这是沙箱的地址,从中删除沙箱,您将开始收到有关使用部署证书制作的应用程序的通知。我希望这会有所帮助。

【讨论】:

是的,我已在我的开发者帐户中添加了客户的 UDID,以便它可以用作测试设备,并且我正在使用沙盒生成 IPA,因为我的应用程序仍在开发中。同样正如我在我的问题中解释的那样,它在我位于印度的 3 台设备中运行良好,但它不仅仅在客户的设备中运行。但我一定会尝试一下你的想法,让你知道它是否有效。但是。 你是超级救世主!现在我所做的是,创建新的生产 APNS 证书而不是开发证书,在服务器上使用 gateway.push.apple.com:2195 而不是 gateway.sandbox.push.apple.com:2195 并创建 AdHoc Distribution IPA。它在客户端也像魅力一样工作! 很高兴它有帮助:) 如果有效,请将其标记为正确答案。【参考方案2】:

它与@Ahsan Ebrahim 建议的答案完美配合。 如果我们想在客户端设备上测试 APNS,以下是正确的步骤。

    创建基于生产的 APNS 证书。

    使用 AdHoc 作为 IPA 分发,因为根据 Apple AdHoc 用于“创建分发配置文件以在有限数量的注册设备上安装您的应用”。 和 iOS 应用开发:“创建配置文件以在测试设备上安装开发应用。”

    我们必须在这里选择 AdHoc,这样我们才能分发 IPA。

    在服务器上使用基于生产的 ck.pem 文件。

    在服务器上使用 gateway.push.apple.com:2195 而不是 gateway.sandbox.push.apple.com:2195。

使用 AdHoc Distribution 对您的应用程序进行代码签名,您就完成了。

之后它将完美运行。

【讨论】:

这是不公平的,回答问题的人应该得到荣誉,而不是自己写答案并将其标记为正确答案。 哎呀对不起兄弟,我以为我们可以勾选超过 1。真的很抱歉。我已将您的答案标记为正确答案【参考方案3】:

这一定是配置文件的问题。当您为您的客户生成 IPA 时,请检查您是否使用了正确的条款。在 Xcode 错误地采用通配符移动配置之前我遇到了同样的问题(推送通知不适用于通配符移动配置文件)。我的配置文件的默认应用 ID 是自动创建的“Xcode iOS 通配符应用 ID”。快乐编码。

【讨论】:

是的,我正在使用正确的配置文件,并且添加了 5 台设备。它在我的 3 台设备中正常工作,但在作为客户设备的 2 台设备中无法正常工作

以上是关于我的应用推送通知仅在我客户的 iPhone 上不起作用的主要内容,如果未能解决你的问题,请参考以下文章

GCM 推送通知在 iOS 上不起作用

带有 p8 文件的 Apple 推送通知在我的 Mac 上工作,但在 Linux 服务器上不起作用

android firebase后台通知仅在vivo设备上不起作用

推送通知声音在 iOS8 上不起作用

Ionic 5 电容器:使用 ONESIGNAL 的推送通知在 iOS 上不起作用

OneSignal:推送通知不起作用