如何检查是什么杀死了我的音频放大器应用程序? (ios, objective C)

how to check what is killing my audio amplifier app? (ios, objective C)

我有一个 ios 应用程序,它从 phone microphone 获取音频,实时对麦克风数据执行一些处理并将结果发送到 headphones

在项目 -> 功能 -> 背景模式中,我选择了音频、AirPlay 和画中画

我希望应用在后台(用户按下主页按钮)和 phone 使用锁定按钮锁定屏幕

这一切都在发生,所以我认为应用权限没有任何问题,但我注意到应用在后台运行后突然被杀死,通常不到一分钟

我设法在 xcode 控制台中捕获到应用程序在后台被杀死的实例,消息是

Message from Debugger: terminated due to signal 9  

在 google 中环顾四周表明,这仅意味着该应用已被 OS 使用 SIGKILL

销毁

有什么办法可以查出应用被杀的原因吗? 运行ning 应用程序是否无法在后台长时间运行?在我启用 Audio, AirPlay and Picture in Picture 背景模式之前,音频曾经在我按下主页按钮或屏幕锁定按钮时立即停止。我假设因为当我按下主页按钮时音频保持 运行ning 现在意味着我确实能够 运行 mic/speaker 在后台,如果我必须的话,并且有音乐播放器以及在后台运行的录音机应用程序,直到用户明确关闭它们。

我如何找出我的应用程序自动关闭的确切原因,以及如何才能使它 运行 无限期地在后台运行,直到用户关闭它?

通过 xcode 安装您的应用程序后,运行 它正常(不是通过 xcode 中的 运行),让它崩溃。然后连接 phone,转到 xcode -> Window -> 设备和模拟器 -> 查看设备日志。然后找到最近的崩溃。

我觉得你的特殊问题像是过度使用 CPU。后台应用程序不能长时间(大约一分钟)使用超过 80% (IIRC) 的设备 CPU,否则它将被系统杀死。如果是这种情况,您只需要优化代码即可不占用 CPU.