20

デバイスで実行されているアプリで XCode のタイム プロファイラーを実行しようとしていますが、シンボル名が0x2fe26643ではなく のように表示され[MyClass myMethod]ます。アプリを再記号化する必要があることはわかっていますが、その方法がわかりません。

このようないくつかの回答とこれは、「再シンボリケート」を押し、リストでバイナリを見つけてから、「検索」を押してdSYMを手動で見つけるように言っています。私のアプリは、というリストにありませんdSYM Locations:

ここに画像の説明を入力

結果を記号化するにはどうすればよいですか?

更新:再記号化を試みたときの YouTube クリップを投稿しました: http://www.youtube.com/watch?v=CcLGRNkmako

4

6 に答える 6

12

デバイスでアプリをプロファイリングしようとしたときに、同じ問題が発生していました (シミュレーターでは正常に機能しました)。再シンボリック化しようとすると、アプリのバイナリが「dSYM Locations」ダイアログリストにまったく表示されなかったため、他の回答が示唆しているように、それを選択してから「検索」ボタンを使用して適切な dSYM を関連付けることができませんでした。 .

Xcode で [スキームを編集] に移動し、プロファイル ビルドを [リリース] ではなく [デバッグ] に変更することで、デバイス プロファイリングでシンボリケーションを取り戻すことができました。

于 2012-10-06T21:02:39.830 に答える
9

これが、デバッグモードに切り替えずにプロファイリングを有効にするために行ったことです。これはXcode4.5.1用です

  1. 既存の「リリース」構成に基づいて、新しい「プロファイル」ビルド構成を作成します。プロジェクトナビゲーターでプロジェクトを選択して、プロジェクトエディターを開きます。プロジェクトエディタでプロジェクトを選択し、[情報]ボタンをクリックします。情報ペインの[構成]セクションを展開し、セクションの下部にある[追加](+)ボタンをクリックします。新しい構成の開始点として、ポップアップメニューから既存の「リリース」構成を選択します。コピーの名前を選択し、「プロファイル」と入力します。詳細については、Xcodeユーザーガイドを参照してください。

  2. 「プロファイル」構成のコード署名IDを「iPhoneDeveloper」(または「デバッグ」構成と同じ)に設定します。「ビルド設定」ボタンをクリックして、プロジェクトのビルド設定を表示します。プロジェクト内のすべてのターゲットの新しい構成でビルド設定を変更するには、プロジェクトレベルでそれらを編集します。個々のターゲットのビルド設定を変更するには、そのターゲットを選択します。プロジェクトレベルで編集する場合は、後で必ずターゲットレベルを再確認してください。ターゲット設定はプロジェクト設定を上書きします。コード署名IDは、「コード署名」セクションにあります。

  3. 「プロファイル」構成の「デバッグシンボルの生成」設定が「はい」になっていることを確認します。私の場合はすでにYESでした。

  4. 「プロファイル」スキームで使用する新しい「プロファイル」構成を設定します。メニューから「製品」->「スキームの編集」を選択し、左側の「プロファイルappname.app」タブを選択してから、「プロファイル」を選択します。 「ビルド構成」。

  5. appname.entitlementsファイルで、「get-task-allow」プロパティをYESに設定します。

  6. Altキーを押して、メニューから[Product]-> [CleanBuildFolder]を選択します。

  7. 次に、メニューから[製品]-> [プロファイル]を選択すると、準備が整います

これらすべてを行わないと、あらゆる種類の奇妙なことが起こる可能性があります。シンボルがまったく表示されていないか、ライブラリシンボルのみが表示されています。最初にデバッグビルドを実行し、その後プロファイルを作成した場合にのみシンボルが表示されます(つまり、シンボルはデバッグビルドから誤って取得されている可能性があります)。プロファイラーからUUIDの不一致について不満があり、悪名高い「資格が一致しません」というエラーが発生しました(詳細についてはこちらをご覧ください)。

于 2012-11-23T11:58:26.217 に答える
2

「検索」ボタンを押してからアプリを検索することを意味します~/Library/Developer/Xcode/DerivedData。ただし、次のように動作するようです。

  • 環境設定 > 検索パス
  • 追加~/Library/Developer/Xcode/DerivedData(私は実際にこれを /Users/rnapier/... として持っているので、~ が機能するかどうかはわかりません)

これはまだ私にとって常に自動記号化されているわけではありません。しかし、File>Re-Symbolicate Document を使用してから、"Symbolicate" ボタンを押すだけでうまくいきました。これが「箱から出して」動作しないという事実は正気ではありません....

radr://10158512を複製することをお勧めします(これ自体は 10015727 の複製ですが、openradar にはありません)。

于 2012-08-31T04:31:22.277 に答える
1

これは、XCode がビルドを配置する場所にも依存します。XCode プロジェクト オーガナイザーで「MyCoolApp.app」を選択し、「Show in Finder」を右クリックするか、Ctrl キーを押しながらクリックします。すべてのプロジェクト設定が DerivedData に配置されるわけではありません (いくつかの異なるプロジェクト設定が共謀して異なる場所に配置される可能性があります)。XCode がビルドをデポジットしている場所を見つけたので、前述の手順を使用して、そこからインストゥルメントに追加してみてください。[検索] をクリックして [ファイル] ダイアログが表示されたら、[ファイル] ダイアログの Finder から .app をドロップするだけで、そのディレクトリに移動します。

于 2012-09-07T03:53:59.923 に答える
1

「Release」ビルド構成のコード署名 ID を「Automatic Profile Selector: iPhone Distribution」から「Automatic Profile Selector: iPhone Development」(強調は私のもの) に変更すると、アプリのバイナリが Instrument の Re-Symbolicate シートにリストされ、 Derived Data フォルダを指すことができます。

于 2013-04-03T01:28:58.517 に答える