Отладка iPhone: как решить «не удалось получить задачу для процесса»?


158

Я только что добавил профиль обеспечения в XCode (необходимый для поддержки уведомлений и покупки приложений), настроил при необходимости конфигурацию сборки для специального распространения и попытался запустить приложение на устройстве (я делал это несколько раз в прошлом , без каких-либо проблем).

Приложение установлено, но не запускается. На консоли я вижу следующее сообщение:

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.

Однако, если я запускаю приложение на устройстве вручную, оно работает как положено. Я недавно установил последнюю версию XCode 3.2 для Snow Leopard. Это известная ошибка этой версии XCode или я что-то не так делаю?

РЕДАКТИРОВАТЬ: Он отлично работает с выпуском релиза с использованием профиля обеспечения разработки. Я снова проверил специальный профиль обеспечения, чтобы убедиться, что он включает в себя устройство, которое я использую.


Также это может помочь: перейдите в Органайзер -> Проекты -> Удалить и очистить DerivedData. Убедитесь, что все подписи в Project и Target установлены последовательно и правильно - это помогло в моем случае ....
— user387184

Ответы:


110

У меня были проблемы с отладкой двоичных файлов на устройстве через XCode, когда приложение включает файл Entitlements.plist, который не требуется устанавливать на устройство для отладки. В общем, тогда я включил этот файл для сборок релизов (где это требуется для App Store) и удалил его для отладки (чтобы я мог отлаживать приложение из XCode). Это может быть вашей проблемой здесь.

Обновление : (. , Например, распространение через App Store) По состоянию на (по крайней мере) Август 2010 (iPhone 4,1 SDK) Entitlements.plist больше не нужно включать в приложение во многих случаях См здесь для получения дополнительной информации о случаях , когда Entitlements.plist обязателен:

ВАЖНО. Файл с правами, как правило, необходим только при создании для Ad Hoc Distribution или включении совместного использования данных Keychain. Если ни один из них не соответствует действительности, удалите запись в Правах подписи кода. (акцент мой)


Вы правы, я убедился, что это действительно логическое значение get-task-allow, установленное в false в Entitlements.plist, которое предотвращает отладку. Спасибо.
— Массимо Кафаро

1
К вашему сведению, у меня была точно такая же проблема, и проблема была решена ДОБАВЛЕНИЕМ файла разрешений с параметром get-task-allow, установленным в YES ... так что если у вас такая же проблема, и у вас нет файла разрешений, попробуйте добавить это ...: P
— Алекс Зак

Начиная с iOS 8.1.3, authorelments.plist требуется также для корпоративных приложений, подписанных.
— Рой К

289

Специальный профиль не поддерживает отладку. Необходимо выполнить отладку с помощью профиля разработки и использовать профиль Ad-Hoc только для распространения неотлаживаемых копий.


Насколько я знаю, я не видел эту информацию на портале программы для разработчиков. Но мой комментарий к fbrereto объясняет, почему это так: у нас нет файла Entitlements.plist ни в отладочной, ни в конфигурациях выпуска.
— Массимо Кафаро

5
У меня возникла та же проблема после того, как я случайно установил удостоверение подписи кода для дистрибутива iPhone в XCode 4
— cpungaliya

1
как мне переключить профиль обратно на отладку, если я просто
— нажму

Просто еще одна из тех маленьких ловушек, которые Apple поставила перед вами. Только что это случилось после повторного выполнения всех моих профилей и сертификатов благодаря портальной ошибке ... вздох. Спасибо за информацию, исправил мою проблему.
— 13

Это был ответ на мою проблему. Не было ничего делать с правами.
— DOOManiac

37

У меня была та же проблема, но я решил ее, выполнив следующие простые шаги:

  1. Убедитесь, что вы выбрали отладку, а не выпуск.
  2. В конфигурации отладки в настройках проекта вы должны были выбрать профиль разработчика и не нужно указывать список прав.
  3. Кроме того, те же настройки находятся в разделе: Targets:, если не вручную, измените их на вышеуказанные для конфигурации отладки. Это сработает.

Всего наилучшего.


Причина, по которой это сработало, почти наверняка состоит в том, что в вашей конфигурации отладки установлен набор get-task-allow в Entitlements.plist, в то время как в выпуске один - нет, чтобы люди, присоединяющие отладчик к копии, которую они получают из App Store (см. также ответ Кая ниже о том, чтобы установить его на да, чтобы заставить его работать ..)
— dsmudger

Сделал это для меня. Каким-то образом сборка была настроена на «выпуск», а профили выпуска были настроены неправильно.
— КПК

19

Это заняло у меня некоторое время, чтобы понять.

Если вы используете дистрибутив / ad hoc / профиль, вы не можете проверить его через xcode. Вы получите ошибку: отлаживаемая программа не запускается.

Вы можете создать приложение, перейти в папку продуктов в вашем приложении в xcode, щелкнуть файл с именем вашего проекта и выбрать открыть в поиске. Вы можете перетащить это приложение в iTunes и выполнить синхронизацию, после чего вы сможете протестировать свое приложение на своем устройстве.


Да, это была моя проблема. У меня не было файла Entitlements, но я переключил конфигурацию отладочной сборки на профиль распространения. Переход на профиль разработки исправил все.
— Вокаро

