Debugging iPhone: Bagaimana menyelesaikan 'gagal mendapatkan tugas untuk diproses'?

158

Saya baru saja menambahkan profil penyediaan ke XCode (diperlukan untuk mendukung pemberitahuan dan dalam pembelian aplikasi), mengatur sesuai kebutuhan konfigurasi build untuk distribusi ad hoc, dan mencoba menjalankan aplikasi pada perangkat (saya telah melakukan ini beberapa kali di masa lalu , tanpa masalah apapun).

Aplikasi diinstal, tetapi tidak dimulai. Di konsol, saya melihat pesan berikut:

Error launching remote program: failed to get the task for process 82.
Error launching remote program: failed to get the task for process 82.
The program being debugged is not being run.
The program being debugged is not being run.

Namun, jika saya memulai aplikasi pada perangkat secara manual, itu berfungsi seperti yang diharapkan. Saya baru saja menginstal XCode 3.2 terbaru untuk Snow Leopard. Apakah ini bug yang diketahui dari versi XCode ini atau apakah saya melakukan sesuatu yang salah?

EDIT: Ini berfungsi dengan baik dengan distribusi rilis menggunakan profil penyediaan pengembangan. Saya telah memeriksa lagi profil penyediaan ad hoc untuk memastikan itu termasuk perangkat yang saya gunakan.

Massimo Cafaro
sumber
juga ini dapat membantu: pergi ke Organizer -> Proyek -> DerivedData hapus dan bersihkan. Pastikan semua penandatanganan dalam Proyek dan Target ditetapkan secara konsisten dan benar - ini membantu dalam kasus saya ....
user387184

Jawaban:

110

Saya mengalami masalah debugging binari pada perangkat melalui XCode ketika aplikasi menyertakan file Entitlements.plist, yang tidak perlu diinstal ke perangkat untuk debugging. Secara umum, kemudian, saya telah menyertakan file ini untuk rilis rilis (di mana diperlukan untuk App Store) dan menghapusnya untuk debugging (jadi saya bisa men-debug aplikasi dari XCode). Itu mungkin masalah Anda di sini.

Pembaruan : Pada (setidaknya) Agustus 2010 (iPhone 4.1 SDK) Entitlements.plist tidak lagi diperlukan untuk disertakan dalam aplikasi Anda dalam banyak kasus (misalnya, distribusi melalui App Store.) Lihat di sini untuk informasi lebih lanjut tentang kasus-kasus ketika Diperlukan Entitlements.plist:

PENTING: File Kepemilikan umumnya hanya diperlukan saat membuat Distribusi Ad Hoc atau mengaktifkan berbagi data Keychain. Jika tidak ada yang benar, hapus entri dalam Kepemilikan Penandatanganan Kode. (penekanan milikku)

untuk melakukannya
sumber
Anda benar, saya telah memverifikasi bahwa memang nilai get-task-allow yang ditetapkan boolean disetel ke false di Entitlements.plist yang mencegah debugging. Terima kasih.
Massimo Cafaro
1
FYI, saya memiliki masalah yang sama persis dan hal yang menyelesaikan masalah adalah MENAMBAH file hak dengan get-task-allow set ke YA ... jadi jika Anda memiliki masalah yang sama dan Anda tidak memiliki file hak, coba tambahkan ...: P
Alex Zak
Pada iOS 8.1.3 entitelments.plist diperlukan juga untuk aplikasi yang ditandatangani perusahaan.
Roy K
289

Profil ad-hoc tidak mendukung debugging. Anda perlu melakukan debug dengan profil Pengembangan, dan menggunakan profil Ad-Hoc hanya untuk mendistribusikan salinan yang tidak dapat diperdebatkan.

cdespinosa
sumber
Sepengetahuan saya, saya belum melihat informasi ini di portal program developr. Tetapi komentar saya kepada fbrereto menjelaskan mengapa demikian: kita tidak memiliki file Entitlements.plist baik dalam debug maupun dalam konfigurasi rilis.
Massimo Cafaro
5
Saya memiliki masalah yang sama setelah saya secara tidak sengaja mengatur identitas penandatanganan kode ke distribusi iPhone di
XCode
1
bagaimana cara mengalihkan profil kembali ke debugging jika saya cukup klik "mulai"
spankmaster79
Hanya satu lagi dari perangkap kecil yang disiapkan Apple untuk Anda. Baru saja ini terjadi setelah melakukan kembali semua profil dan sertifikat saya berkat bug portal ... huh. Terima kasih atas informasinya, perbaiki masalah saya.
n13
Ini adalah jawaban untuk masalah saya. Tidak ada hubungannya dengan hak.
DOOManiac
37

