Gỡ lỗi iPhone: Làm thế nào để giải quyết 'không thể nhận nhiệm vụ cho quy trình'?


158

Tôi vừa thêm hồ sơ cung cấp vào XCode (cần hỗ trợ thông báo và mua ứng dụng), thiết lập khi cần cấu hình bản dựng để phân phối ad hoc và đã thử chạy ứng dụng trên thiết bị (tôi đã làm điều này nhiều lần trong quá khứ , không có vấn đề gì).

Ứng dụng đã được cài đặt nhưng không khởi động. Trên bảng điều khiển, tôi thấy thông báo sau:

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.

Tuy nhiên, nếu tôi khởi động ứng dụng trên thiết bị theo cách thủ công, nó sẽ hoạt động như mong đợi. Gần đây tôi đã cài đặt XCode 3.2 mới nhất cho Snow Leopard. Đây có phải là một lỗi đã biết của phiên bản XCode này hay tôi đang làm gì đó sai?

EDIT: Nó hoạt động tốt với phân phối phát hành sử dụng hồ sơ cung cấp phát triển. Tôi đã kiểm tra lại hồ sơ cung cấp ad hoc để đảm bảo nó bao gồm thiết bị tôi đang sử dụng.


Ngoài ra, điều này có thể giúp: đi tới Trình tổ chức -> Dự án -> DeriveData xóa và xóa. Đảm bảo rằng tất cả các bản hợp đồng trong Dự án và Mục tiêu được đặt một cách nhất quán và chính xác - điều này giúp ích trong trường hợp của tôi ....
user387184

Câu trả lời:


110

Tôi đã gặp sự cố gỡ lỗi nhị phân trên thiết bị qua XCode khi ứng dụng bao gồm tệp Entitlements.plist, không cần thiết để cài đặt vào thiết bị để gỡ lỗi. Nói chung, sau đó, tôi đã bao gồm tệp này cho các bản dựng phát hành (nơi cần thiết cho App Store) và xóa nó để gỡ lỗi (vì vậy tôi có thể gỡ lỗi ứng dụng từ XCode). Đó có thể là vấn đề của bạn ở đây.

Cập nhật : Kể từ (ít nhất) tháng 8 năm 2010 (SDK iPhone 4.1), Entitlements.plist không còn cần thiết để đưa vào ứng dụng của bạn trong nhiều trường hợp (ví dụ: phân phối qua App Store.) Xem tại đây để biết thêm thông tin về các trường hợp khi Entitlements.plist là bắt buộc:

QUAN TRỌNG: Tệp Entitlements thường chỉ cần thiết khi xây dựng Phân phối Quảng cáo Học hoặc bật chia sẻ dữ liệu Keychain. Nếu cả hai điều này đều không đúng, hãy xóa mục trong Quyền ký mã. (nhấn mạnh của tôi)


Bạn đã đúng, tôi đã xác minh rằng đó thực sự là giá trị boolean get-task-allow được đặt thành false trong Entitlements.plist ngăn chặn gỡ lỗi. Cảm ơn bạn.
Massimo Cafaro

1
FYI, tôi có cùng một vấn đề chính xác và điều giải quyết vấn đề là THÊM tệp quyền lợi với lệnh cho phép nhận nhiệm vụ được đặt thành CÓ ... vì vậy nếu bạn gặp vấn đề tương tự và bạn không có tệp quyền lợi, hãy thử thêm nó ...: P
Alex Zak

Kể từ iOS 8.1.3 entlistments.plist cũng được yêu cầu cho các ứng dụng có chữ ký doanh nghiệp.
Roy K

289

Hồ sơ đặc biệt không hỗ trợ gỡ lỗi. Bạn cần gỡ lỗi với hồ sơ Phát triển và chỉ sử dụng hồ sơ Ad-Hoc để phân phối các bản sao không thể sửa lỗi.


Theo hiểu biết tốt nhất của tôi, tôi chưa thấy thông tin này trên cổng thông tin chương trình Developr. Nhưng nhận xét của tôi cho fbrereto giải thích lý do tại sao lại như vậy: chúng tôi không có tệp Entitlements.plist không trong gỡ lỗi cũng như trong cấu hình phát hành.
Massimo Cafaro

5
Tôi gặp vấn đề tương tự sau khi tôi vô tình đặt mã nhận dạng ký mã thành bản phân phối iPhone trong XCode 4
cpungaliya

1
Làm cách nào để chuyển cấu hình trở lại gỡ lỗi nếu tôi chỉ nhấp vào "bắt đầu"
spankmaster79

Chỉ là một trong những cạm bẫy nhỏ mà Apple đưa ra cho bạn. Chỉ có điều này xảy ra sau khi làm lại tất cả các hồ sơ và certs của tôi nhờ một lỗi cổng thông tin ... thở dài. Cảm ơn thông tin, đã khắc phục vấn đề của tôi.
n13

