didReceiveRemoteNotification:fetchCompletionHandler:只有在连接Xcode并处于后台时才会被调用

5
我知道这个问题之前已经被问过,但是到目前为止我看到的所有回复似乎都不能解决我的问题。
我正在尝试在我的iOS应用程序中处理后台推送通知,但由于某种原因,只有当应用程序连接到xcode时,didReceiveRemoteNotification:fetchCompletionHandler:方法才会在调试模式下被调用。
我正在使用PushSharp发送通知,并且我已经尝试了几乎所有的方法。我将content-available设置为1,尝试将sound/alert设置为“”,甚至尝试将优先级设置为1、5和10(我知道它是默认值,但值得一试),但都没有成功。
当我从xcode启动应用程序并按下主页按钮时,通过发送推送通知,我能够使该方法被调用。然而,如果我停止应用程序,在设备上重新启动它,按下主页按钮并发送推送通知,该方法永远不会被调用。
有人有什么建议吗?

1
你找到解决办法了吗?我这里也遇到了同样的问题。 - undefined
1个回答

0
一些观察:
当运行附加到调试器的应用程序时,它会人为地改变应用程序的生命周期,使其在后台运行。通常情况下,当用户离开应用程序时,应用程序会被挂起(并在一段时间后被终止)。听起来你可能没有打开“远程通知”功能(背景能力)。
我通常也会使用从Xcode的“产品”»“归档”生成的已签名版本来测试推送通知。请参阅测试发布版本构建
最后,我建议检查一下你从APNS收到的错误消息,如果有的话。以前我使用第三方应用程序来测试APNS,但现在苹果有他们自己的推送控制台enter image description here

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接