Saya memiliki masalah yang sama, tetapi mengatasinya dengan mengikuti langkah-langkah sederhana berikut:

  1. Pastikan Anda memilih debug alih-alih rilis.
  2. Dalam konfigurasi Debug, dalam pengaturan proyek, Anda harus memilih profil pengembang & tidak perlu menentukan daftar kepemilikan.
  3. Pengaturan yang sama juga ada di bawah: Target:, jika tidak secara manual ubah ke konfigurasi debug di atas. Itu akan berhasil.

Semua yang terbaik.

Aks
sumber
Alasan ini berhasil adalah hampir pasti bahwa konfigurasi Debug Anda telah mendapatkan-tugas-izinkan diatur dalam Entitlements.plist sedangkan Release satu tidak - ini adalah untuk menghentikan orang melampirkan debugger ke mereka menyalin yang mereka dapatkan dari App Store (lihat- juga jawaban Kai di bawah ini tentang menyetelnya ke ya agar berfungsi ..)
dsmudger
Melakukannya untukku. Entah bagaimana build itu diatur ke 'rilis', dan profil rilis tidak diatur dengan benar.
KPK
19

Saya butuh waktu beberapa saat untuk mencari tahu.

Jika Anda menggunakan distribusi / ad hoc / profil, Anda tidak dapat mengujinya melalui xcode. Anda akan mendapatkan kesalahan: Program yang sedang di-debug tidak dijalankan.

Anda dapat membangun aplikasi, pergi ke folder produk di aplikasi Anda dalam xcode, klik file dengan nama proyek Anda dan pilih mengungkapkan di finder. Anda dapat menarik aplikasi ini ke dalam iTunes dan menyelaraskan dan saat itu Anda dapat menguji aplikasi Anda di perangkat Anda.

Atma
sumber
Ya, ini masalah saya. Saya tidak punya file Kepemilikan, tetapi saya telah mengalihkan konfigurasi build debug saya ke profil distribusi. Beralih ke profil pengembangan memperbaiki segalanya.
vocaro
1
Saya berharap XCode akan lebih terbuka tentang ini. Sama sekali tidak jelas bahwa Anda tidak dapat menguji pembangunan distribusi pada perangkat saat sedang terhubung ke XCode. Ini adalah kasus penggunaan umum.
user798719
13

Jika Anda mendapatkan kesalahan seperti itu, satu-satunya alasan mungkin Anda menggunakan profil Distribusi daripada profil pengembangan di Xcode atau properti Kepemilikan yang hilang. Jika Anda tidak menggunakan Entitlements.plist, maka satu-satunya kesalahan yang mungkin terjadi adalah aplikasi tersebut dikemas dengan profil distribusi. Anda dapat memverifikasi ini mengkonfirmasi log build. Untuk mengubah ini, buka Pengaturan Bangunan proyek dan verifikasi pengaturan Entitas Penandatanganan Kode. Agar debugging berfungsi, pengaturan ini harus menjadi profil pengembang untuk konfigurasi yang sedang Anda gunakan.

https://developer.apple.com/library/ios/#qa/qa1682/_index.html

Untuk hasil instan, hapus semua profil penyedia seluler dari xcode dan instal profil pengembang yang ingin Anda gunakan.

Varun Bhatia
sumber
13

Hampir 2 jam tentang masalah ini! Dan akhirnya saya menyelesaikannya dengan mengganti

Pengembang iPhone

untuk

Pengembang iPhone: Nama Akun Dev Saya

untuk Debug CODE_SIGN_IDENTITY:

  1. Pilih Target Proyek
  2. Pengaturan Bangun
  3. Cari berdasarkan "tanda kode"
  4. Ubah baris Debug bagian CODE_SIGN_IDENTITY dengan "Pengembang iPhone: Nama Akun Dev Saya" , bukan hanya "Pengembang iPhone" .

Saya tidak tahu mengapa ini berhasil, tetapi ternyata berhasil! Setidaknya untuk saya!


Lingkungan: Xcode 5.0 (5A1412).

