2012-05-16 2 views
3

Можно создать дубликат:
I get error 0x8badf00d in iPhone app, and is not the usual suspectIOS приложение повышения 0x8badf00d только на некоторых случайных устройств

Это мой первый пост здесь, так что если вы думаете, что я делаю что-то не так, скажите, пожалуйста, D

Прежде всего, я делаю исследования без успеха, и я не могу понять, что происходит.

Я разрабатываю универсальное приложение, и оно хорошо работает на каждом устройстве, которое я использовал для его тестирования (iPhone 3GS, iPhone 4, iPhone 4S, iPad 2 и iPod Touch 4G). Но некоторые клиенты сообщили, что приложение закрывается при запуске (также в разных моделях и версиях iOS, поэтому, похоже, нет общего фактора. Я имею в виду, что приложение не поддается только определенной модели устройства/версии iOS).

Один из них был настолько добр, что он дал мне репортера аварии. Похоже, что это общая проблема 0x8badf00d (мне нужно как-то оптимизировать запуск, чтобы didFinishLaunchingWithOptions возвращался как можно быстрее, я знаю). Перезагрузили устройство, закрыли другие приложения в фоновом режиме/приостановлено, а затем оно сработало. Вот это репортер аварийной ситуации (я не знаю, почему он не был символизирован в той же степени, что и второй репортер аварийной ситуации, опубликованный ниже. Я импортировал его на организаторе Xcode, и у меня есть необходимые файлы для обозначения):

Date/Time:  2012-05-15 00:42:19.074 +0200 
OS Version:  iPhone OS 5.0.1 (9A405) 
Report Version: 104 

Exception Type: 00000020 
Exception Codes: 0x8badf00d 
Highlighted Thread: 0 

Application Specific Information: 
com.myApp.free failed to resume in time 

Elapsed total CPU time (seconds): 2.400 (user 2.400, system 0.000), 12% CPU 
Elapsed application CPU time (seconds): 0.073, 0% CPU 

Last Exception Backtrace: 
0         0x3293a8bf + 848537791 
1         0x356021e5 + 895492581 
2         0x32883b6b + 847788907 
3 myApp       0x0000a82d -[PhoneViewController requestFinished:] (PhoneViewController.m:1679) 
4         0x3289922b + 847876651 
5 myApp       0x0002a0b1 -[ASIHTTPRequest reportFinished] (ASIHTTPRequest.m:2028) 
6         0x3289922b + 847876651 
7         0x31fc2757 + 838608727 
8         0x3290eb03 + 848358147 
9         0x3290e365 + 848356197 
10         0x3290d075 + 848351349 
11         0x328904dd + 847840477 
12         0x328903a5 + 847840165 
13         0x335a8fcd + 861573069 
14         0x36953743 + 915748675 
15 myApp       0x000033af main (main.m:27) 
16 myApp       0x00003368 0x1000 + 9064 


Thread 0: 
0 ???        0x3465c32c 0 + 879084332 
1 ???        0x35e77fe6 0 + 904364006 
2 ???        0x336cbf66 0 + 862764902 
3 ???        0x336c9348 0 + 862753608 
4 ???        0x356022de 0 + 895492830 
5 ???        0x336c93c0 0 + 862753728 
6 ???        0x336c944c 0 + 862753868 
7 ???        0x336ca820 0 + 862758944 
8 ???        0x35602230 0 + 895492656 
9 ???        0x32890540 0 + 847840576 
10 ???        0x328903a0 0 + 847840160 
11 ???        0x335a8fc8 0 + 861573064 
12 ???        0x3695373e 0 + 915748670 
13 myApp       0x000033aa main (main.m:27) 
14 myApp       0x00003364 0x1000 + 9060 

Позже один из моих товарищей принес iPhone 4, в котором приложение не работает, по-видимому, из-за той же проблемы. Репортер аварии также показал 0x8badf00d, но предыдущее «решение» перезагрузки не сработало. Кроме того, между этими двумя авариями была разница: первая разбилась за несколько секунд, пока появилось изображение всплеска, а второе заняло гораздо больше времени (я сделал несколько попыток, и он оставался медленнее первого). Я подключил iPhone, чтобы узнать, что происходит в консоли Xcode (выложил несколько строк после репортера сбоев). Вот авария репортер ...

