Отладка 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. Если ни один из них не соответствует действительности, удалите запись в Правах подписи кода. (акцент мой)

fbrereto
источник
Вы правы, я убедился, что это действительно логическое значение get-task-allow, установленное в false в Entitlements.plist, которое предотвращает отладку. Спасибо.
Массимо Кафаро
1
К вашему сведению, у меня была точно такая же проблема, и проблема была решена ДОБАВЛЕНИЕМ файла разрешений с параметром get-task-allow, установленным в YES ... так что если у вас такая же проблема, и у вас нет файла разрешений, попробуйте добавить это ...: P
Алекс Зак
Начиная с iOS 8.1.3, authorelments.plist требуется также для корпоративных приложений, подписанных.
Рой К
289

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

cdespinosa
источник
Насколько я знаю, я не видел эту информацию на портале программы для разработчиков. Но мой комментарий к 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).

Kjuly
источник
это сработало и для меня, спасибо. пришлось поиграть с тем, какие именно личности использовать, но в конечном итоге ему понравилась определенная комбинация. Xcode 6 действительно нужна функция «автокоррекции» для такого рода вещей, много домашнего хозяйства, на которое у меня нет времени !!
Джон Контарино,
1
Просто чтобы добавить к этому то, что я сделал, было похоже, но по-другому - я изменил профиль, чтобы он стал профилем команды (который используется для отладки), который установил подписывающий код как «автоматический» - в XCode 5+ вы действительно должны быть выбирая профиль для сборки и позволяя ему решить, какую подписавшуюся сторону использовать на основе этого.
Кендалл Хельмштеттер Гелнер,
@KendallHelmstetterGelner спасибо, это может быть полезно для других! : D
Кюли
Также следует добавить, что я изменил профиль команды для сборки «Отладка», которая используется для запуска на устройстве из XCode (если вы не изменяете настройки схемы)
Кендалл Хелмштеттер Гелнер
1
Это решило мою проблему с этой проблемой, не делая ничего, кроме перестройки с другой идентификацией подписи кода. Спасибо! В моем случае я использовал специальную идентификацию распространения.
Шон Майкл Дориан
12

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

user1770342
источник
Это сделало мое - По какой-то причине в моей 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

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

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

hkatz
источник
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

Jarada
источник
0

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

Ракеш
источник
0

Я просто изменил свое имя bundleIdentifier, что, похоже, помогло.

Джо Барбур
источник
-1

Я исправил свой проект с помощью JailCoder http://jailcoder.com/ и проблема решена. Просто скачайте его и перетащите ваш проект xcode в него.

Андрес Канавези
источник