web-dev-qa-db-ja.com

Xcode 4がクラッシュログを象徴していない

Xcodeを4.0.1に更新しました。現在、テスターから、さらには電話からも受信したクラッシュログのシンボリック化に問題があります。

AdHocディストリビューションをビルドするとき、「Arhive」スキームを使用しています。次に、開発者の資格情報を使用して* .ipaファイルを作成します。

これは問題ですか?そして、これらのAdHocビルド用のdSymファイルが見つかりません。

37
Andrei Neacsu

Coobの答えに加えて、これらのディレクトリをSpotlightの無視リストに追加すると(システム環境設定→Spotlight→プライバシー)役立つことがわかります。

  • ~/Library/Developer/Xcode/DerivedData/(Xcode 4ビルドアーティファクト)
  • ~/Library/Application Support/iPhone Simulator/(iPhoneシミュレータ用のファイルシステム)

このような:

Spotlight settings to suppress unhelpful .app files

(詳細については このブログ投稿 を参照してください。)

Updatejoerick によるコメントから:「これは機能しますが、Instruments.appがデバッグシンボルなので、プロファイリングを行うには、プライバシーリストからDerivedDataを削除する必要がありました。」 -Instrumentsを使用する場合は、このことに注意してください。

24
Simon Whitaker

私にとって、323行目の編集もSpotlightの除外もそれを修正しませんでした。そのため、symbolicatecrashgithubにパッチバージョンを公開 で問題を追跡しました。/usr/local/bin/symbolicatecrashを置き換えるだけで、iOSクラッシュレポートが再びシンボリック化を開始します。

このパッチは.xcarchiveディレクトリの構造を想定しているため、Macアプリでは機能しない可能性があります。これは、デスクトップアプリでは保持できないようです。

編集:Spotlightがアーカイブのインデックスを作成していない場合でも問題が発生する可能性があります。ターミナルで次のコマンドを実行すると、インデックスを強制的に取得できます。

mdimport ~/Library/Developer/Xcode/Archives/

トラブルシューティングの詳細 ここ

24

シンボリックスクリプトに、適切なバイナリ/ dSYMを見つける際の問題があります。これはSpotlightを使用して行われ、多くの場合は失敗します。試してみることがいくつかあります。

  1. .appにスペースがないことを確認してください。

  2. シミュレータにインストールされているアプリのバージョンを検出している可能性があります(逆方向ですが、場合によってはこれが行われます)。シミュレータをリセットします。

  3. ビルドディレクトリをクリアします。

3
Alastair Stuart

今日も同じ問題がありました。 Webでの私の調査から、armv6ライブラリに問題があり、シンボリックプロセスが失敗します。 こちらの開発フォーラム で答えを見つけました。

アクセス権がない場合は、/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources/からsymbolicatecrashスクリプトのコピーを作成する必要があります。ファイルを編集し、323行目の「die」を「print」に置き換えます(これが機能しない理由です。スクリプトはここで失敗します)。

次に、クラッシュログに対してsymbolicatecrashを実行します。 323行目からエラーが表示されますが、すべてのyour行と変数を示します。システムライブラリの場合はまだ失敗しますが、独自のバグを修正するのに十分な情報が得られます。

お役に立てれば。

3
Hiltmon

次のようなクラッシュログで、IDに基づいてdSYMファイルを見つけるには:

バイナリイメージ:0x100000000-0x100021ff7 + com.developer.foobar 1.1(2)<D1B7F956-7D79-3D4D-BA53-E9EBB368A9F8> /Applications/FooBar.app/Contents/MacOS/FooBar

できるよ:

mdfind com_Apple_xcode_dsym_uuids == D1B7F956-7D79-3D4D-BA53-E9EBB368A9F8

「DWARF with dSYM」で構築されたOSXアプリの場合、dSYMファイルは実際には必要なく、手動でアプローチできます https://developer.Apple.com/library/content/technotes/tn2151/_index.html #// Apple_ref/doc/uid/DTS40008184-CH1-SYMBOLICATE_WITH_ATOS

さらに、バイナリのUIDを確認するには、次のようにします。

dwarfdump --uuid /Users/valexa/Desktop/GPSnote.app/GPSnote 

UUID:6194D2B0-4E61-3834-AD15-C279EB1848XX(armv7)
UUID:D1B7F956-7D79-3D4D-BA53-E9EBB368A9F8(armv7s)

0
valexa

私はこの問題、または同様の問題があったと思います。 Xcode 4.0では、テスターに​​よるクラッシュのシンボルが表示されませんでした。作成したxarchiveを開き、dsymファイルをそこからコピーして(右クリックして「パッケージの内容を表示」)、アーカイブフォルダーの横に配置することで、これを修正したようです。これが解決策であることを保証することはできません-当時、私は他の多くの解決策を試していましたが、今はシンボルがあり、以前はそうでなかったことがわかっています。試す価値がある?

0
Nic