2014-11-01 13 views
6

Ứng dụng của tôi bị lỗi trong một số trường hợp. Không thể tìm thấy lý do & địa điểm xảy ra sự cố.Không thể hiểu vị trí của MyApp bị lỗi

Dưới đây là nhật ký sự cố (iPad/iOS 8.0.2).

Hardware Model:  iPad2,5 
OS Version:   iOS 8.0.2 (12A405) 
Report Version:  105 

Exception Type: EXC_CRASH (SIGABRT) 
Exception Codes: 0x0000000000000000, 0x0000000000000000 
Triggered by Thread: 0 
Thread 0 Crashed: 
0 libsystem_kernel.dylib   0x306b3dfc __pthread_kill + 8 
1 libsystem_pthread.dylib   0x30733d0e pthread_kill + 58 
2 libsystem_c.dylib    0x30653934 abort + 72 
3 libc++abi.dylib     0x2f864bb8 abort_message + 84 
4 libc++abi.dylib     0x2f87e66a default_terminate_handler() + 262 
5 libobjc.A.dylib      0x30052f0e _objc_terminate() + 190 
6 libc++abi.dylib     0x2f87bdec std::__terminate(void (*)()) + 76 
7 libc++abi.dylib     0x2f87b5ac __cxa_throw + 108 
8 libobjc.A.dylib      0x30052d46 objc_exception_throw + 246 
9 CoreFoundation     0x225dfe58 +[NSException raise:format:arguments:] + 100 
10 Foundation      0x232af2c4 -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 88 
11 BaseBoard      0x270a08d8 __25-[BSAction sendResponse:]_block_invoke + 140 
12 libdispatch.dylib    0x305bc99c _dispatch_barrier_sync_f_invoke + 44 
13 BaseBoard      0x270a0842 -[BSAction sendResponse:] + 98 
14 UIKit        0x25fd54d0 -[UIFetchContentInBackgroundAction sendResponse:] + 212 
15 libdispatch.dylib    0x305b3610 _dispatch_call_block_and_release + 8 
16 libdispatch.dylib    0x305b35fc _dispatch_client_callout + 20 
17 libdispatch.dylib    0x305be2b2 _dispatch_main_queue_callback_4CF$VARIANT$mp + 714 
18 CoreFoundation     0x225a5e5c __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 4 
19 CoreFoundation     0x225a457c __CFRunLoopRun + 1508 
20 CoreFoundation     0x224f1dac CFRunLoopRunSpecific + 472 
21 CoreFoundation     0x224f1bbe CFRunLoopRunInMode + 102 
22 GraphicsServices    0x2985404c GSEventRunModal + 132 
23 UIKit        0x25abda2c UIApplicationMain + 1436 
24 MyApp        0x000fb9f2 main (main.m:15) 
25 libdyld.dylib      0x305eeaac start + 0 

Thanks in advance ..

+0

Thêm một ngoại lệ toàn cầu Breakpoint http://blog.manbolo.com/2012/01/23/xcode- mẹo-1-break-on-exceptions – Flexicoder

+0

Cảm ơn @flexicoer đã trả lời. Vụ tai nạn này là trong bản phát hành của tôi. Và không có các bước để tái tạo sự cố này. Điều duy nhất tôi có, nhật ký sự cố này. – Vardhan

+0

Bạn có thể tìm ra điều này không? Tôi thấy một sự cố tương tự trong ứng dụng của mình và tôi không thể tìm ra nơi nó đang gặp sự cố. – tbag

Trả lời

12

Thông điệp ngoại lệ tương ứng với vết đống là:

"yêu cầu này đã được thiến - bạn có thể không gọi -sendResponse: hai lần cũng không phải sau khi mã hóa nó "

Mặc dù không thể chắc chắn từ ngăn xếp một mình, bạn rất có thể gọi là com pletionHandler được chuyển đến ứng dụng-delegate của ứng dụng của bạn: performFetchWithCompletionHandler: phương thức hai lần.

1

Tìm nạp nền được kích hoạt bởi hệ điều hành, dựa trên giá trị bạn đặt trong phương thức setMinimumBackgroundFetchInterval:. Những gì bạn nhìn thấy trông giống như những gì hệ điều hành làm với ứng dụng của bạn nếu quá trình tìm nạp nền mất quá nhiều thời gian.

Bạn được chỉ định một khoảng thời gian (30 giây) để thực hiện công việc của mình. Nếu bạn không hoàn thành, hệ điều hành sẽ giết ứng dụng của bạn với ngoại lệ trên. Đọc thêm về cách kéo dài thời gian cần thiết here.

Về cơ bản, bạn cần phải yêu cầu nhiều thời gian để hoàn thành công việc nền của bạn như thế này:

- (void)applicationDidEnterBackground:(UIApplication *)application 
{ 
    bgTask = [application beginBackgroundTaskWithName:@"MyTask" expirationHandler:^{ 
     // Clean up any unfinished task business by marking where you 
     // stopped or ending the task outright. 
     [application endBackgroundTask:bgTask]; 
     bgTask = UIBackgroundTaskInvalid; 
    }]; 

    // Start the long-running task and return immediately. 
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ 

     // Do the work associated with the task, preferably in chunks. 

     [application endBackgroundTask:bgTask]; 
     bgTask = UIBackgroundTaskInvalid; 
    }); 
} 
Các vấn đề liên quan