バックグラウンドスレッドのクラッシュ

Duc Chinh

アプリをバックグラウンドモードにすると、以下のログでアプリがクラッシュしました。

これはクラッシュのデバイスログです:

Exception Type:  EXC_CRASH (SIGKILL)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note:  EXC_CORPSE_NOTIFY
Termination Reason: Namespace ASSERTIOND, Code 0x8badf00d
Triggered by Thread:  0

Filtered syslog:
None found

Thread 0 name:  Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0   libsystem_kernel.dylib        0x0000000183563de8 mach_msg_trap + 8
1   libsystem_kernel.dylib          0x0000000183563c60 mach_msg + 72
2   CoreFoundation                  0x0000000183aa6e40 __CFRunLoopServiceMachPort + 196
3   CoreFoundation                  0x0000000183aa4908 __CFRunLoopRun + 1568
4   CoreFoundation                  0x00000001839c4da8 CFRunLoopRunSpecific + 552
5   GraphicsServices                0x00000001859aa020 GSEventRunModal + 100
6   UIKit                           0x000000018d9e4758 UIApplicationMain + 236
7   AijouNetto                      0x00000001008a851c main + 410908 (AppDelegate.swift:17)
8   libdyld.dylib                   0x0000000183455fc0 start + 4 

これはクラスの実装です:

class EKNBackgroundTaskManager {

let backgroundDQ = DispatchQueue.global(qos: .background)
var backgroundUpdateTask: UIBackgroundTaskIdentifier!

init(withName: String) {

    self.backgroundUpdateTask = UIApplication.shared.beginBackgroundTask(withName: withName) {}
}

func runBackgroundTask(withCode: @escaping (_ cH: @escaping () -> Void) -> Void)
{
    backgroundDQ.async {
        withCode() {
            self.endBackgroungTask()
        }
    }
}

func endBackgroungTask() {
    if backgroundUpdateTask != nil && backgroundUpdateTask != UIBackgroundTaskInvalid {
        UIApplication.shared.endBackgroundTask(backgroundUpdateTask)
        backgroundUpdateTask = UIBackgroundTaskInvalid
    }
  }
}

アプリケーションがバックグラウンドモードになっている間にこのバグを修正するためのアドバイスはありますか?

ルッツ

アプリケーションがバックグラウンドで長時間使用したか、起動に時間がかかりすぎたため、iOSウォッチドッグプロセスによって終了しました(デバイスでのみ発生します)。これは、終了理由コードから確認できます。詳細については、この投稿を参照してください:8badf00dはどういう意味ですか?

