これは私の最初の投稿ですので、私が何か間違ったことをしていると思われる場合は、教えてください; 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:私は英語を母国語としないので、何かおかしなことがわからない場合は、遠慮なく質問してください。別の言葉でもう一度説明します。