起動後にデバッガをiOSアプリに接続する方法は?


100

非常にまれに発生し、Xcodeで実行しているときに発生しないようなトラブルシューティングの問題があります。

問題が発生するまでアプリを通常(つまり、Springboardから)実行し、その時点でデバッガーをアタッチすることはできますか?

できれば脱獄せずにこれをやりたいと思います。

回答:


123
  • Macに接続されているデバイスを接続します
  • デバッグ> PIDまたは名前でプロセスにアタッチ
  • ダイアログシートで、Xcodeから起動したときにデバッグナビゲーターに表示されるアプリの名前を入力します。

アプリが既に実行されている場合、デバッガーは実行中のプロセスにアタッチします。実行されていない場合は、アプリが起動してから接続されるまで待機します。


オレ、答えてくれてありがとう。私はこれを行う方法を探していました。デバッガーをアタッチしようとすると、アタッチされているように見えますが、次のメッセージが表示されます。警告:/ var / mobile / Applications / {GUID} / {APPNAME} .app / {APPNAME}のシンボルを読み取れません(ファイル見つかりました)。XCodeの「停止」ボタンを押すと、アプリが終了します。デバッグモードでビルドされていますが、デバッグシンボルが見つからないようです。何か案は?
ブライアン

4
に問題があります。実行されていない場合、アプリが起動してから接続されるまで待機します。部。動作しません。プロセス名を使用して、アプリが呼び出されるのを待ちます。iPhoneでアプリを起動しましたが、デバッガーはアプリが開始されたことを認識しません。
ジョニー2013

1
@BrianV-プロセスにアタッチできるようにするには、-ggdbを使用してコンパイルしていることを確認する必要があります。
itfische 2013年

4
ジョニーに同意します。私の経験では、アタッチはシミュレータで機能しますが、実際のデバイスにはアタッチされません。
James Moore

4
注:Xcode 5.0.1以降では、Debug > Attach to Process > By Process Identifier (PID) or Name stackoverflow.com
Jason

116

他の2つの回答のどちらも、少しの苦労なしでは十分な詳細を提供しなかったので、ここではこれを残します。

  1. シミュレーターでアプリを実行し、デバッグナビゲーターで名前をメモします。 ここに画像の説明を入力してください

  2. デバイスを接続し、ターゲットとしてデバイスを選択することを忘れないでください ここに画像の説明を入力してください

  3. デバッグ>プロセスにアタッチ>プロセス識別子(PID)または名前別 ここに画像の説明を入力してください
  4. 手順1の名前を入力して添付します。それで十分です。 ここに画像の説明を入力してください

8
1000の賛成票が必要です。カスタムURLスキームを介して開始するものをデバッグすることは、この巧妙なトリックなしではお尻の痛みになる可能性があります。どうもありがとう!
txulu 2015

2
自分でこれを理解するのに20分を費やす前に、この答えを見
たかった

7
これはプロセスにアタッチするという点で機能しますが、実際に必要なログ出力を取得することはできません。何か案は?
オーランド

2
@Orlando-ログ出力を探している場合は、DeviceConsoleを強くお勧めします:github.com/rpetrich/deviceconsole
orion elenzil

1
私はあなたが提案したとおりにやった。エラーが発生:Could not attach to PID名前とIDの両方を試しました。私は、アプリケーションの実行中にしようと、それが停止している間...
ハニー

49

Xcode 5.0.1および6では、メニューバーの項目です。

Debug > Attach to Process > By Process Identifier (PID) or Name...

7

Xcode 7では、次のとおりです。

Debug > Attach to Process by PID or Name...
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.