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

222

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

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

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

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

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

  • Очистка полученных данных

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

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

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

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

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

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

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

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

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

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

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

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

настройки профиля обеспечения

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

Даниэль Андерссон
источник
Вы добавили учетную запись разработчика в настройках XCode?
Анкит Джаясвал
@AnkitJayaswal Несколько раз, никогда не заставлял его работать. Однако я смог решить эту проблему путем понижения до 9.4.1, поэтому проблема, похоже, как-то связана с Xcode 10. Вы должны быть в состоянии представить приложения со старой версией XCode в течение некоторого времени, верно?
Даниэль Андерссон
2
Да , вы не можете представить сборки из Xcode 9 и ее версии до марта 2019 developer.apple.com/ios/submit
Анкит Jayaswal
Также я пробовал с Xcode 10, и я не сталкиваюсь с такими проблемами missing provisioning-profile.
Анкит Джаясвал
3
Изменили ли вы дату вашего iPhone после истечения срока действия вашего сертификата? Я столкнулся с этой проблемой по этой причине.
Anuved Nayak

Ответы:

478

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

Стивен
источник
1
Это сработало и для меня, поэтому я могу создавать приложения с Xcode 10 без необходимости возвращаться к Xcode 9. Я отправил сборку в App Store Conenct и смог опубликовать ее в TestFlight. Таким образом, есть несколько доступных обходных путей, пока проблема не будет исправлена ​​должным образом. Какие-нибудь заметки от Apple, указывающие, как долго вам будет разрешено использовать устаревшую систему сборки при отправке приложений?
Даниэль Андерссон
9
Но что это значит? Какой эффект это имеет и как мы узнаем, что можем снова изменить настройки?
Сия
4
Это работало на сборке Cordova - отличная работа. Очевидно, что в Cordova CLI есть аргумент для пропуска: cordova build ios --buildFlag = '- UseModernBuildSystem = 0' Подробнее здесь: github.com/apache/cordova-ios/issues/407
Виктор
6
В разделе «Файл» нет настроек проекта. Мне пришлось нажать на «Настройки рабочего пространства», а затем выбрать «Legacy Build System» из выпадающего списка «Build System» в настройках Shared и Per-User Workspace.
красный дьявол
9
Не работает для меня: ((. Моя версия Xcode - 10.1. Версия моего iPhone OS - 12.1
Хамед Гадириан
94

@ Stefhen TKS это решено для меня. Мне просто нужно пойти -> Файл -> WorspaceSettings -> Настройки сборки (изменить здесь на "Legacy Build System")введите описание изображения здесь

введите описание изображения здесь

Виниций Тодеско
источник
1
Разочарование, это все, что работает для меня тоже. Я зарегистрировал свой UDID, создал свой профиль, у меня есть свидетельство разработчика, все это связано с разрабатываемым приложением, сделало все, что нужно, чтобы иметь возможность работать напрямую на устройстве, по-прежнему каждый раз происходит сбой - пока я не переключил его на Наследие, работал первый раз ...
Грант
62

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

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

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

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

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

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

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

Рикард Элимяа
источник
Чтобы прояснить (потому что я был смущен этой рекомендацией, когда я впервые прочитал ее): это изменение выпуска для iOS Developer только во время тестирования непосредственно на подключенном устройстве; нужно будет вернуться к iOS Distribution при сборке для загрузки в testflight / app store, верно?
ToolmakerSteve
1
Во всем честно: нет. Мне не нужно было этого делать. Одной из возможных причин этого может быть то, что мне пришлось заново настроить сертификаты и, возможно, «установить» дистрибутив перед разработкой. Я только догадываюсь, но отвечу на ваш вопрос: я все еще настроил их как разработку и выбрал Distribution при архивировании сборки для загрузки в App Store.
Рикард Элимяэ
2
Это действительно помогло мне! <3
bobber205
Это исправило это для меня. Я только получал проблему при попытке профилировать приложение, оно работало нормально, я просто запустил его нормально. У меня был аккаунт разработчика для отладки и дистрибутив для релиза. Это, честно говоря, похоже на ошибку XCode / Profiling.
Джеймс
1
Получилось, но нужен еще один шаг. Поскольку я занимался тестированием на привязанном iPhone, я не беспокоился о том, чтобы зайти в App Store и настроить свой сертификат «iOS Distribution». Поскольку я занимался разработкой, я предполагал, что в App Store потребуется только настройка сертификата «iOS Development». Ну, это не сработало, пока у меня не было и «iOS Development», и «iOS Distribution».
Stagr.Lee
41

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

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

Chen
источник
Как ты это сделал?
красно-дьявол
2
@ red-devil Итак, вам придется обновить управление подписью во всех ваших целевых проектах.
Чен,
Спасибо, парень, все приведенные выше ответы не решили мою проблему. Ваш ответ сделал волшебство.
HungrySoul
26

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

Джером Ли
источник
1
Это сработало для меня (плюс удаление производных данных), тогда как предложения использовать устаревший режим не сработали.
Крис
1
Оказалось, что у меня была другая команда для моего обычного и моего тестового задания, что вызывало проблемы, которые могли быть сброшены только при удалении производных данных.
Крис
1
Чистая очистка папки сборки (команда + shift + K) исправила проблему для меня. Спасибо @JeromeLi!
Chilly
1
Сначала я попробовал принятый ответ («Legacy mode»), и он сработал для меня. Затем я вернулся к «Новая система сборки» и попробовал это («Очистить папку для сборки»). Это тоже сработало. Таким образом, для меня это лучший ответ.
user1527225
1
Это сработало для меня, спасибо. (Ps: только у моего iPhone 11 была эта проблема, у моего iPhone Xs Max такой проблемы нет, и iPhone 11 впервые установил мой тестовый проект)
RateRebriduo
14

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

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

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

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

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

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

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

Стюарт Томсон
источник
2
Это исправило это для меня, где ничто другое не сделало. Спасибо за публикацию.
Кристиан Чоун
2
Большое спасибо за указание на это. Я переименовал проект и поменял команды. Тестовая цель имела старое название команды. Я боролся в течение нескольких часов. Еще раз
Alix
После нескольких часов головной боли это исправило это для меня. Большое спасибо!
Джонсон
8

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

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

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

Raptor
источник
6

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

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

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

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

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

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

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

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

Удалить
источник
5

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

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

Исправить это :

  • Чистая папка сборки

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

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

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

Дэвид Мэйс
источник
5

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

Rewieer
источник
1
Спасибо! Это была проблема, с которой я столкнулся при работе с React Native
Yannickv
4

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

Вахида
источник
3

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

Используйте меню «Xcode -> Preferences ... -> Accounts» и убедитесь, что все используемые вами учетные записи зарегистрированы, чтобы профили инициализации были доступны.

Алекс Алексиев
источник
2

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

введите описание изображения здесь

Арджун Патель
источник
1

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

Апостолос Апостолидис
источник
1

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

  1. чистый project menu > Product > Clean Build Folder и/Users/{you user name}/Library/Developer/Xcode/DerivedData

  2. перейти в каталог проекта и удалить Podfile.lock, Podsпапки,pod_***.framework

  3. беги pod installснова

Готово

Амир Ардалан
источник
1

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

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

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

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

3) Сделал «чистую папку сборки» (Product -> Clean Build Folder)

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

подробности настроек сборки

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

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

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

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

9) Запустил приложение. Это сработало!

