【问题标题】:My App Push Notification is not working in my client's iPhone only我的应用推送通知仅在我客户的 iPhone 上不起作用
【发布时间】:2026-02-20 15:40:02
【问题描述】:

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

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

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

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

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

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

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

【问题讨论】:

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

标签: ios objective-c iphone notifications push-notification


【解决方案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,以下是正确的步骤。

  1. 创建基于生产的 APNS 证书。

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

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

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

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

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

之后它将完美运行。

【讨论】:

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

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

【讨论】:

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