5

XcodeデバッガウィンドウでのカスタムObjective-Cオブジェクトのデバッグを簡素化するために、関連するAppleドキュメントとXcodeの組み込みデータフォーマッタをガイドとして使用して、オブジェクトごとにデータフォーマッタ文字列のセットを作成しました。

カスタムサマリー文字列は、Xcodeに付属のデータフォーマッターとともに/ Developer / Library / Xcode /CustomDataViews/に配置するとうまく機能します。ただし、ユーザーがそのディレクトリへの書き込み権限を持っていない可能性があり、カスタムフォーマッタと組み込みのフォーマッタを混在させると混乱する可能性があるため、そうはしません。同様に、 〜/ Library / Application Support / Apple / Developer Tools / CustomDataViews / CustomDataViews.plistに自分のエントリを追加することもできますが、そのファイルはデフォルトを上書きするユーザー定義の値用であり、そのエントリはXcodeデバッガーGUI。私が本当に望んでいるのは、Xcodeがそれらを認識できるように、データフォーマッターを含むファイルを特定の場所に配置できるようにすることですが、ユーザーは必要に応じて(別のファイルで)私の設定を選択的にオーバーライドできます。

問題は、バンドルを作成して(このAppleサンプルコードの例に従って)、それをインストールするとき(/ Developer / Library / Xcode /CustomDataViews/または任意のLibrary/Application Support / Apple / Developer Tools / CustomDataViews /パスに)あることです。 、Xcodeはカスタムフォーマッタを認識または使用しません。

データフォーマッタバンドルの詳細に関するドキュメントはやや不十分です(ほとんどの場合、Xcode.app / Contents / PlugIns / GDPMIDebugging.xcpluginの単一のヘッダーファイル)。これは、機能がXcodeの主要な機能の1つではないためと考えられます。;-)どんな助けでも大歓迎です。

4

2 に答える 2

4

私は最近これに戻ることができました、そして私は答えを見つけたと信じています.

データ フォーマッタ バンドルには、「 Contents/Resources/*.plist 」という名前のプロパティ リスト ファイルを内部に含める必要があることは既に知っていました。ただし、バンドルが実際に機能するには、バンドルと同じ名前の実行可能ファイルがContents/MacOS/ディレクトリに含まれている必要があります。foo.c私の知る限り、バイナリをコンパイルしてリンクする限り、完全に空のファイルでも十分です。Xcode のストック CFPlugin バンドル プロジェクトの Info.plist に触れる必要さえありませんでした。ターゲット リソースに CustomDataViews.plist を含めるだけです。

扱っているオブジェクトや構造体を表示するために C 関数を定義する必要がないので、はるかに簡単な方法は、plist ファイル (名前は何でも構いません — 私の場合はCHDataStructures.plist) を次の 2 つの場所のいずれかに置くことです。

  • ~/Library/Application Support/Developer/Shared/Xcode/CustomDataViews/
  • /Library/Application Support/Developer/Shared/Xcode/CustomDataViews/

単純な plist ファイルはサイズが小さく、簡単に作成でき、変更も簡単です。また、バンドルを使用する場合とは異なり、plist を追加、削除、または変更するときに Xcode を再起動する必要はありませんでした。新しいデバッグ セッションを開始するだけで、新しいデータ フォーマッタが更新されます。サンプルコードが示していたので、バンドルを作成しただけだと思いますが、シナリオの利点を判断できないため、plist に固執しています。

于 2009-07-08T05:14:26.383 に答える
2

Xcode 2.5および3.0以降、このような場所は、1つのシステムに共存する複数のバージョンのXcodeをサポートするように変更されました。カスタムデータフォーマッタはLibrary/Application Support/Developer/Shared/CustomDataViews、ローカル( )ドメイン/またはユーザー(~)ドメインのいずれかのディレクトリ""に配置する必要があります。そうすれば、次にXcodeを起動したときに利用できるはずです。

上記のパスのは、特定のXcodeバージョンに固有の何かを作成している場合などSharedのバージョン番号にすることができます。3.03.1

于 2009-06-19T18:35:27.333 に答える