Xcode 10: действительный профиль подготовки для этого исполняемого файла не найден

Со вчерашнего дня я получал следующую ошибку при попытке запустить приложение на своем устройстве: "Действительный профиль подготовки для этого исполняемого файла не найден". Это после обновления до Xcode 10. Создание с Xcode 9 на прошлой неделе без проблем.

Я проверил другие обсуждения об ошибке, но ни одно из решений не работает.

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

До сих пор я пробовал следующее:

  • Проект очистки

  • Очистка данных

  • Удаление Xcode, удаление любых настроек и связанных с ним файлов.

  • Установка Xcode на совершенно другой Mac

  • Тестирование с помощью разных устройств

  • Отключение устройства в профиле разработчика и разрешение Xcode включить его снова.

  • Удаление всех сертификатов на портале разработчиков и их повторное создание

  • Отмена и повторная проверка "Автоматическое управление подписью"

  • Удаление профиля обеспечения и разрешение Xcode воссоздать его

  • Создание профиля профилей вручную в профиле разработчика

Проект не содержит тестов, поэтому не может быть проблем с неправильными настройками подписки на эту цель. Дата/время установлено на Автоматически

Следует отметить, что здесь не перечислены профили Provisioning Profiles, за исключением ручной, которую я создал: https://developer.apple.com/account/ios/profile/

Я ожидаю, что генерируемый xcode появится, как и для всех других клиентов.

Ниже приведены настройки подписывания, которые я использую в настоящее время.

provisioning profile settings

Я еще не пытался понизить Xcode до более старой версии, чтобы убедиться, что это работает. Помимо этого я понятия не имею, что попробовать дальше.

Ответ 1

Я боролся с этим сегодня, это было супер расстраивающим. Сейчас просто зайдите в "File" > "Project Settings..." (или в некоторых случаях "Workspace Settings...") и затем выберите "Legacy Build System" из выпадающего меню "Build System".

Ответ 2

@Stephen tks это разрешилось для меня. Мне просто нужно перейти → Файл → WorspaceSettings → Настройки сборки (изменить здесь на "Legacy Build System") enter image description here

enter image description here

Ответ 3

У меня была та же проблема, и я часами искал ответ, удалял профили, чистил проект и так далее.

Вы распространяли свое приложение? Вам нужно переключиться обратно на свой профиль разработчика, но не в общих настройках проекта, а в настройках сборки.

В разделе "Подписывание" посмотрите на свою личность подписи кода.

Убедитесь, что для Debug и Release установлены iOS Developer, а не iOS Distribution; или ваш профиль обеспечения разработчика iOS, если для него не заданы автоматические значения.

То же самое касается профиля обеспечения. Это должен быть ваш развивающийся профиль, а не ваш профиль распространения. enter image description here

Надеюсь, что это поможет будущим разработчикам, нуждающимся.

Ответ 4

Я перепробовал все вышеперечисленные решения.

Однако, в моем случае, после нескольких часов головной боли это было из-за того, что у Тестового проекта нет действующей учетной записи для обеспечения подписания. После того, как я выбрал команду для предоставления в тестовом проекте автоматической подписи. Эта проблема ушла.

Ответ 5

Используйте папку чистой сборки (команда + shift + K), и приложение перестроения может в ближайшее время исправить эту проблему. Тем не менее, время сборки увеличится с момента очистки папки сборки.

Ответ 6

Для нашей команды ничего не помогло. Мы потратили пару дней и опробовали каждый шаг, который был упомянут здесь выше в ответах и комментариях. Мы пробовали использовать XCode 10 и даже XCode 9.2 в приложении, которое уже много лет находится в магазине приложений.

Проблема началась после обновления до MacOS Mojave. К сожалению, возвращение в HighSierra тогда не помогло.

По крайней мере, мы смогли снова отправиться в магазин приложений после того, как создали новый сертификат и профиль обеспечения. Но мы до сих пор не можем тестировать наше приложение в режиме релиза на реальном устройстве, что необходимо для тестирования InApp-покупок.

Короче говоря: архивация и отправка работает хорошо, работает на реальном устройстве нет!

Несколько разработчиков, несколько устройств, macbooks, версии XCode....

В конце мы должны были изменить AppID, чтобы иметь возможность снова тестировать на реальном устройстве.

