modo-studio / SugarRecord

CoreData/Realm sweet wrapper written in Swift
MIT License
2.11k stars 223 forks source link

watchdog kill app when using CoreDataDefaultStorage in applicationDidBecomeActive #316

Closed tonnylitao closed 7 years ago

tonnylitao commented 7 years ago

App crash when launch after iOS system updated

Exception Type: EXC_CRASH (SIGKILL) Exception Codes: 0x0000000000000000, 0x0000000000000000 Exception Note: EXC_CORPSE_NOTIFY Termination Reason: Namespace SPRINGBOARD, 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 0x000000018ef7d188 mach_msg_trap + 8 1 libsystem_kernel.dylib 0x000000018ef7cff8 mach_msg + 72 2 CoreFoundation 0x000000018ff7a5d0 CFRunLoopServiceMachPort + 192 3 CoreFoundation 0x000000018ff781ec CFRunLoopRun + 1132 4 CoreFoundation 0x000000018fea62b8 CFRunLoopRunSpecific + 444 5 GraphicsServices 0x000000019195a198 GSEventRunModal + 180 6 UIKit 0x0000000195eed7fc -[UIApplication _run] + 684 7 UIKit 0x0000000195ee8534 UIApplicationMain + 208 8 MyApp 0x000000010003ec2c main (CoreDataDefaultStorage.swift:19) 9 libdyld.dylib 0x000000018ee895b8 start + 4

Context

I initial CoreData db with SugarRecord in applicationDidBecomeActive(). From the crashlog, it seems CoreDataDefaultStorage initial takes too much time to launch app. And system watchdog kill it.

Any suggestions? Should I initialise db in other places rather in applicationDidBecomeActive?

pepicrft commented 7 years ago

@TonnyTao it shouldn't be in applicationDidBecomeActive because this method is called every time the app comes from the background. You should add it to applicationDidFinishLaunching, that is called when the the app is first opened.