15

iOS アプリのクラッシュ ログがどのように記号化されるかについてはよく知っていますが、これは難問です。

Xcode 7.2 (7C68) で通常のアーカイブを使用してから App Store にアップロードするフローを使用して、TestFlight を通じてベータ版としてリリースされたビルド 2345 の MyApp があります。

xcarchive でバイナリの dwarfdump を実行すると、次のようになります。

dwarfdump --uuid MyApp.app/MyApp
UUID: 0BDA6D6F-3C0D-339E-842F-C2CB04199E10 (armv7) MyApp.app/MyApp
UUID: B2A69BEC-DF5E-33EA-A9E0-490EBF03074C (arm64) MyApp.app/MyApp

dSYM ファイルの dwarfdump は次のとおりです。

dwarfdump --uuid MyApp.app.dSYM
UUID: 0BDA6D6F-3C0D-339E-842F-C2CB04199E10 (armv7) MyApp.app.dSYM/Contents/Resources/DWARF/MyApp
UUID: B2A69BEC-DF5E-33EA-A9E0-490EBF03074C (arm64) MyApp.app.dSYM/Contents/Resources/DWARF/MyApp

ここまでは順調ですね。

ただし、バイナリの UUID が異なるビルド 2345 の [整理] > [クラッシュ] でクラッシュが発生しました。

0x100054000 - 0x1000fffff myapp arm64  <3715db2438743cf5aac1742d9a214c2c> /var/mobile/Containers/Bundle/Application/7313BC02-3F90-4F94-82E2-CBDC941E5D68/MyApp.app/myapp
0x100144000 - 0x1001e7fff AWSCore arm64  <c2aa13236d0437b98194c0487db69e68> /var/mobile/Containers/Bundle/Application/7313BC02-3F90-4F94-82E2-CBDC941E5D68/blink.app/Frameworks/AWSCore.framework/AWSCore
....

クラッシュレポートが同じビルドのものであることは確かですが、ここのUUIDは3715db2...私が期待している場合のものですb2a69bec...

私はビットコードを有効にしているので、オーガナイザーのアーカイブ ページから dSYM をダウンロードしようとしましたが (Apple がそうする必要はなかったので arm64 をビルドしましたが)、クラッシュ レポートの他の UUID/バイナリの dSYM を取得しましたが、myappバイナリ。実際、このmyappバイナリは、対応する dSYM がダウンロードされなかった唯一のバイナリです!

いくつか質問があります:

  1. 3715db2438743cf5aac1742d9a214c2cmyapp バイナリのバージョンはどこから来たのですか?
  2. クラッシュを象徴できるように、dSYM を取得するにはどうすればよいですか? Apple は、Xcode の「Download dSYMs」オプションでそれを返しません。
4

2 に答える 2

7

解決策を見つけたようです。

ビットコードを有効に設定した場合に可能です。必要な dSym を取得するには、[dSYM をダウンロード...] ボタン (Xcode / オーガナイザー / アーカイブ - アーカイブ情報を含む右側のパネル) を使用するか、iTunes Connect ([アクティビティ] タブ、ビルドの詳細のリンク) からダウンロードする必要があります。

iTunes コネクト

私の状況では、最後のオプションが役立ちました。

于 2016-11-09T14:24:32.733 に答える
0
  1. .xcarchive 内に保存された dSYM オーガナイザーでアーカイブを右クリックし、パッケージのコンテンツを表示します。そこにあるはずです。
于 2016-02-02T16:52:26.130 に答える