Для этого мы сейчас запускаем два разных проекта: один для доставки в TestFlight/AppStore с реальным AppID, а другой для целей разработки с другим AppID.

Хотя это происходит только в ОДНОМ конкретном приложении нашей компании, а не во всех остальных, мы ожидаем, что в будущем мы столкнемся с подобными проблемами, поскольку с инструментами разработки Apple дела пойдут еще хуже...

Ответ 7

Так что это не будет иметь место для всех, но я думал, что выложу это здесь так или иначе, поскольку, кажется, нет никаких ответов, касающихся этого.

В моем случае я работал над приложением, которое разрабатывалось в ReactNative, моя проблема заключалась в том, что, хотя моя подпись была правильной для основной цели приложения, у цели теста не было подписи.
По какой-то причине React Native требует, чтобы цель приложения и цель тестирования были подписаны, чтобы установить приложение на устройство.
Это указано в официальной документации по сборке устройства, однако это единственный экземпляр, который я когда-либо видел, когда цель тестирования строится вместе с приложением для чего-либо, кроме тестирования.

Чтобы подписать цель теста, перейдите в настройки проекта, открыв навигатор проекта (⌘1) и выберите свой проект в верхней части.

В главном редакторе выберите цель основного приложения в разделе "Цели" (должно иметь то же имя, что и ваш проект) и убедитесь, что подпись верна, затем выберите цель тестирования (скорее всего, под основной целью приложения, она должна совпадать с именем "Тесты"). приложить) и убедитесь, что он подписан таким же образом.

Перестройте свое приложение, и теперь оно должно быть успешно установлено.

Кредит на это идет Лео Лей, его ответ здесь спас меня от головной боли: fooobar.com/questions/419029/...

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

Ответ 8

Я боролся с той же проблемой, и решение в моем случае состояло в том, чтобы войти в учетную запись разработчика. После обновления до Xcode 10 все учетные записи были выведены из системы.

Используйте меню "Xcode → Настройки... → Учетные записи" и убедитесь, что все учетные записи, которые вы используете, вошли в систему, так что профили обеспечения доступны.

Ответ 9

Возможно, вы меняли свое устройство для разработки? Это случилось со мной, когда я купил новый iPhone и дал ему то же имя, что и у моего предыдущего устройства. Чистая сборка, однако, исправила проблему.

Ответ 10

Я следовал всем вышеперечисленным шагам, но это не сработало. Я создал дубликат Target, и он работает нормально. Я понятия не имею, что не так может быть проблема с кеш-памятью

enter image description here

Ответ 11

В моем случае, вот шаги, которые я решаю проблемы:

  1. Перейдите в эту папку: ~/Library/MobileDevice/Provisioning Profiles/
  2. Удалить весь профиль обеспечения
  3. В меню Xcode 10> Продукт> Чистая папка сборки
  4. В меню XCode 10> XCode> Настройки> Аккаунт> Загрузить профили руководства
  5. В меню Xcode 10> Продукт> Построить/Архивировать

Причина, по которой необходимо выполнить вышеописанные действия, состоит в том, чтобы удалить старые профили обеспечения, которые испортили процесс сборки.

Ответ 12

Эта проблема возникла в Xcode 10.3 после того, как я переключился на свою цель модульного тестирования XCTest, а затем вернулся к цели времени выполнения проекта.

Оказывается, в моем профиле обеспечения были выбраны разные команды для каждой цели.

Чтобы это исправить:

  • Чистая папка сборки
  • Убедитесь, что все майские цели используют одну и ту же команду. См. подпись профиля под общей вкладкой.
  • Если вы не используете одну и ту же команду для всех целей, очистите перед переключением на цель сборки с помощью

    другая команда выбрана.

Ответ 13

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

Ответ 14

В моем случае, где больше ничего не помогло, я сделал следующее:

  1. изменить AppID на новый
  2. XCode автоматически генерирует новые профили обеспечения
  3. запустить приложение на реальном устройстве → теперь оно работает
  4. верните AppID к исходному идентификатору
  5. работает

Перед этим я опробовал каждый шаг, который был упомянут здесь. Но только это помогло.

Ответ 15

