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

My App Push Notification is not working in my client's iPhone only

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

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

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

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

我按照上述步骤操作,设备请求推送通知许可,但它仍然无法在他的 iPhone 中工作。

之后,我在印度的 iPhone 中执行了相同的步骤,推送通知已在其中运行。执行上述步骤后,我的应用程序请求推送通知权限并且运行正常。

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

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

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

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

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

  2. 使用 AdHoc 作为 IPA 发行版,因为根据 Apple 的说法,AdHoc 用于 "Create a distribution provisioning profile to install your app on a limited number of registered devices." 和 iOS 应用程序开发:"Create a provisioning profile to install development apps on test devices."

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

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

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

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

之后就可以完美运行了