Bagaimana cara memasang debugger ke aplikasi iOS setelah peluncuran?

101

Saya memiliki masalah Saya memecahkan masalah yang terjadi sangat jarang dan sepertinya tidak terjadi ketika saya memiliki sesuatu yang berjalan di bawah Xcode.

Apakah mungkin untuk menjalankan aplikasi secara normal (yaitu dari Springboard) hingga masalah saya terjadi, lalu memasang debugger pada saat itu?

Saya lebih suka melakukan ini tanpa jailbreaking jika memungkinkan.

Locksleyu
sumber

Jawaban:

124
  • Lampirkan perangkat Anda terhubung ke Mac Anda
  • Debug> Lampirkan ke Proses dengan PID atau Nama
  • Di lembar dialog, masukkan nama aplikasi Anda seperti yang muncul di navigator Debug saat dimulai melalui Xcode.

Jika aplikasi sudah berjalan, debugger akan melampirkan ke proses yang sedang berjalan. Jika tidak berjalan, itu akan menunggu aplikasi diluncurkan dan kemudian melampirkan.

Ole Begemann
sumber
Ole, terima kasih atas jawabannya. Saya sedang mencari cara untuk melakukan ini. Ketika saya pergi untuk melampirkan debugger, sepertinya itu terpasang tapi kemudian saya mendapatkan pesan ini: peringatan: Tidak dapat membaca simbol untuk / var / mobile / Applications / {GUID} / {APPNAME} .app / {APPNAME} (file tidak ditemukan). Saat saya menekan tombol "stop" di XCode, aplikasi akan berhenti. Sepertinya itu tidak menemukan simbol debug, meskipun itu dibuat dalam mode debug. Ada ide?
Brian
4
Saya punya masalah dengan Jika tidak berjalan, itu akan menunggu aplikasi diluncurkan dan kemudian melampirkan. bagian. Itu tidak berhasil. Saya menggunakan nama proses untuk menunggu aplikasi memanggil. Saya meluncurkan aplikasi di iPhone, tetapi debugger tidak pernah menyadari bahwa aplikasi telah dimulai.
Jonny
1
@BrianV - Anda perlu memastikan bahwa Anda sedang mengompilasi dengan -ggdb jika Anda ingin dapat melampirkan ke proses tersebut.
itfische
4
Saya setuju dengan Jonny; pengalaman saya adalah bahwa lampiran berfungsi pada simulator, tetapi tidak akan terpasang ke perangkat yang sebenarnya.
James Moore
4
CATATAN: Di Xcode 5.0.1+ itu Debug > Attach to Process > By Process Identifier (PID) or Name stackoverflow.com/a/20193088/175830
Jason Axelson
117

Saya akan meninggalkan ini di sini karena tidak satu pun dari 2 jawaban lainnya memberi saya cukup detail tanpa sedikit kesulitan.

  1. Jalankan aplikasi Anda di simulator dan catat namanya di navigator Debug masukkan deskripsi gambar di sini

  2. Hubungkan perangkat Anda dan jangan lupa untuk memilih perangkat Anda sebagai target masukkan deskripsi gambar di sini

  3. Debug> Lampirkan ke Proses> Dengan Proses Identifier (PID) atau Nama masukkan deskripsi gambar di sini
  4. Masukkan nama dari langkah 1 dan lampirkan. Hanya itu yang harus Anda lakukan. masukkan deskripsi gambar di sini
Adam Johns
sumber
8
Anda harus mendapatkan 1000 suara positif. Debugging hal-hal yang dimulai melalui skema url cutom bisa menyebalkan tanpa trik rapi ini. Terimakasih banyak!
txulu
2
Saya berharap saya melihat jawaban ini sebelum saya menghabiskan 20 menit mencari tahu sendiri :(
simon_smiley
7
Ini berfungsi karena itu melekat pada proses, tetapi saya tidak dapat melihat untuk mendapatkan output log apa pun yang benar-benar saya butuhkan. Ada ide?
Orlando
2
@Orlando - Jika Anda mencari keluaran log, saya sangat merekomendasikan DeviceConsole: github.com/rpetrich/deviceconsole
orion elenzil
1
Saya melakukan persis seperti yang Anda sarankan. dan saya mendapatkan kesalahan: Could not attach to PIDSaya mencoba nama dan ID-nya. Saya mencoba saat aplikasi berjalan dan saat berhenti ..
Sayang
49

Di Xcode 5.0.1 dan 6 itu adalah item menu bar:

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

Di Xcode 7 hanya:

Debug > Attach to Process by PID or Name...
Japes
sumber