Для меня даже то, что сертификат распределения и профиль обеспечения были доступны для XCode, выбрав Автоматическое управление подписанием во время процесса распространения, сделал его неудачным. Я сделал следующее. Как упоминалось ранее, я создал новый сертификат распространения и профиль обеспечения, а затем во время процесса распространения вручную выбрал сертификат и профиль обеспечения и Voilaaaa. Также убедитесь, что я на последней версии 10.1.

Ответ 16

Похоже, что Apple исправила эту ошибку в Xcode 10.2 beta 2 Release.

https://developer.apple.com/documentation/xcode_release_notes/xcode_10_2_beta_2_release_notes

Подписание и распространение Решенные проблемы

Когда вы создаете архив приложения macOS и используете сертификат подписи ID разработчика, Xcode включает безопасную метку времени в подписи архива. В результате теперь вы можете отправить заархивированное приложение в нотариальную службу Apple с помощью xcrun altool без предварительной подписи его отметкой времени. (44952627)

Когда вы создаете архив приложения MacOS, XCode больше не внедряет право com.apple.security.get-task-allow в подпись приложения. В результате теперь вы можете отправить заархивированное приложение в нотариальную службу Apple, используя xcrun altool, без необходимости сначала лишать это право. (44952574)

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

Исправлена ошибка, из-за которой утонченные файлы .ipa не подписывались при экспорте из Организатора. (45761101)

Xcode 10.2 beta 2 Release можно скачать здесь: https://developer.apple.com/download/

Ответ 17

Вам просто нужно сменить команду. В моем случае это сработало

Ответ 18

После того, как я устала от большинства решений, я нашла то, что заставляет его работать без каких-либо проблем для меня. Это решается путем перехода на developer.apple.com затем account затем Certificates, identifiers & profiles и я нажимаю ссылку All разделе Devices и затем добавляю новое устройство.

Затем вам нужно установить имя устройства и uuid, а затем сохранить его. Зайдите в xcode и почистите кеш, соберите, и все работает нормально.

Примечание 1: убедитесь, что ваша команда настроена на правду.

Примечание 2: вы можете получить uuid, подключив устройство к вашему устройству Mac, и нажмите на iTunes, и нажмите на ярлык безопасности, вы увидите UUID.

Который этот ответ тоже полезно.

Ответ 19

Я попробовал все ответы выше и мне не повезло. После этого я перезагружаю свой iPhone, и проблема кажется исчезла. Я знаю, что это так глупо, но это сработало. Ответы выше, скорее всего, решают проблему, но если нет, попробуйте перезагрузить устройство iOS.

Ответ 20

Убедись, что ты:

1) Иметь зарегистрированный профиль обеспечения для вашего устройства.

2) Устройство должно быть добавлено в профиль разработки и обновлено.

Если вы все еще сталкиваетесь с проблемами, проверьте настройки целевой сборки.

Убедись, что ты:

1) CODE_SIGNING_REQUIRED в User-Defined установлено в YES.

enter image description here

2) Проверка Signing варианты правильны. Если проблема сохраняется, переключитесь на Ручные настройки вместо автоматически.

Ответ 21

Изменили ли вы дату вашего iPhone после истечения срока действия вашего сертификата? Я столкнулся с этой проблемой по этой причине.

Ответ 22

Обнаружена та же проблема, у нас было несколько конфигураций в проекте Xcode, скажем, Debug-Staging, Debug-Production. Затем мы объединили их и использовали только одну конфигурацию Debug. Но старый (больше не существующий) застрял в схеме для фазы запуска, поэтому, как только вы попытались запустить, Xcode показал вам это сообщение. Это имеет смысл, поскольку профили инициализации настраиваются в настройках сборки на основе конфигурации.

Итак, схема запуска выглядела так:

Incorrect target scheme

В то время как настройки проекта были настроены так.

Project configurations

Изменение схемы для использования конфигурации, которая все еще доступна в проекте, - это то, что исправило эту проблему для меня.

Ответ 23

Убедитесь, что профиль обеспечения принадлежит одной и той же команде как для цели, так и для целей targetTests.

Ответ 24

В моем случае дата и время устройства были установлены на будущую дату. Изменение настройки даты на "автоматическое" исправило проблему.

Ответ 25

Я открывал проект xcodej... Я пытался с файлом рабочей области, и он работает.

По крайней мере, это решило одну из моих проблем, ха-ха