iOS会在一分钟内杀死CallKit VoIP应用程序

时间:2016-11-17 07:42:10

标签: ios iphone background voip callkit

我有一个VoIP应用程序,它使用CallKit和PushKit。 当应用程序关闭且iOS收到推送通知时,应用程序已在后台模式中唤醒,它通过CallKit应答,一切正常,大约50秒。 之后iOS用信号9杀死应用程序。 我选择了下一种背景模式:音频 voip ,但iOS需要更多功能才能继续执行无限后台任务。

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

P.S。当我在应用程序处于前台时调用我的应用程序时,通话会持续数小时。然后不是内存压力就是应用程序被杀的原因。

5 个答案:

答案 0 :(得分:2)

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

1] Audio and Airplay
2] Voice over IP
3] Background fetch
4] Remote notifications

答案 1 :(得分:1)

我希望你已经获得了以下屏幕的许可。

enter image description here

enter image description here

iOS会因内存泄漏或内存使用率低而导致应用信号9 死亡。

您可以使用仪器进行检查。

答案 2 :(得分:0)

当被唤醒时,你需要调用[UIApplication beginBackgroundTaskWithExpirationHandler]

答案 3 :(得分:0)

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

答案 4 :(得分:0)

您使用原始预制吗?该版本有一个WebRTC错误,后来修复了。它会导致语音呼叫(issue5506)的CPU使用率过高。切换到WebRTC窗格以解决此问题(https://cocoapods.org/pods/WebRTC)。

移动到WebRTC窗格将比更改依赖关系花费更多时间,因为API稍有改变。虽然它没有太大变化,所以它可以在一两天内完成。无论如何,切换到官方吊舱是一种可行的方式,因为不再保留原始版本。