我有一个VoIP应用程序,它使用CallKit和PushKit。 当应用程序关闭且iOS收到推送通知时,应用程序已在后台模式中唤醒,它通过CallKit应答,一切正常,大约50秒。 之后iOS用信号9杀死应用程序。 我选择了下一种背景模式:音频和 voip ,但iOS需要更多功能才能继续执行无限后台任务。
我忘了做什么来阻止系统杀死我的应用程序?
P.S。当我在应用程序处于前台时调用我的应用程序时,通话会持续数小时。然后不是内存压力就是应用程序被杀的原因。
答案 0 :(得分:2)
在开发者帐户上创建VoIP证书后,在后台模式下启用以下字段
1] Audio and Airplay
2] Voice over IP
3] Background fetch
4] Remote notifications
答案 1 :(得分:1)
答案 2 :(得分:0)
当被唤醒时,你需要调用[UIApplication beginBackgroundTaskWithExpirationHandler]
答案 3 :(得分:0)
我已经发现,阅读调试控制台,我的应用程序利用90%以上的CPU应答后台呼叫。 这就是iOS杀死我的应用程序的原因。
答案 4 :(得分:0)
您使用原始预制吗?该版本有一个WebRTC错误,后来修复了。它会导致语音呼叫(issue5506)的CPU使用率过高。切换到WebRTC窗格以解决此问题(https://cocoapods.org/pods/WebRTC)。
移动到WebRTC窗格将比更改依赖关系花费更多时间,因为API稍有改变。虽然它没有太大变化,所以它可以在一两天内完成。无论如何,切换到官方吊舱是一种可行的方式,因为不再保留原始版本。