2013-12-21 10 views
10

新しく購入したMacBook(このマシンをMB1と呼ぶ)でクラッシュログを象徴することを試みたのは初めてでしたが、失敗しました。 MB1にはMac OS X 10.9がプリインストールされていました。私はバンドル(Spotlightインデックスなし、Appleのsymbolicatecrashスクリプトはクラッシュログに一致する.dSYMバンドルを見つけることができません)のインデックスを作成していないSpotlightの問題を追跡しました。私は私の~/Library/Developer/Xcode/Archivesフォルダ内のいくつかの.xcarchiveバンドルを持っているがSpotlightで.dSYMバンドルのインデックスを作成する方法を教えてください。

mdfind "com_apple_xcode_dsym_uuids == *" 

は、何も印刷されない、と彼らは間違いなくそのUUID私はdwarfdump --uuidで印刷することができ.dSYMサブバンドルが含まれているので、私は私の結論に達しました。私も.dSYMバンドルをプロジェクトのビルドフォルダ(DerivedData)内にいくつか持っていますが、どれもインデックスに登録されていません。

したがって、短くて簡単な質問です:Spotlightに.dSYMバンドルのインデックスを付ける方法を教えてください。


この簡単な質問に対する簡単な答えはありません場合は、ここで私はすでにMB1にしようとしているものです:~/Library/Developer/Xcode/Archives内のファイルやフォルダの

  • チェック権限を(それらはすべてOK、755ですフォルダのため、ファイルのための644)
  • 実行mdimport ~/Library/Developer/Xcode/Archives(効果がありません)
  • 「システム環境設定>スポットライト>プライバシー」で最初に追加し、次に~/Library/Developer/Xcode/Archivesフォルダ(どちらかは効果がありません)を削除
  • インデックスは、ボリューム(それは)
  • 消去のために有効になっており、全体のインデックスmdutil -E /を再構築していることをmdutil -s /に確認してください(多分10〜15分かかりますが、それでも効果がありません)

もっと詳しく説明すると、私はMB1に切り替える前に、古いMacBook(このマシンをMB2と呼ぶ)を私の開発マシンでした。 MB2で私は決して記号化することに何の問題もありませんでした。 MB2にはMac OS X 10.8がインストールされていましたが、まだ積極的に開発していましたが、最近MB2をMac OS X 10.9にアップグレードしました。 MB2上mdfindを実行している

今日は、まだArchivesフォルダから、プロジェクトのDerivedDataビルドフォルダの両方から、私に.dSYMバンドルの多くを提供します。これらはMac OS X 10.8日の古いファイルですが、SpotlightはOSのアップグレードでインデックスを保持しているようです。私は新しいファイルが作成されるときにスポットライトがどのように動作するかを見るのは興味深いだろうと思ったので、私は次のようでした:

  1. 火のXcodeまでMB2に、新しいアーカイブを作成し、mdfindを実行します。これにより、DerivedDataビルドフォルダ内の中間.dSYMバンドルが見つかります。
  2. 中間.dSYMバンドルを削除し、再度mdfindを実行してください。今回は結果がありません。Archivesフォルダ内の.dSYMバンドルが見つかりません!
  3. 手順1で作成した.xcarchiveバンドルのコピーを作成し、そのコピーをユーザーのホームディレクトリのルートに置きます。実行mdfind。これにより、コピーされた.xcarchiveバンドル内の.dSYMサブバンドルが見つかります。

この時点で、~/Libraryは隠しフォルダであるため、Spotlightがその中のものにインデックスを付けるのを妨げるのは私の結論です。これは、~/Library内に通常のファイルを作成して検索(ヒットなし)した後、ファイルを~/Libraryの外に移動して再度検索する(1ヒット)ことで簡単に確認できます。残念ながら、この理論は、2つの理由でその鼻の上に平らに落ちる:

  • ~/Libraryは、すでに前10.9へのMac OS Xのバージョンに隠されたが、これは.dSYMファイル
  • 「隠し」フラグをインデックスからSpotlightを防ぐことはなかったですSpotlightがインデックス作成の対象から除外するすべてではない:フォルダをchflags nohidden ~/Libraryで再表示すると、Spotlightに通常のファイルが表示されません。戻るMB1へ

