我正在iOS中开发移动应用程序,并且我已成功完成了推送证书和服务器端实现的创建。
现在的问题是,Push Notification在我的iPhone 5S和iPhone 6中完美运行。我已在印度的许多手机中检查过它,它工作正常但是当我在我的客户端的iPhone 5S中测试它然后它不起作用。之后,我的客户带来了另一部iPhone 5S,并给了我他的新设备UDID,再次它无法正常工作。请帮我解决错误。
经过大量的谷歌搜索后,我发现以下步骤,以便我们的应用程序可以再次询问推送通知权限。
我按照上述步骤操作并且设备要求获得推送通知权限,但仍然无法在他的iPhone中使用。
之后我在印度的iPhone中执行了相同的步骤,其中推送通知已经在工作。完成上述步骤后,我的应用程序要求提供推送通知权限,并且工作正常。
以下信息可以帮助我们解决此问题。我的客户位于英国曼彻斯特,他正在使用基于O2合约的iPhone。
答案 0 :(得分:7)
在手机中测试并使用apple的沙箱服务器进行推送通知时,您必须使用开发证书,而在客户端的情况下,使用部署证书的部署应用程序您需要从服务器端的推送通知服务器中删除沙盒并使用实时服务器。它会起作用,我曾经也遇到过同样的问题。
gateway.sandbox.push.apple.com:2195
这是沙盒从中删除沙箱的地址,您将开始使用部署证书获取应用程序上的通知。我希望这会有所帮助。
答案 1 :(得分:2)
与@Ahsan Ebrahim建议的答案完美配合。 如果我们想在客户端的设备上测试APNS,这是正确的步骤。
创建基于生产的APNS证书。
使用AdHoc作为IPA分发,因为根据Apple AdHoc用于“创建分发配置文件以在有限数量的已注册设备上安装您的应用程序”。 和iOS App Development:“创建配置文件以在测试设备上安装开发应用程序。”
我们必须在这里选择AdHoc,以便我们可以分发IPA。
在服务器上使用基于生产的ck.pem文件。
在Server上使用gateway.push.apple.com:2195而不是gateway.sandbox.push.apple.com:2195。
代码使用AdHoc Distribution为您的应用程序签名,您就完成了。
之后它会完美运作。
答案 2 :(得分:1)
这必须是配置文件的问题。在为客户生成IPA时,请检查您是否使用了正确的条款。我之前有同样的问题,Xcode错误地采用了通配符移动设备(推送通知不适用于通配符移动配置文件)。我的配置文件的默认应用ID是自动创建的" Xcode iOS通配符应用ID"。快乐的编码。