9

Crashlytics で以下に示すクラッシュが発生しています。

これがアプリ内のどこから来るのか理解できません。残念ながら、私はこのクラッシュを自分で生成することはできませんでしたが、実際に発生しています。

アプリ名への参照は 1 つだけであり、これがアプリのどこから来ているかを示すものは何もありません。

アプリのどこでこれが発生したかに関するデータがないという事実は、didFinishLaunchingWithOptions 中に問題が発生したことを示しているため、実際には詳細を表示するのに十分な距離に達していませんか? または、問題の場所を示すデータがログに不足している他の理由がありますか?

これを追跡する方法を誰か教えてもらえますか?

    Thread : Crashed: com.apple.main-thread
0  libobjc.A.dylib                0x0000000195de3bd0 objc_msgSend + 16
1  CoreFoundation                 0x0000000183fd9458 CFRelease + 524
2  CoreFoundation                 0x0000000183fe5a18 -[__NSArrayM dealloc] + 152
3  libobjc.A.dylib                0x0000000195de9724 (anonymous namespace)::AutoreleasePoolPage::pop(void*) + 564
4  CoreFoundation                 0x0000000183fdd074 _CFAutoreleasePoolPop + 28
5  Foundation                     0x0000000184f0e588 -[NSAutoreleasePool release] + 148
6  UIKit                          0x0000000188be03f4 -[UIApplication _run] + 588
7  UIKit                          0x0000000188bdaf40 UIApplicationMain + 1488
8  _THE_APP_NAME_                 0x0000000100031e20 main (main.m:16)
9  libdyld.dylib                  0x000000019647aa08 start + 4

Crashed: com.apple.main-thread
EXC_BAD_ACCESS KERN_INVALID_ADDRESS at 0x00000000f5b2beb8

このスレッドに寄せられたコメントに関連して、以下を追加します。このコードは、通常のラベル設定など以外の主な UI 関連の変更であり、問​​題は見られません。

以下のコードは、AppDelegate.m、DidFinishLaunchingWithOptions に追加されました。

クラッシュは私が再現できたものではなく、毎日発生するのはほんの一握りのケースですが、タイミングの問題である可能性があり、UI がメッセージを受信できないのではないかと思っています。

ご意見を歓迎します。同意する場合は、代わりにコードを ViewController の ViewDidLoad に移動する必要があります。

[[UITabBarItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:
                                                               [UIColor lightGrayColor], NSForegroundColorAttributeName,
                                                               [UIFont fontWithName:@"Helvetica Neue" size:16],
                                                               NSFontAttributeName, nil] forState:UIControlStateNormal];
            [[UITabBarItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:
                                                               [UIColor darkGrayColor], NSForegroundColorAttributeName,
                                                               [UIFont fontWithName:@"Helvetica Neue" size:16],
                                                               NSFontAttributeName,
                                                               nil] forState:UIControlStateSelected];

    [[UITabBar appearance] setBarTintColor:[UIColor colorWithRed:0.44 green:0.99 blue:0.45 alpha:1]];

    [[UINavigationBar appearance] setBarTintColor:[UIColor colorWithRed:0.44 green:0.99 blue:0.45 alpha:1]];

    [[UINavigationBar appearance] setTintColor:[UIColor darkGrayColor]];

    [[UINavigationBar appearance] setTitleTextAttributes:@{NSForegroundColorAttributeName : [UIColor darkGrayColor], NSFontAttributeName : [UIFont fontWithName:@"Helvetica Neue" size:22]}];

    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
4

2 に答える 2

6

コードをよく検索した後、ここobjc_msgSend [__NSArrayM dealloc] クラッシュ レポート 時々 Crashlyticsの別の投稿に出くわしました。

Crashlytics には 3.0.9 でバグがあり、それがこの問題の原因だったようです。

SDKを更新し、すべて問題ありません。

于 2015-08-06T10:30:05.390 に答える