Kjuly
sumber
ini bekerja untuk saya juga, terima kasih. harus mengutak-atik identitas apa yang harus digunakan, tetapi akhirnya menyukai kombinasi tertentu. Xcode 6 benar-benar membutuhkan fitur "koreksi otomatis" untuk hal-hal semacam ini, banyak rumah tangga yang saya tidak punya waktu !!
John Contarino
1
Hanya untuk menambahkan ini, apa yang saya lakukan mirip, tetapi berbeda - saya mengubah profil menjadi profil tim (yang digunakan untuk debugging), yang menetapkan penandatangan kode menjadi "otomatis" - dalam XCode 5+ Anda benar-benar harus memilih profil untuk bangunan dan membiarkannya memutuskan penandatangan apa yang akan digunakan berdasarkan itu.
Kendall Helmstetter Gelner
@KendallHelmstetterGelner thx, ini mungkin membantu orang lain! : D
Kjuly
Juga harus menambahkan saya mengubah profil tim untuk membangun "Debug", yang digunakan untuk berjalan pada perangkat dari dalam XCode (kecuali jika Anda mengubah pengaturan skema)
Kendall Helmstetter Gelner
1
Ini menyelesaikan masalah saya dengan masalah ini tanpa melakukan apa pun selain membangun kembali dengan identitas penandatanganan kode yang berbeda. Terima kasih! Dalam kasus saya, saya menggunakan identitas distribusi ad-hoc.
Sean Michael Dorian
12

Periksa bagian penandatanganan kode Anda. Pastikan penandatanganan kode adalah tanda kode iPhoneDeveloper

pengguna1770342
sumber
Ini milik saya - Untuk beberapa alasan pada Target saya 'Tim' telah berubah menjadi 'Tidak Ada' - mengubahnya kembali mengurutkannya. Cheers
Ralpharoo
9

Buka Entitlements.plist dan atur nilai boolean get-task-allow ke YES - debugger dapat melampirkan sekarang!

Kai
sumber
ya saya telah mencoba ini berkali-kali dan tidak mengerti mengapa itu tidak memperbaiki masalah. ini akan menjadi metode terbaik jika Anda masih ingin menggabungkan testflightapp
owen gerig
Skema run saya diatur ke debug. Hanya solusi ini yang memperbaikinya untuk saya! Terima kasih.
Pieter
Terima kasih ini sangat membantu saya !!
Amir Hudani
4

Pergi ke Edit Skema dan di bawah Run -> Info -> Build Configuration, ubah dari Ad-Hoc ke Debug. Klik OK untuk menyimpan.

Arunabh Das
sumber
1

Mungkin Anda memiliki profil pengembangan yang kedaluwarsa di ponsel Anda.

Profil penyediaan pengembangan saya kedaluwarsa beberapa hari yang lalu dan saya harus memperbaruinya. Saya memasang profil baru di ponsel saya dan muncul dengan pesan kesalahan yang sama ketika saya mencoba menjalankan aplikasi saya. Ketika saya melihat pengaturan profil di ponsel saya, saya memperhatikan profil yang sudah kadaluwarsa dan menghapusnya. Itu menghapus kesalahan bagi saya.

hkatz
sumber
1

Saya menerima kesalahan ini ketika saya mencoba meluncurkan aplikasi dari Xcode karena saya pikir saya hanya memilih profil distribusi. Build berhasil jadi saya membuat file .ipa. Saya menggunakan testflightapp.com untuk menjalankan aplikasi. Anda dapat menggunakan iTunes juga.

terompet
sumber
1

Seperti yang dinyatakan oleh Buffernet, Anda tidak dapat menggunakan profil penyediaan distribusi untuk debug. Ketika saya beralih ke profil penyedia pengembang, saya mendapatkan kesalahan "Profil Penyedia yang Valid Untuk Ini Dapat Dilakukan Tidak Ditemukan".

Google cepat untuk ini menuntun saya ke artikel yang tercantum di bawah ini. Dari sana, saya menyadari bahwa saya tidak memiliki profil penyediaan pengembangan yang valid karena iPhone saya belum ditambahkan ke Portal Penyediaan dan semua hal lain yang terlibat.

Pastikan Anda menjalankan profil penyediaan pengembang iPhone dan perangkat Anda telah ditambahkan ke portal penyediaan!

http://iosdevelopertips.com/xcode/a-valid-provisioning-profile-for-ini-executable-was-not-found.html

Jarada
sumber
0

Ya, profil Provisioning yang untuk tujuan distribusi, yaitu profil penyediaan Distrutions tidak mendukung debugging dan memberikan kesalahan ini. Cukup buat dan gunakan profil penyediaan debug (urus ini saat membuat profil penyediaan dari akun developer.apple.com).

Rakesh
sumber
0

Saya baru saja mengubah nama bundleIdentifier saya, yang sepertinya berhasil.

Joe Barbour
sumber
-1

Saya telah memperbaiki proyek saya dengan JailCoder http://jailcoder.com/ dan masalah teratasi. Unduh saja dan seret proyek xcode Anda ke dalamnya.

Andrés Canavesi
sumber