Đây là câu trả lời cho vấn đề của tôi. Không có gì để làm w / quyền lợi.
DOOManiac

37

Tôi có cùng một vấn đề, nhưng đã giải quyết nó bằng cách làm theo các bước đơn giản sau:

  1. Hãy chắc chắn rằng bạn đã chọn gỡ lỗi thay vì phát hành.
  2. Trong cấu hình Gỡ lỗi, trong cài đặt dự án, bạn nên chọn hồ sơ của nhà phát triển và không cần chỉ định các quyền lợi chính.
  3. Ngoài ra, cài đặt tương tự cũng có trong: Mục tiêu :, nếu không thay đổi chúng thành ở trên cho cấu hình gỡ lỗi. Nó sẽ làm việc.

Tất cả tốt nhất.


Lý do điều này hoạt động gần như chắc chắn là cấu hình Debug của bạn có cài đặt cho phép tác vụ trong Entitlements.plist trong khi Bản phát hành không - điều này là để ngăn mọi người gắn trình gỡ lỗi vào bản sao họ nhận được từ App Store (xem- cũng là câu trả lời của Kai bên dưới về việc đặt nó thành có để làm cho nó hoạt động ..)
dsmudger

Đã làm điều đó cho tôi. Bằng cách nào đó, bản dựng được đặt thành 'phát hành' và cấu hình phát hành không được thiết lập chính xác.
KPK

19

Điều này làm tôi mất một lúc để tìm ra.

Nếu bạn đang sử dụng bản phân phối / quảng cáo / hồ sơ, bạn không thể kiểm tra thông qua xcode. Bạn sẽ gặp lỗi: Chương trình được gỡ lỗi không được chạy.

Bạn có thể xây dựng ứng dụng, chuyển đến thư mục sản phẩm trong ứng dụng của mình bằng xcode, nhấp vào tệp có tên dự án của bạn và chọn tiết lộ trong công cụ tìm. Bạn có thể kéo ứng dụng này vào iTunes và đồng bộ hóa và thời điểm đó bạn có thể kiểm tra ứng dụng của mình trên thiết bị.


Vâng, đây là vấn đề của tôi. Tôi không có tệp Entitlements, nhưng tôi đã chuyển cấu hình gỡ lỗi của mình sang cấu hình phân phối. Chuyển sang một hồ sơ phát triển cố định mọi thứ.
vocaro

1
Tôi ước XCode sẽ thẳng thắn hơn về điều này. Hoàn toàn không rõ ràng khi bạn không thể kiểm tra bản dựng phân phối trên thiết bị trong khi được kết nối với XCode. Đây là một trường hợp sử dụng phổ biến.
dùng798719

13

Nếu bạn gặp phải lỗi như vậy, lý do duy nhất có thể là bạn sử dụng hồ sơ Phân phối thay vì hồ sơ phát triển trong Xcode hoặc thuộc tính Quyền lợi bị thiếu. Nếu bạn không sử dụng Entitlements.plist, thì lỗi duy nhất có thể xảy ra là ứng dụng đang được đóng gói với hồ sơ phân phối. Bạn có thể xác minh điều này xác nhận nhật ký xây dựng. Để thay đổi điều này, hãy đi tới Cài đặt bản dựng của dự án và xác minh cài đặt Thực thể ký mã. Để gỡ lỗi hoạt động, cài đặt này phải là hồ sơ nhà phát triển cho cấu hình mà bạn hiện đang sử dụng.

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

Để có kết quả tức thì, hãy xóa tất cả các hồ sơ cung cấp điện thoại di động khỏi xcode và cài đặt hồ sơ nhà phát triển mà bạn định sử dụng.


13

Gần 2 giờ về vấn đề này! Và cuối cùng tôi đã giải quyết nó bằng cách thay thế

Nhà phát triển iPhone

đến

Nhà phát triển iPhone: Tên tài khoản Dev của tôi

cho gỡ lỗi CODE_SIGN_IDENTITY:

  1. Chọn mục tiêu dự án
  2. Xây dựng cài đặt
  3. Tìm kiếm bởi "ký mã"
  4. Sửa đổi hàng gỡ lỗi của CODE_SIGN_IDENTITY với "Nhà phát triển iPhone: Tên tài khoản Dev của tôi" , không chỉ là "Nhà phát triển iPhone" .

Tôi không biết tại sao nó hoạt động, nhưng nó làm! Ít nhất là cho tôi!


Môi trường: Xcode 5.0 (5A1412).


điều này làm việc cho tôi quá, cảm ơn. phải mân mê chính xác danh tính để sử dụng, nhưng cuối cùng nó thích một kết hợp nhất định. Xcode 6 thực sự cần một tính năng "tự động sửa lỗi" cho loại công cụ này, rất nhiều công việc dọn phòng mà tôi không có thời gian cho !!
John Contarino

