2016-11-17 25 views
1

私はVoIPアプリケーションを持っており、CallKitとPushKitを使用しています。 アプリが終了し、iOSがプッシュ通知を受け取ると、アプリはバックグラウンドモードで起動し、CallKit経由で通話すると応答し、すべて正常に動作します(約50秒間)。 その後、iOSは信号9でアプリを終了させます。オーディオvoipを選択しましたが、iOSは無限のバックグラウンドタスクを続けたいと考えています。iOSがCallKit VoIPアプリケーションをバックグラウンドで1分間で終了させる

システムでアプリを強制終了しないようにするのを忘れましたか?

P.S.私がフォアグラウンドにいるときに私のアプリに電話をかけると、何時間も電話をかけ続けることができます。それはメモリの圧力ではないアプリの殺害の理由です。

答えて

0

目が覚め、あなたは[のUIApplication beginBackgroundTaskWithExpirationHandler]を呼び出す必要が

+0

感謝を有効にするが、私は任意の有限の長さのタスクを実行する必要はありません、私は私の問題の原因を発見しました。 – adnako

+0

理由を私と共有できますか? – Neelesh

0

私は私のアプリがバックグラウンドでのコールに答える90%以上のCPUを利用していること、デバッグコンソールを読んで、判明しました。 これがiOSが私のアプリを殺す理由です。

+0

あなたの解決策は何ですか? –

1

以下の画面のような許可をいただきましたら幸いです。

enter image description here

enter image description here

IOSのメモリリークまたは低メモリ使用量に起因起こる信号9、とアプリを殺します。

計測器で確認できます。

0

プリインストールのプリインストールを使用していますか?そのビルドには後で修正されたWebRTCバグがあります。音声専用コール(issue5506)でCPU使用率が高すぎます。これを修正するためにWebRTCポッドに切り替えます(https://cocoapods.org/pods/WebRTC)。

WebRTCポッドに移動すると、APIが少し変更されたため、依存関係を変更するよりも少し時間がかかります。それはそれほど変わっていないので、1日か2日でやることができます。公式ポッドに切り替えることは、元の状態からのビルドがもはや維持されていないため、いずれにしても行く方法です。

1

開発者アカウントにVoIPの証明書を作成した後、バックグラウンドモードではフィールドの下

1] Audio and Airplay 
2] Voice over IP 
3] Background fetch 
4] Remote notifications 
関連する問題