Date/Time:  2012-05-15 11:57:30.227 +0200 
OS Version:  iPhone OS 5.1 (9B176) 
Report Version: 104 

Exception Type: 00000020 
Exception Codes: 0x8badf00d 
Highlighted Thread: 0 

Application Specific Information: 
com.myApp.free failed to launch in time 

Elapsed total CPU time (seconds): 12.410 (user 12.410, system 0.000), 63% CPU 
Elapsed application CPU time (seconds): 7.302, 37% CPU 

Thread 0 name: Dispatch queue: com.apple.main-thread 
Thread 0: 
0 libsystem_kernel.dylib   0x35069dcc __open + 8 
1 DataDetectorsCore    0x30c8ca60 DDmmap + 8 
2 DataDetectorsCore    0x30c860ea DDCacheCreateFromFileAtPathWithExtraChecks + 14 
3 DataDetectorsCore    0x30c860b8 DDCacheCreateFromSystemCache + 1252 
4 DataDetectorsCore    0x30c85a16 DDScannerCreateWithType + 14 
5 DataDetectorsCore    0x30c85aaa DDScannerCreate + 6 
6 Foundation      0x3118cac8 -[NSDataDetector initWithTypes:error:] + 960 
7 Foundation      0x3118c6ec +[NSDataDetector dataDetectorWithTypes:error:] + 44 
8 myApp       0x00004c0c -[PhoneViewController getTelfNumbers] (PhoneViewController.m:213) 
9 myApp       0x00007062 -[PhoneViewController viewDidLoad] (PhoneViewController.m:864) 
10 UIKit       0x32479e3e -[UIViewController awakeFromNib] + 106 
11 UIKit       0x3250c2ec -[UINib instantiateWithOwner:options:] + 1236 
12 UIKit       0x3247a4ac -[UIViewController _loadViewFromNibNamed:bundle:] + 240 
13 UIKit       0x32357dfa -[UIViewController loadView] + 82 
14 UIKit       0x322cddb8 -[UIViewController view] + 44 
15 UIKit       0x3232d7de -[UITabBarController transitionFromViewController:toViewController:transition:shouldSetSelected:] + 86 
16 UIKit       0x3232d77c -[UITabBarController transitionFromViewController:toViewController:] + 24 
17 UIKit       0x3232d0b6 -[UITabBarController _setSelectedViewController:] + 294 
18 UIKit       0x3232cdea -[UITabBarController setSelectedIndex:] + 234 
19 myApp       0x00003f1e -[AppDelegate application:didFinishLaunchingWithOptions:] (AppDelegate.m:294) 
20 UIKit       0x322cce4c -[UIApplication _callInitializationDelegatesForURL:payload:suspended:] + 1176 
21 UIKit       0x322c697e -[UIApplication _runWithURL:payload:launchOrientation:statusBarStyle:statusBarHidden:] + 402 
22 UIKit       0x32294c64 -[UIApplication handleEvent:withNewEvent:] + 1004 
23 UIKit       0x32294708 -[UIApplication sendEvent:] + 48 
24 UIKit       0x322940dc _UIApplicationHandleEvent + 5820 
25 GraphicsServices    0x364c9224 PurpleEventCallback + 876 
26 CoreFoundation     0x3524a51c __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 32 
27 CoreFoundation     0x3524a4be __CFRunLoopDoSource1 + 134 
28 CoreFoundation     0x3524930c __CFRunLoopRun + 1364 
29 CoreFoundation     0x351cc49e CFRunLoopRunSpecific + 294 
30 CoreFoundation     0x351cc366 CFRunLoopRunInMode + 98 
31 UIKit       0x322c5a0c -[UIApplication _run] + 544 
32 UIKit       0x322c2e76 UIApplicationMain + 1074 
33 myApp       0x000033a8 main (main.m:27) 
34 myApp       0x00003360 0x1000 + 9056 

