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

Действительный профиль обеспечения для этого исполняемого файла не найден. "

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

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

Пока что пробовал следующее:

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

  • Производные данные очистки

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

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

  • Тестирование на разных устройствах

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

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

  • Снятие и повторная установка флажка «Автоматически управлять подписью»

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

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

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

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

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

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

provisioning profile settings

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

Daniel Andersson

Ответов: 35

Ответы (35)

Я боролся с этим сегодня, это было очень неприятно. А пока просто зайдите в «Файл»> «Настройки проекта ...» (или в некоторых случаях «Настройки рабочего пространства ...»), а затем выберите «Устаревшая система сборки» из раскрывающегося списка «Система сборки».

У меня был случай, когда мое приложение развертывалось на моем iPhone, но не на часах. При развертывании на часах будет выдано сообщение «Действительный профиль подготовки для этого исполняемого файла не найден». ошибка. Это с XCode версии 11.2.1 и с использованием бесплатной учетной записи разработчика.

Вот что я сделал, чтобы установить его на свои часы:

1) Я удалил свой профиль обеспечения в XCode. Я сделал это, перейдя в Window -> Devices And Simulators. Затем щелкните правой кнопкой мыши имя iPhone и выберите «Показать профили обеспечения». Оттуда я мог удалить файл

2) На экране «Устройства и симуляторы» я также удалил свое приложение из раздела «Установленные приложения».

3) Сделал "чистую папку сборки" (Товар -> Папка чистой сборки)

4) В «Настройки сборки» -> «Раздел подписи» я убедился, что каждая цель (iPhone, тесты и часы) имеет одинаковые настройки (команда разработчиков, стиль подписи кода, профиль подготовки был установлен на автоматический и т. Д.).

build settings details

5) Убедитесь, что каталог ~ / Library / MobileDevice / Provisioning Profiles пуст.

6) Телефон отключен от компьютера

7) Перезагрузил компьютер, телефон и часы

8) Подключил телефон обратно к компьютеру и выполнил на телефоне подсказку «доверься этой машине».

9) Запустил приложение. Получилось!

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

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

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

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

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

Убедитесь, что профиль подготовки принадлежит одной и той же команде как в вашем целевом, так и в целевом тестах.

Имейте в виду, что принятый ответ препятствует загрузке сборки в App Store Connect.

Откройте Связку ключей на вашем Mac и удалите старые сертификаты разработки Apple с истекшим сроком действия. Это решило проблему для меня.

Мне пришлось сменить команду в профиле подготовки для тестов. И

Замена моего целевого устройства с моего физического телефона на симулятор исправила это для меня!

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

enter image description here

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

@ Стивен благодарит меня за это. Мне просто нужно перейти -> Файл -> WorspaceSettings -> Настройки сборки (измените здесь на «Устаревшую систему сборки»)enter image description here

enter image description here

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

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

Я просто отключаю свое устройство от Apple Developer, и проблема решается. (много раз проверено на Xcode 12.4)

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

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

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

Когда вы строите архив приложения macOS и с использованием сертификата подписи Developer 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 можно скачать здесь: https://developer.apple.com/download/

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

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

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

Вкратце: архивирование и отправка работают хорошо, на реальном устройстве - нет!

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

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

Therefor we run two different projects now: one for shipping to TestFlight/AppStore with the real AppID and one for development purposes with another AppID.

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

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

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

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

  • Папка чистой сборки

  • Убедитесь, что все возможные цели используют одну и ту же команду. См. Раздел «Подпись профиля» на вкладке «Общие».

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

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

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

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

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

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

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

Благодарим за это Лео Лея, его ответ здесь избавил меня от головной боли: https://stackoverflow.com/a/48657358/732844

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

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

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

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

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

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

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

enter image description here

2) Проверьте правильность Подпись. Если проблема не исчезнет, ​​переключитесь на Ручные настройки вместо автоматического.

Проверьте, используете ли вы профиль подготовки Ad Hoc Distribution, а не профиль обеспечения распространения App Store, из-за этого я получал эту ошибку.

У меня сработало удалить возможность, а затем добавить ее обратно.

Capabilities tab

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

Что я сделал, чтобы исправить проблему:

  • Несопряженное устройство (Xcode> Окно> Устройства и симуляторы> Щелкните устройство левой кнопкой мыши, чтобы разорвать пару с устройством.
  • Перезагрузите iPhone
  • Папка чистой сборки (Xcode> Продукт> Папка чистой сборки)
  • Чистые производные данные (в ../library/Developer/Xcode/DerivedData) * 100009*
  • Очистите папку сборки снова (Xcode> Продукт> Папка чистой сборки)
  • Создать приложение на устройстве.

Я сделал следующее:

  1. Disconnected the device where the app was not getting installed
  2. Connected a different device < It installed on this second device
  3. After some time connected the first device and it worked!

Это очень странно, но это сработало для меня, может сработать и для других и избавить от разочарования.

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

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

Это занимает много времени, и мы выполнили все вышеперечисленные решения, и они вообще не работали, поэтому наша команда решила удалить файлы Pod и снова запустить pod install. наконец, наш OTA загрузил ipa, установленную на устройстве пользователя. лучшее решение

  1. очистить меню проекта> Продукт> Папка чистой сборки и / Users / {ваше имя пользователя} / Library / Developer / Xcode / DerivedData

  2. перейдите в каталог вашего проекта и удалите Podfile.lock,Pods папку,pod _ ***. Framework

  3. запустить pod install снова

Наконец-то я разобрался, что происходит ... почти 2 часа

В моем случае дата моего телефона неверна. Я забыл, что сменил дату на телефоне. Я предполагаю, что из-за этого истек срок действия всех моих профилей подготовки ...

Итак, если вы попробовали все эти ответы, но ничего не работает. Зайдите в НАСТРОЙКИ, проверьте дату вашего телефона.

После того, как я устал от большинства решений, я нашел, что заставляет его работать без каких-либо проблем для меня. Его разрешили, перейдя на developer.apple.com затем account затем Сертификаты, идентификаторы и профили, и я нажимаю ссылку Все под Устройства, а затем добавляю новое устройство.

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

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

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

Этот ответ тоже полезен.

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

Это можно настроить на вашем устройстве iOS в разделе Настройки> Общие> Управление устройством> Приложение разработчика. Убедитесь, что ваша учетная запись помечена как надежная.

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

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

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

У меня была такая же проблема (XCode 11), и ничего не работало, что было здесь написано.

Моя проблема заключалась в том, что у меня на телефоне была бета-версия iOS (13.3). После возврата все снова работало нормально.


Идея: Может быть, устройство также кэширует некоторую информацию о профиле обеспечения, поэтому сброс настроек телефона к заводским настройкам также может исправить это?

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

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

Incorrect target scheme

В то время как конфигурации проекта были настроены следующим образом.

Project configurations

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

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

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

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

[править] Примечание 2020: Раньше я подписывал этот проект вручную. В проектах, где я подписывал автоматически, у меня никогда не было этой проблемы. [/ редактировать]

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

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

В разделе Подписьпосмотрите на свой Идентификатор подписи кода.

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

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

2022 WebDevInsider