:私はmdfindを実行し、すなわち、ユーザのホームディレクトリのルートに.xcarchiveバンドルのコピーを作成し、上記から、ステップ3を繰り返してみました。驚いたことに、MB1では、結果はMB2とは異なります:mdfindはまだ.dSYMバンドルがまったく見つかりません!


この時点で、私はあなたの助けをあきらめています。私の結論は、Mac OS X 10.9が何らかの原因で私の問題を引き起こしているということですが、私の人生では、なぜそうであるのか理解できません。それが助け場合は、ここでいくつかの追加設定の詳細は、次のとおりです。

  • MB1:Xcodeの5.0.2とXcodeがインストールされている4.6、5.0.2は(xcode-selectで設定)がデフォルトです。 Homebrewもインストールされています。このシステムは、Mac OS X 10.9のクリーンインストールです。
  • MB2:Xcode 4.5,4.6,5.0がインストールされ、4.6がデフォルトです。 MacPortsもインストールされています。システムは、アップグレードは、Mac OS X 10.9のインストールである(以前にインストールXcodeアプリケーションバンドル覗く

答えて

13

は、以下のSpotlightインポータを明らかに:。

このコマンドに

mdimport -g /Applications/Xcode-5.0.2.app/Contents/Library/Spotlight/uuid.mdimporter ~ 

を実行

caradhras:~ --> find /Applications/Xcode-5.0.2.app -name \*.mdimporter 
/Applications/Xcode-5.0.2.app/Contents/Applications/Application Loader.app/Contents/Library/Spotlight/MZSpotlight.mdimporter 
/Applications/Xcode-5.0.2.app/Contents/Library/Spotlight/uuid.mdimporter 

最終的にユーザーのホームディレクトリのルートにある.xcarchiveバンドルを索引付けします。NOT索引バンドルはしかし、私はこのフォルダに明示的にmdimportを指摘していますが、です。

質問が残る:なぜuuid.mdimporterが自動的に実行されないのですか?


ソリューションは、(ログアウト/ログインが十分であったかもしれない)、マシンを再起動したEDIT

~/Libraryの外アーカイブバンドルが正しくインデックス付けされています。

  • 私はソフトウェアのインストールに特権ユーザー(A)を使用していますが、通常の作業には別の権限のないユーザー(U)を使用しています。 Xcodeで開発中です。
  • 私は、ユーザIが再起動したことがないその時以来
  • でのXcodeをインストール時にユーザーUでログインし、また任意のログインが行われた(私はそれをシャットダウンするのではなく、一晩眠りに私のマシンを送信好みます) 。おそらく、アクティブなSpotlightインポータのリストは、ログアウト/ログイン時、または再起動後に更新される(たぶん起動サービスによって)。とにかく

、トラブルシューティング時に私はあなたが(別のユーザーが同時にアクティブ異なるSpotlightインポータを持つことができることに注意してください)mdimport -Lを実行して、アクティブSpotlightインポータの一覧を確認することができることがわかりました。当然のことながら、リブートの後にuuid.mdimporterが表示され、リブート前は表示されませんでした。

グーグルで見つけた便利なAppleドキュメントは、Troubleshooting Spotlight Importersです。


アーカイブフォルダが~/Libraryの外側に配置されるように最終的な解決策

設定Xcodeの。 Xcode 6では、[環境設定]ダイアログの[場所]タブでこれを実行できます。

+1

+1ありがとうございました! – Kalle

+1

その最終的な解決策は、そのトリックでした。ありがとうございました! – mbinna

+0

thk u。 Google検索結果の第2ページにも行きました;) – teriiehina

関連する問題