クラッシュの原因が開始時刻なのか、バックグラウンドタスクなのかを確認する必要があります。開始時間の場合は、なんとかしてアプリの起動時間を短縮する必要があります。Appleはこのテーマについて多くの講演を行っており、対応するビデオはApple Developerプラットフォームで見つけることができます(過去数年間のWWDCビデオの中で、たとえばこれ:https//developer.apple.com/videos/play/ wwdc2016 / 406)。

長時間実行されるバックグラウンドタスクとその実装方法については、Appleのドキュメントを参照してくださいhttps//developer.apple.com/library/archive/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html#//apple_ref/doc / uid / TP40007072-CH4-SW3

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Xcode 10以降、UIImageViewsetImageがバックグラウンドスレッドでクラッシュする

分類Dev

Androidのバックグラウンドスレッド

分類Dev

ScanCallbackのバックグラウンドスレッド

分類Dev

処理中のバックグラウンドスレッド

分類Dev

ZeroMQバックグラウンドスレッドの作成

分類Dev

バックグラウンドスレッドでのKotlinrunBlocking

分類Dev

GAEPythonバックグラウンドスレッドの終了

分類Dev

Javaのバックグラウンドスレッド

分類Dev

RxJavaシングルバックグラウンドスレッドスケジューラ

分類Dev

バックグラウンドスレッドのディスク上のキャッシュイメージをグライドします

分類Dev

バックグラウンドスレッドの速度低下メインUIスレッドビジュアルベーシック

分類Dev

バックグラウンドとGCのエンドレススレッド

分類Dev

バックグラウンドスレッドでの画像のスケーリングがクラッシュする-UIGraphicsImageRenderer

分類Dev

.NetCoreキューのバックグラウンドタスク

分類Dev

Android-バックグラウンドスレッドのガベージコレクション

分類Dev

非同期タスクのバックグラウンドでdoで登録クラッシュを送信する

分類Dev

バックグラウンドスレッドのフラスコアプリケーション

分類Dev

バックグラウンドスレッド用のJPAセッションの作成

分類Dev

バックグラウンドスレッドの使用とメッセージキューの使用

分類Dev

バックグラウンドスレッド上のシングルトンデータストア

分類Dev

BackgroundWorkerとバックグラウンドスレッド

分類Dev

iOS開始バックグラウンドスレッド

分類Dev

Xamarin.Formsバックグラウンドスレッド

分類Dev

RestSharp非同期バックグラウンドスレッド

分類Dev

GMSGeoCoder reverseGeocodeCoordinate:completionHandler:バックグラウンドスレッド上

分類Dev

継承、バックグラウンドスレッド、RAII

分類Dev

バックグラウンドリフレッシュを使用したAppleWatch

分類Dev

バックグラウンドスレッドとしてのウォッチドッグ-Python

分類Dev

バックグラウンドサービスAndroidのスレッド

Related 関連記事

  1. 1

    Xcode 10以降、UIImageViewsetImageがバックグラウンドスレッドでクラッシュする

  2. 2

    Androidのバックグラウンドスレッド

  3. 3

    ScanCallbackのバックグラウンドスレッド

  4. 4

    処理中のバックグラウンドスレッド

  5. 5

    ZeroMQバックグラウンドスレッドの作成

  6. 6

    バックグラウンドスレッドでのKotlinrunBlocking

  7. 7

    GAEPythonバックグラウンドスレッドの終了

  8. 8

    Javaのバックグラウンドスレッド

  9. 9

    RxJavaシングルバックグラウンドスレッドスケジューラ

  10. 10

    バックグラウンドスレッドのディスク上のキャッシュイメージをグライドします

  11. 11

    バックグラウンドスレッドの速度低下メインUIスレッドビジュアルベーシック

  12. 12

    バックグラウンドとGCのエンドレススレッド

  13. 13

    バックグラウンドスレッドでの画像のスケーリングがクラッシュする-UIGraphicsImageRenderer

  14. 14

    .NetCoreキューのバックグラウンドタスク

  15. 15

    Android-バックグラウンドスレッドのガベージコレクション

  16. 16

    非同期タスクのバックグラウンドでdoで登録クラッシュを送信する

  17. 17

    バックグラウンドスレッドのフラスコアプリケーション

  18. 18

    バックグラウンドスレッド用のJPAセッションの作成

  19. 19

    バックグラウンドスレッドの使用とメッセージキューの使用

  20. 20

    バックグラウンドスレッド上のシングルトンデータストア

  21. 21

    BackgroundWorkerとバックグラウンドスレッド

  22. 22

    iOS開始バックグラウンドスレッド

  23. 23

    Xamarin.Formsバックグラウンドスレッド

  24. 24

    RestSharp非同期バックグラウンドスレッド

  25. 25

    GMSGeoCoder reverseGeocodeCoordinate:completionHandler:バックグラウンドスレッド上

  26. 26

    継承、バックグラウンドスレッド、RAII

  27. 27

    バックグラウンドリフレッシュを使用したAppleWatch

  28. 28

    バックグラウンドスレッドとしてのウォッチドッグ-Python

  29. 29

    バックグラウンドサービスAndroidのスレッド

ホットタグ

アーカイブ