Моника Гранбуа
источник
У меня была такая же проблема с моими яблочными часами, и это помогло мне. Я также сделал unpair и спарить мои часы Apple где-то в процессе. Спасибо!
Раду Влад
1

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

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

  • Непарное устройство (Xcode> Window> Devices And Simulators> Устройство левой кнопкой мыши, чтобы отключить устройство.
  • Перезагрузите iPhone
  • Чистая папка сборки (Xcode> Продукт> Чистая папка сборки)
  • Очистить производные данные (в ../library/Developer/Xcode/DerivedData)
  • Чистая папка сборки снова (Xcode> Продукт> Чистая папка сборки)
  • Сборка приложения на устройстве.
Milander
источник
В моем случае я исправил проблему с помощью этих шагов, не отключая устройство.
Мухаммед Юсуф
0

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

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

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

itinance
источник
0

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

Пушпарай Самант
источник
0

Похоже, что 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/

Артем Шевцов
источник
3
замечательно. но если вы будете создавать приложения для магазина приложений, он не позволит вам загрузить ipa, если вы используете бета-версию программного обеспечения
Yasha
0

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

SwiftNewling
источник
0

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

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

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

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

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

Анис Хикмат Абу Хмиад
источник
0

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

Эмин Дениз
источник
0

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

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

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

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

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

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

введите описание изображения здесь

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

Андрей Калазанс
источник
0

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

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

Неверная схема цели

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

Конфигурации проекта

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

libec
источник
0

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

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


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

0x45
источник
0

Для меня это сработало, чтобы удалить Capability, а затем добавить его обратно.

Вкладка «Возможности»

Александру Моток
источник
0

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

  1. Отключил устройство, на котором приложение не было установлено
  2. Подключено другое устройство <Установлено на этом втором устройстве
  3. Через некоторое время подключил первое устройство и все заработало!

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

Омкар Джадхав
источник
0

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

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

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

Буг
источник