10

クラッシュをシンボル化するのを手伝ってくれませんか?

Xcode 7.3 では、[ウィンドウ] -> [オーガナイザー] -> [クラッシュ] で、最新の TestFlight ビルドからのクラッシュ レポートがあります。それらはこの Mac 上に構築されており、対応する dSYM を含むすべてのアーカイブが [アーカイブ] タブにあります。アプリは多数のフレームワークとメイン アプリに分割されており、多くは Swift と Objective C が混在しています。クラッシュ ログでは、フレームワークとアプリの名前が正しくリストされているのを確認できますが、私のフレームワークとアプリのエントリはすべてapp は 16 進数です。UIKit は問題なくシンボリック化されています。

iTunes Connect を見ると、「シンボルを含む」に「はい」と表示され、dSYM をダウンロードできます。ビルド時に、「デバッグ情報形式」オプションが「dSYM 付きの DWARF」に設定されました。「コピー中にデバッグシンボルを削除する」と「リンクされた製品を削除する」を「いいえ」に設定して、違いが生じるかどうかを確認しました。そうではありませんでした。

/usr/bin または /Applications/Xcode.app/Contents/SharedFrameworks/DTDeviceKitBase.framework/Versions/A/Resources/symbolicatecrash でも、自分のシステムで symbolicatecrash アプリを見つけることができませんが、古い Xcode 5 を使用しています。それをつかむことができました。ただし、シンボルは解決されません。

アプリのプロファイルを作成すると、Instruments でも同じ問題が発生します。UIKit は正常にシンボル化されますが、フレームワークとアプリでは 16 進数しか表示されません。

これについて多くの投稿があったことは知っていますが、7.3 ベータ期間から現在に至るまで、多くの記事を調べてきましたが、解決策が見つかりませんでした。

4

6 に答える 6

13

の場所がsymbolicatecrashXcode 7.3 で変更されました。

/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash

于 2016-03-24T16:22:23.953 に答える
2

こっちも一緒。7.3 にアップグレードした後、symbolicatecrash を見つけるのに苦労しました。

ただし、atosは引き続き使用できます。ここでチュートリアルを見つけることができますXcode 6.1 を使用して iOS8 でクラッシュを象徴する

于 2016-03-23T23:49:43.983 に答える
1

私は自分のアプリケーションでシンボルをアップロードしていないため、App Store はシンボル化できません。次の回避策を使用して、XCode がストアからダウンロードするすべてのクラッシュログをシンボル化しました。これらの手順は XCode 8 用です。シンボリック クラッシュ アプリのパスは、XCode のバージョンごとに異なりますが、考え方は各バージョンで同じである必要があります。

  1. シンボルをシンボリケーターが見つけられる場所に配置します: シンボル (.dsym) ファイルをアーカイブ ディレクトリに配置します。これは、オーガナイザーに移動し、アーカイブをコンテキストクリックして、[ファインダーに表示] を選択することで見つけることができます。Archives ディレクトリ (例: /Users/USERNAME/Library/Developer/Xcode/Archives) まで移動し、そこに dsym ファイルを配置します。他の場所にもある可能性がありますが、これが機能することを確認しただけです。
  2. クラッシュ ログをダウンロードします。XCode で、シンボリケートするビルドのクラッシュ ログをダウンロードしたことを確認します ([オーガナイザー] -> [クラッシュ] をクリックし、アプリをクリックして、右側のパネルでアプリのバージョンを選択します)。アプリのリスト)。
  3. ディスク上のクラッシュ ログを見つけます。アプリのバージョンとビルド番号が表示されているパネルで、いずれかのクラッシュをコンテキスト クリックし、[Show in Finder] を選択します。「Crashes Folder」まで移動し、次の場所をメモします。/Users/USERNAME/Library/Developer/Xcode/Products/com.company-name.Your-App/VERSION/Crashes
  4. コマンド ラインで、symbolicatecrash の DEVELOPER_DIR をセットアップします。ターミナル ウィンドウを開いて、ステップ 3 の crashes ディレクトリに移動し、DEVELOPER_DIR を次のように設定しますcd /Users/USERNAME/Library/Developer/Xcode/Products/com.companyname.Your-App/VERSION/Crashes/ export set DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer
    (これは、XCode アプリ バンドル内の「Developer」ディレクトリの場所である必要があります)。
  5. symbolicatecrash スクリプトを見つけます。symbolicatecrash は、ステップ 1 の dsym を使用してシンボリック クラッシュ ログを見つける方法を知っています。Apple はそれを xcode のバージョンからバージョンに移動します。次のように見つけることができますfind /Applications/Xcode.app/ -name symbolicatecrash。XCode 8では、/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash
  6. クラッシュ フォルダをバックアップする クラッシュ フォルダをバックアップすることをお勧めします ( /Users/USERNAME/Library/Developer/Xcode/Products/com.companyname.Your-App/VERSION/Crashes/)
  7. すべてのクラッシュをシンボル化する: 手順 4 の Crashes ディレクトリにいることを確認し、次のように
    for i in `find . -type f -name \*.crash`; do cat $i | /Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash --output $i.sym; mv $i.sym $i; done;
    入力してください。
  8. クラッシュの表示クラッシュ オーガナイザーに戻り、象徴化されたクラッシュを表示します
于 2016-10-21T16:09:24.203 に答える
0

xCode 7.2 から symbolicatecrash ファイルをコピーして、xCode 7.3 の次のパスに貼り付けようとしました。

/Applications/Xcode.app/Contents/SharedFrameworks/DTDeviceKitBase.framework/Versions/Current/Resources/

クラッシュ レポートを象徴するために Crasher スクリプトを 使用しています。 Crasher の使用方法

于 2016-03-24T07:41:28.537 に答える