3

重複の可能性:
iPhoneアプリでエラー0x8badf00dが発生しますが、通常は疑わしいものではありません

これは私の最初の投稿ですので、私が何か間違ったことをしていると思われる場合は、教えてください; D

まず第一に、私は成功せずに研究を行ってきました、そして私は何が起こっているのか理解できません。

私はユニバーサルアプリを開発していて、それをテストするために使用したすべてのデバイス(iPhone 3GS、iPhone 4、iPhone 4S、iPad 2、iPod Touch 4G)でうまく機能しました。ただし、一部のお客様からは、起動時にアプリが終了することが報告されています(モデルやiOSのバージョンも異なるため、共通の要因はないようです。つまり、特定のデバイスモデル/ iOSバージョンでのみアプリが失敗するわけではありません)。

そのうちの1人はとても親切だったので、彼は私にクラッシュレポーターをくれました。これは一般的な0x8badf00dの問題のようです(didFinishLaunchingWithOptionsができるだけ速く返されるように、何らかの方法でスタートアップを最適化する必要があります)。デバイスを再起動し、バックグラウンドで他のアプリを閉じたり、一時停止したりすると、機能しました。これがそのクラッシュレポーターです(なぜそれが以下に投稿された2番目のクラッシュレポーターと同じ程度で記号化されていないのかわかりません。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

その後、私の仲間の1人がiPhone 4を持ってきましたが、これは明らかに同じ問題が原因でアプリが機能しませんでした。クラッシュレポーターは0x8badf00dも表示しましたが、以前の再起動の「ソリューション」は機能しませんでした。さらに、これら2つのクラッシュには違いがありました。最初のクラッシュはスプラッシュ画像が表示されている間に数秒でクラッシュしましたが、2番目のクラッシュははるかに時間がかかりました(何度か試行しましたが、最初のクラッシュよりも遅いままでした)。私は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)

私は今何をすべきか見当がつかない。デバイスの大部分は問題なくアプリを起動し、デバイスの別の部分は一部のアプリを再起動/閉じると消えた「悪い食べ物」を持っていました、そしていくつか(今では顧客の1つと私たちのデバイス)はアプリを再起動/閉じても起動しません。

前にも言ったように、iOS固有のデバイス/モデルやiOSバージョンの場合はないようです。さらに奇妙なのは、Appleが私のアプリを検証し、クラッシュやバグを報告しなかったことです。実際、彼らは、Info.plistがなかったため、アップロードした最初のバイナリを拒否しました。そのため、デバッグ時には機能しましたが、最終的なアプリとして実行すると機能しませんでした。これは修正されましたが、関連する場合に備えてお知らせします。

何か案が?

前もって感謝します!

PS:私は英語を母国語としないので、何かおかしなことがわからない場合は、遠慮なく質問してください。別の言葉でもう一度説明します。

4

1 に答える 1

2

違いの考えられる理由は、使用しているデータの量である可能性があります。

すでに述べたように、おそらくスタートアップを最適化する必要があります。あなたは電話番号をロードしていますよね?これに時間がかかる場合はPhoneViewController、アクティビティインジケーターなどを使用してを開始および表示してから、スレッドを開始してデータを非同期でロードし、完了したらビューを更新してください。

于 2012-05-16T12:20:14.247 に答える