... а вот линии выброшенные на консоли:

2012-05-16 10:52:26.440 myApp[315:707] DDCache: mmap failed with error 12 
2012-05-16 10:52:26.444 myApp[315:707] DataDetectorsCore: mmapping the cache file failed 
2012-05-16 10:52:26.466 myApp[315:707] DDCache: mmap failed with error 12 
2012-05-16 10:52:26.470 myApp[315:707] DataDetectorsCore: mmapping the cache file failed 
2012-05-16 10:52:26.485 myApp[315:707] DDCache: mmap failed with error 12 
2012-05-16 10:52:26.490 myApp[315:707] DataDetectorsCore: mmapping the cache file failed 
2012-05-16 10:52:26.509 myApp[315:707] DDCache: mmap failed with error 12 
2012-05-16 10:52:26.514 myApp[315:707] DataDetectorsCore: mmapping the cache file failed 
2012-05-16 10:52:26.529 myApp[315:707] DDCache: mmap failed with error 12 
2012-05-16 10:52:26.533 myApp[315:707] DataDetectorsCore: mmapping the cache file failed 
2012-05-16 10:52:26.548 myApp[315:707] DDCache: mmap failed with error 12 
[...] 
(always the same two lines) 

Я не имею ни малейшего понятия о том, что теперь делать. Большая часть устройств запускала приложение без проблем, другая часть устройств имела «еду плохую пищу», которая исчезла после перезагрузки/закрытия некоторых приложений, а некоторые (к настоящему времени клиентское и одно из наших устройств) могут Не запускайте его даже при перезагрузке/закрытии приложений.

Как я уже говорил ранее, похоже, что не относится к конкретному устройству/модели iOS или версии iOS. Что более странно, так это то, что Apple проверила мое приложение, и они не сообщили о сбоях или ошибках. Ну, на самом деле они это сделали, они отклонили первый двоичный файл, который я загрузил, потому что у меня не было Info.plist, поэтому он работал при отладке, но не выполнял его в качестве окончательного приложения. Это было исправлено, но я даю вам знать это на всякий случай.

Любая идея?

Спасибо заранее!

PS: Я не являюсь носителем английского языка, поэтому, если есть что-то странное, что вы не понимаете, не стесняйтесь спрашивать, и я попытаюсь объяснить это снова другими словами.

+0

Ваш письменный английский лучше, чем у многих носителей языка! На ваш вопрос уже был дан ответ: http://stackoverflow.com/questions/1282491/i-get-error-0x8badf00d-in-iphone-app-and-is-not-the-usual-suspect – jlehr

+0

Спасибо вам два! Я видел вопрос, на который вы ссылаетесь, но, к сожалению, это не помогло моей проблеме. Но теперь я думаю, что я приближаюсь к решению благодаря ответу robbash. Спасибо вам все равно :) –

ответ

2

Возможной причиной различий может быть количество данных, с которыми вы работаете.

Как вы уже сказали, вероятно, вам следует оптимизировать ваш запуск. Вы загружаете номера телефонов, верно? Если это может занять некоторое время, попробуйте запустить и отобразить PhoneViewController с индикатором активности или аналогичным, затем запустите поток для асинхронной загрузки данных и обновления представления по завершении.

+0

Я думал, что все, что мне нужно было оптимизировать или изменить для сторожевого пса, чтобы не убить мое приложение, должно было быть внутри didFinishedLaunching: WithOptions :, но ваш ответ заставил меня подозревать в этом PhoneViewController. Я поместил некоторые NSLogs здесь и там в viewDidLoad: из PhoneViewController, и кажется, что он тоже выполняется, а не только код внутри doneFinishedLaunching: WithOptions: из AppDelegate. Таким образом, проблема должна быть там. Странно, что эти NSLogs появляются дважды, как если бы этот viewDidLoad вызывался дважды, но я не знаю, почему. Большое спасибо! –

Смежные вопросы