1

我有一个 VoIP 应用程序,它使用 CallKit 和 PushKit。当应用程序关闭并且 iOS 收到推送通知时,应用程序已在后台模式下被唤醒,它通过 CallKit 接听电话,一切正常,大约持续 50 秒。在那之后,iOS 用信号 9 杀死了应用程序。我选择了下一个背景模式:音频voip,但 iOS 想要更多的东西来继续无限的后台任务。

我忘记做什么来防止系统杀死我的应用程序?

PS当我在前台调用我的应用程序时,通话会持续数小时。那么它不是内存压力是应用程序被杀的原因。

4

5 回答 5

2

在开发者帐户上创建 VoIP 证书后,在后台模式下启用以下字段

1] Audio and Airplay
2] Voice over IP
3] Background fetch
4] Remote notifications
于 2017-02-14T07:44:13.337 回答
1

我希望你已经给予了如下屏幕的许可。

在此处输入图像描述

在此处输入图像描述

iOS 使用信号 9 杀死应用程序,这是由于内存泄漏或内存使用率低而发生的。

你可以用仪器检查。

于 2016-11-23T06:35:06.293 回答
1

唤醒时需要调用 [UIApplication beginBackgroundTaskWithExpirationHandler]

于 2016-11-17T09:30:25.453 回答
0

我在阅读调试控制台时发现,我的应用程序使用 90% 以上的 CPU 来应答后台呼叫。这就是iOS杀死我的应用程序的原因。

于 2016-11-17T10:29:19.543 回答
0

您是否使用原始的预构建?该版本有一个 WebRTC 错误,稍后修复。它会导致纯语音呼叫的 CPU 使用率过高(issue5506)。切换到 WebRTC pod 来解决这个问题 ( https://cocoapods.org/pods/WebRTC )。

迁移到 WebRTC pod 将比更改依赖项花费更多时间,因为 API 发生了一些变化。不过变化不大,所以一两天内就可以了。在任何情况下,切换到官方 pod 都是可行的方法,因为不再维护从原始的构建。

于 2017-02-04T15:48:07.530 回答