1

dSYMについて質問があります。私は自分のアプリで実験を行い、それに次のコードを追加しました。

if (currentMenuPage_ == MenuPageAttrsVals) {
    return ((ValueAndId *) [currentValues_ objectAtIndex:-1]).name;
}

予想どおり、アプリケーションがクラッシュし、クラッシュログが生成されました。

ただし、Xcodeとatosは、クラッシュが発生した正確な行を教えてくれません。

2   CoreFoundation                  0x3192c23d -[__NSArrayI objectAtIndex:] + 165
3   MyApp                           0x00053487 0x49000 + 42119
4   MyApp                           0x0005102d 0x49000 + 32813

適切なdSYMを生成するためにアプリをビルドするときに、いくつかの特別な設定を行う必要がありますか?

電話をかけるdwarfdump --uuid MyApp.app.dSYMと番号がもらえます。この番号はクラッシュログのどこかに表示されますか?

4

1 に答える 1

2

その番号は、Binary Imagesセクションの下の最初の行に表示されます。(たとえば、小文字と-文字なしなど、フォーマットが異なる場合があります)。

ビルドを実行するたびに、このUUIDが変更されることを忘れないでください。以前のdSYMを保存しなかった場合、それはそれを象徴しません。

多くの(任意の)コードを変更しなかった場合は、Binary ImagesセクションのUUID文字列を(そこにフォーマットを保持して)最新のdSYMからの新しいものに置き換えることができます。

記号化が機能せず、UUIDが正しい場合、そのフォルダーはSpotlightによってインデックス付けされていない可能性が高いため、記号化スクリプトはdSYMを見つけることができません。

于 2012-12-01T14:30:36.027 に答える