4

我们正在开发依赖于新的 IOS7 功能的应用程序 - 远程通知后台更新。

根据文档,系统可以“跳过”调用,didReceiveRemoteNotification:fetchCompletionHandler:如果它发现后台处理耗电且冗长等,我们在实践中看到这一点 - 用户可以在屏幕上收到推送通知,但调用didReceiveRemoteNotification:fetchCompletionHandler:根本没有发生

问题是 - 我们如何通过推送检查 ios 中发生了什么?有没有一些方法可以查看来自 ios 服务的真实信息的内部系统日志?我们当然需要它来进行调试,而不是在发布的应用程序中。只是为了仔细检查和微调我们的后台处理。开发人员应该有办法查看设备上真正发生的事情。

我发现显示类似内容的应用程序“appswitcher”,但在 ios7 上它只显示活动的应用程序日志(appswitcher 本身),而不是系统范围的。所以对我们没用...

需要明确的是:推送通知工作正常,例如,程序总是在调试模式下接收它们。但是在发布/临时构建中,我们看到一些通知被发送到应用程序(从后台唤醒它),而另一些则没有。说明 fetch 回调用于计算 cpu/数据使用情况的文档,并且 ios 保留在感觉这样做时“跳过”通知的权利,我们只是想找到方法看看是不是这种情况

欢迎任何帮助

4

2 回答 2

2

我从未尝试过,但我前一阵子看到了。通过查看它,它似乎会对您的情况有所帮助,但不幸的是,您必须尝试一下,看看它是否值得。

https://developer.apple.com/downloads/index.action 转到该网站,并使用您的开发者帐户登录。转至第 2 页(或查找 2013 年 10 月 4 日发布的 Bug Reporter Logging Profiles (iOS))。在说明中,Apple 有一个链接告诉您如何使用这些配置文件。正如那篇文章的标题所暗示的那样,它是用于错误报告的,希望它能为您提供一些详细信息,以便您修复错误。

试试看它是否有效,并让其他人知道它是否有用。由于它说“记录”,我猜它会在控制台上输出有关推送消息的详细信息,而不是秘密记录并将日志发送给苹果。

于 2013-11-21T01:12:14.300 回答
1

首先,您需要检查您的推送通知是否正常工作。我要做的是暂时禁用后台获取,并简单地检查我是否得到推送。

如果一切正常,我将重新打开后台获取Capabilities并尝试在调试中发送一个。即使应用程序在后台,您仍然可以有断点。如果未调用方法,请尝试查看控制台。

我认为除了 backgroundFetching 之外,您在推送通知方面存在问题。

如果您愿意尝试当应用程序未处于后台模式但被 9 杀死时会发生什么,您应该将 NSLogs 放入方法中。如果您NSLog在控制台中看到,那么 ( Xcode -> ⌘⇧2 -> your device (connected) -> Console) 就可以了。

除非您输入方法,否则生产控制台在后台获取对您毫无用处NSLogs。但是您只能检查您是否成功输入方法并记录参数。

于 2013-11-15T10:41:29.830 回答