1
Я хотел бы, чтобы XCode был более откровенным об этом. Совершенно не очевидно, что вы не можете протестировать сборку дистрибутива на устройстве при подключении к XCode. Это общий случай использования.
— user798719

13

Если вы получаете такую ​​ошибку, единственной причиной может быть использование вами профиля распространения, а не профиля разработки в XCode или отсутствующего свойства Entitlement. Если вы не используете Entitlements.plist, единственная возможная ошибка может быть связана с упаковкой приложения с профилем распространения. Вы можете проверить это, подтверждая журналы сборки. Чтобы изменить это, перейдите в Build Setting проекта и проверьте настройку Entity Signing Entity. Чтобы отладка работала, этот параметр должен быть профилем разработчика для конфигурации, которую вы используете в данный момент.

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

Для получения мгновенных результатов удалите все профили обеспечения мобильной связи из xcode и установите профиль разработчика, который вы собираетесь использовать.


13

Почти 2 часа в этом вопросе! И наконец я решил это, заменив

Разработчик iPhone

в

Разработчик iPhone: имя моей учетной записи Dev

для отладки CODE_SIGN_IDENTITY:

  1. Выберите цель проекта
  2. Настройки сборки
  3. Поиск по "кодовому знаку"
  4. Измените строку отладки раздела CODE_SIGN_IDENTITY на «Разработчик iPhone: имя моей учетной записи разработчика» , а не просто «Разработчик iPhone» .

Я понятия не имею, почему это работает, но это работает! По крайней мере для меня!


Среда: Xcode 5.0 (5A1412).


это сработало и для меня, спасибо. пришлось поиграть с тем, какие именно личности использовать, но в конечном итоге ему понравилась определенная комбинация. Xcode 6 действительно нужна функция «автокоррекции» для такого рода вещей, много домашнего хозяйства, на которое у меня нет времени !!
— Джон Контарино,

1
Просто чтобы добавить к этому то, что я сделал, было похоже, но по-другому - я изменил профиль, чтобы он стал профилем команды (который используется для отладки), который установил подписывающий код как «автоматический» - в XCode 5+ вы действительно должны быть выбирая профиль для сборки и позволяя ему решить, какую подписавшуюся сторону использовать на основе этого.
— Кендалл Хельмштеттер Гелнер,

@KendallHelmstetterGelner спасибо, это может быть полезно для других! : D
— Кюли

Также следует добавить, что я изменил профиль команды для сборки «Отладка», которая используется для запуска на устройстве из XCode (если вы не изменяете настройки схемы)
— Кендалл Хелмштеттер Гелнер

1
Это решило мою проблему с этой проблемой, не делая ничего, кроме перестройки с другой идентификацией подписи кода. Спасибо! В моем случае я использовал специальную идентификацию распространения.
— Шон Майкл Дориан

12

Проверьте раздел подписи кода. Убедитесь, что подпись кода является подписью кода iPhoneDeveloper


Это сделало мое - По какой-то причине в моей Target «Команда» изменилась на «None» - изменив ее обратно, отсортировав ее. Приветствия
— Ralpharoo

9

Откройте Entitlements.plist и установите для логического значения get-task-allow значение YES - отладчик может присоединиться сейчас!


Я пробовал это много раз и не понимаю, почему это не решает проблему. это был бы лучший метод, если бы вы все еще хотели включить testflightapp
— owen gerig

Моя схема запуска настроена на отладку. Только это решение исправило это для меня! Спасибо.
— Питер

Спасибо, это действительно помогает мне!
— Амир Худани

4

Перейдите в Edit Schemes и в Run -> Info -> Build Configuration, перейдите от Ad-Hoc к Debug. Нажмите OK, чтобы сохранить.


1

Возможно, на вашем телефоне просрочен профиль разработки.

Срок действия моего профиля обеспечения разработки истек несколько дней назад, и мне пришлось его обновить. Я установил новый профиль на свой телефон и получил то же сообщение об ошибке при попытке запустить приложение. Когда я посмотрел на настройки профиля на моем телефоне, я заметил профиль с истекшим сроком и удалил его. Это очистило ошибку для меня.


1

Я получил эту ошибку, когда попытался запустить приложение из XCode, так как решил, что выбрал только профиль распространения. Сборка прошла успешно, поэтому я создал файл .ipa. Я использовал testflightapp.com для запуска приложения. Вы также можете использовать iTunes.


1

Как заявлено в Buffernet, вы не можете использовать профиль обеспечения распространения для отладки. Когда я переключился на профиль обеспечения разработчика, я получил сообщение об ошибке «Действительный профиль обеспечения для этого исполняемого файла не найден».

Быстрый Google для этого приведет меня к статье, указанной ниже. Оттуда я понял, что у меня нет действующего профиля обеспечения разработки, поскольку мой iPhone не был добавлен на портал обеспечения и все другие связанные с этим вещи.

Убедитесь, что у вас запущен профиль инициализации для разработчиков iPhone, и ваше устройство было добавлено на портал инициализации!

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


0

Да, профили обеспечения, предназначенные для распространения, т.е. профили обеспечения распространения, не поддерживают отладку и выдают эту ошибку. Просто создайте и используйте профиль обеспечения отладки (будьте внимательны при создании профиля обеспечения из учетной записи developer.apple.com).



Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.