1
Chỉ để thêm vào điều này, những gì tôi đã làm tương tự, nhưng khác - tôi đã thay đổi hồ sơ thành hồ sơ nhóm (được sử dụng để gỡ lỗi), điều này đặt trình ký mã thành "tự động" - trong XCode 5+ bạn thực sự nên chọn hồ sơ cho một bản dựng và để nó quyết định người ký nào sẽ sử dụng dựa trên đó.
Kendall Helmstetter Gelner

@KendallHelmstetterGelner thx, điều này có thể hữu ích cho người khác! : D
Kjuly

Cũng nên thêm tôi đã thay đổi cấu hình nhóm cho bản dựng "Gỡ lỗi", được sử dụng để chạy trên thiết bị từ trong XCode (trừ khi bạn thay đổi cài đặt lược đồ)
Kendall Helmstetter Gelner

1
Điều này đã giải quyết vấn đề của tôi với vấn đề này mà không phải làm gì khác ngoài việc xây dựng lại với một danh tính ký mã khác. Cảm ơn bạn! Trong trường hợp của tôi, tôi đã sử dụng một danh tính phân phối đặc biệt.
Sean Michael Dorian

12

Kiểm tra phần ký mã của bạn. Hãy chắc chắn rằng ký mã là iPhoneDeveloper đã đăng nhập


Điều này đã làm của tôi - Vì một số lý do trên Mục tiêu của tôi, 'Đội' đã đổi thành 'Không' - thay đổi lại đã sắp xếp nó. Chúc mừng
Ralpharoo

9

Mở Entitlements.plist và đặt giá trị boolean get-task-allow thành CÓ - trình gỡ lỗi có thể đính kèm ngay bây giờ!


ya tôi đã thử điều này nhiều lần và không hiểu tại sao nó không khắc phục được vấn đề. đây sẽ là phương pháp tốt nhất nếu bạn vẫn muốn kết hợp testflightapp
owen gerig

Tôi chương trình chạy của tôi được thiết lập để gỡ lỗi. Chỉ có giải pháp này đã sửa nó cho tôi! Cảm ơn bạn.
Pieter

Cảm ơn Nó thực sự giúp tôi !!
Amir Hudani

4

Chuyển đến Chỉnh sửa lược đồ và trong phần Chạy -> Thông tin -> Cấu hình bản dựng, thay đổi từ Ad-Hoc sang Debug. Nhấn OK để lưu lại.


1

Nó có thể là bạn có một hồ sơ phát triển đã hết hạn trên điện thoại của bạn.

Hồ sơ cung cấp phát triển của tôi đã hết hạn vài ngày trước và tôi phải gia hạn. Tôi đã cài đặt cấu hình mới trên điện thoại của mình và nhận được thông báo lỗi tương tự khi tôi cố chạy ứng dụng của mình. Khi tôi nhìn vào cài đặt hồ sơ trên điện thoại, tôi nhận thấy hồ sơ đã hết hạn và xóa nó. Điều đó đã xóa lỗi cho tôi.


1

Tôi đã nhận được lỗi này khi tôi cố gắng khởi chạy ứng dụng từ Xcode vì tôi nghĩ rằng tôi chỉ chọn hồ sơ phân phối. Build đã thành công nên tôi đã tạo tập tin .ipa. Tôi đã sử dụng testflightapp.com để chạy ứng dụng. Bạn có thể sử dụng iTunes là tốt.


1

Như Buffernet đã nêu, bạn không thể sử dụng hồ sơ cung cấp phân phối để gỡ lỗi. Khi tôi chuyển sang hồ sơ cung cấp cho nhà phát triển, tôi đã gặp lỗi "Không tìm thấy hồ sơ cung cấp hợp lệ cho việc thực thi này".

Một google nhanh chóng cho điều này dẫn tôi đến bài viết được liệt kê dưới đây. Từ đó, tôi nhận ra rằng tôi chưa có hồ sơ cung cấp phát triển hợp lệ vì iPhone của tôi đã không được thêm vào Cổng cung cấp và tất cả những thứ khác có liên quan.

Đảm bảo bạn chạy hồ sơ cung cấp nhà phát triển iPhone và thiết bị của bạn đã được thêm vào cổng cung cấp!

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


0

Có, Hồ sơ cung cấp dành cho mục đích phân phối, tức là hồ sơ cung cấp Phân phối không hỗ trợ gỡ lỗi và đưa ra lỗi này. Chỉ cần tạo và sử dụng hồ sơ cung cấp gỡ lỗi (chăm sóc điều này khi tạo hồ sơ cung cấp từ tài khoản developer.apple.com).


0

Tôi vừa thay đổi tên bundleIdentifier của mình, điều đó dường như là một mánh khóe.


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.