アプリのバックグラウンド オーディオ再生に取り組んでいます。しかし、一部のユーザーは、1 つの奇妙なバグについて私に警告しました。バックグラウンドで 1 時間以上再生すると、アプリは iOS によって強制終了され、再度起動する必要があります。
ほとんどの場合、アプリがバックグラウンド タスクを非常に頻繁に作成し、再生を再開するのに十分なデータがダウンロードされるまでそれを使用する必要がある場合、インターネット接続が悪い場合に発生します。
バックグラウンド タスクの時間制限については知っていますが、それは問題ではありません。ユーザーのデバイスからのクラッシュ ログの一部を次に示します。
Exception Type: EXC_RESOURCE
Exception Subtype: CPU_FATAL
Exception Message: (Limit 80%) Observed 0% over 60 sec
Triggered by Thread: 0
最も奇妙なのは3行目です。0% が 80% の制限を下回っている場合、なぜ例外なのですか?
Thread 0 (メイン スレッド) のスタック トレースをシンボリック化することで、 method で発生していることがわかりました- [NSFileManager fileExistsAtPath:]
。以前は method で発生していました+ [UIImage imageWithContentsOfFile:]
。では、何が iOS のバックグラウンドでファイル システムへのアクセスをフリーズさせるのでしょうか?
また:
- アプリがロック画面に画像を設定しようとしたときに発生します。
- 画像は Cache フォルダーに保存されます。