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
В моем случае, вот шаги, которые я решаю проблемы:
- Перейдите в эту папку:
~/Library/MobileDevice/Provisioning Profiles/
- Удалить весь профиль обеспечения
- В меню Xcode 10> Продукт> Чистая папка сборки
- В меню XCode 10> XCode> Настройки> Аккаунт> Загрузить профили руководства
- В меню Xcode 10> Продукт> Построить/Архивировать
Причина, по которой необходимо выполнить вышеописанные действия, состоит в том, чтобы удалить старые профили обеспечения, которые испортили процесс сборки.
Ответ 12
Эта проблема возникла в Xcode 10.3 после того, как я переключился на свою цель модульного тестирования XCTest, а затем вернулся к цели времени выполнения проекта.
Оказывается, в моем профиле обеспечения были выбраны разные команды для каждой цели.
Чтобы это исправить:
Ответ 13
или также измените параметры рабочего пространства для каждого пользователя вместе с настройками общей рабочей области в новую систему сборки, подобную этой
Ответ 14
В моем случае, где больше ничего не помогло, я сделал следующее:
- изменить AppID на новый
- XCode автоматически генерирует новые профили обеспечения
- запустить приложение на реальном устройстве → теперь оно работает
- верните AppID к исходному идентификатору
- работает
Перед этим я опробовал каждый шаг, который был упомянут здесь. Но только это помогло.
Ответ 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... Я пытался с файлом рабочей области, и он работает.
По крайней мере, это решило одну из моих проблем, ха-ха