Исполняемый файл подписывается с недопустимыми правами в Xcode

113

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

Исполняемый файл был подписан с недействительным правом

Он отлично работал с Xcode 4.x. Кто-нибудь знает, как избавиться от ошибки?

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

Эмми
источник
У меня есть Xcode 8.3.3, и этот ответ действительно
Nuno MSB

Ответы:

102

Я боролся с этой проблемой в течение часа и наконец нашел решение. Оказалось, что команда разработчиков была разной в ProjectTarget и ProjectTests.

Криш Вадхвана
источник
13
Спасибо! Это просто помогло мне и сэкономило много времени!
Marky
Вот Это Да! Спасибо @Krish
Kqtr
вы, сэр, только что спасли мой четверг, не могу вас отблагодарить
Самер Мурад
где я могу найти ProjectTarget и ProjectTests?
Пабло
ах! нашел это! дней на это, и это была только эта установка! ??
Пабло
77

У меня сработал перезапуск Xcode .

RaffAl
источник
15
Итак, Xcode принял универсальное исправление Microsoft. ;) Для записи, это все еще проблема, и перезагрузка все еще исправлена ​​(я использую v7.3.1).
Эрик Сойк,
3
еще +1, столкнитесь с этой проблемой снова, затем погуглите, я здесь приземлился.
jayellos
После нескольких часов проверки каждой детали ... это сработало в XCode 8
Матей Укмар
Есть ли у кого-нибудь твердое решение этой проблемы !!!! Все эти решения выглядят как некие ситуационные обходы. Пожалуйста помоги.
Макс
На самом деле у меня сработало одно и то же
Тахмид Рахман
35

Я обнаружил проблему. Приложение, которое я создал на developer.apple.com, не включает аудио между приложениями. Для файла plist с правами проекта в Xcode установлено значение «ДА» для звука между приложениями (по умолчанию). Как только я изменил настройку конфигурации своего приложения на сайте developer.apple.com, чтобы включить аудио между приложениями. Затем мое приложение запускается на моих устройствах. Я предполагаю, что это новое правило Apple, позволяющее согласовать настройки вашего приложения как на сайте developer.apple.com, так и в настройках проекта xcode.

Эмми
источник
10
Я переключил функцию Inter-App Audio в положение ON, а затем снова в OFF, и таким образом приложение работало ... WT *?
Ферран Мэйлинч
Вау, невероятно. По-прежнему применимое исправление, хотя для меня это была возможность групп приложений.
Келлер
Тоже самое! Это очень странно. Я думаю, вы можете переключить любую возможность, чтобы исправить это.
Андре Саймон
Пробовал все, все еще сталкиваясь с той же проблемой !, любые предложения
Макс
24

Я смог исправить это, включив / выключив право «Game Center» в Xcode 5 :-)

Nik
источник
5
СПАСИБО! Вы не представляете, как я был расстроен все утро, пока не наткнулся на ваш ответ. Определенно исправил это для меня.
Гаспер Коленц 08
1
Имейте в виду, что Xcode сгенерирует для вас профиль обеспечения и аннулирует ваш настраиваемый профиль создания обеспечения.
Van Du Tran
@VanDuTran нет, не будет.
Nik
Это произошло в приложении Xamarin, а также в Visual Studio для Mac. Так что он не изолирован только от Xcode.
Дэн Больё
19

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

Матей Укмар
источник
Очень хороший момент, это происходит, когда вы меняете свою команду в основной цели, но не в тестовой цели. Смена команды в тестовой цели на команду в основной цели решила проблему для меня.
дан
Спасибо!! Это то, что окончательно исправило для меня. Права были отвлекающим маневром.
Reid
19

Для XCode 10 может потребоваться использовать устаревшую систему сборки

Изменения можно внести в настройках файла / проекта. ОШИБКА ITMS-90174: «Отсутствует профиль обеспечения - приложения iOS должны содержать профиль обеспечения в файле с именем embedded.mobileprovision».

Кордова / ионное сообщение: https://github.com/apache/cordova-ios/issues/407

Чен Син
источник
1
хотел бы добавить для пользователей Cordova / Ionic, что вам также может потребоваться изменить сгенерированный проект Xcode для использования устаревшего режима, выбрав «Файл> Параметры проекта / рабочей области» и изменить его на систему устаревшей сборки », как подробно описано здесь: stackoverflow.com/a / 52605878/2503520
Vyrnach
12

Решение для последней версии Xcode :

Сначала вы должны проверить, что включено в вашем Центре участников для вашего конкретного AppID :

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

Затем в соответствующей цели в Xcode , вы должны быть включена той же возможность: В этом случае: App Group, Game Center, In-App Purchase. Все они должны быть включены в вашей цели в Xcode.

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

Однако для режима DEBUG это не имеет значения :

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

это очень важно для вашего режима RELEASE : введите описание изображения здесь

Обратите внимание, что Game Centerи In-App Purchaseвключены по умолчанию в Центре участников, но отключены в цели Xcode.

Бартломей Семанчик
источник
3
Можно ли удалить игровой центр и встроенную покупку с сайта developer.apple.com?
Noitidart
12

Я думаю, что ваша проблема заключается в профиле, который вы использовали xCode4.6, а теперь вы используете xCode5.

Вам необходимо обновить сертификаты / профили обеспечения через XCode> Preferences> Accounts

XCode> Настройки> Учетные записи> Щелкните свою УЧЕТНУЮ ЗАПИСЬ ДЛЯ РАЗРАБОТЧИКА> кнопку «Просмотреть подробности» (внизу справа)> появится экран «Подписание идентификаторов / PPs»> нажмите «Обновить».

Затем снова выберите в настройках сборки правильный профиль, очистите и соберите свой проект.

Надеюсь, это тебе поможет.

Manthan
источник
1
Спасибо за вашу помощь. Я обнаружил проблему. Приложение, которое я создал на developer.apple.com, не включает аудио между приложениями. Для файла plist с правами проекта в Xcode установлено значение «ДА» для звука между приложениями (по умолчанию). Как только я изменил настройку конфигурации своего приложения на сайте developer.apple.com, чтобы включить аудио между приложениями. Затем мое приложение запускается на моих устройствах. Я предполагаю, что это новое правило Apple, позволяющее согласовать настройки вашего приложения как на сайте developer.apple.com, так и в настройках проекта xcode.
Эмми
6

Мне пришлось сопоставить возможности приложения в Xcode5 под

Capabilities -> 
In-App purchase -> ON
Game Center -> ON

с этим в профиле провизирования.

Нитхин Харидас
источник
Также это решило ошибку ответа APNs «Недействительный токен».
hiroshi
добавление права на игровой центр и его удаление тоже сработало для меня. Понятия не имею почему.
Рукшан Марапана
5

xcode 6.1 (образец HealthKit)

Я получал эту ошибку из-за интеграции HealthKit: я включил In-App Purchase, Game Center и Healkit решил мою проблему .. То же самое, что я включил в профиле Provision.

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

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

Винод Джоши
источник
Пришлось сделать то же самое для обмена связкой ключей. У меня также было расширение приложения, мне пришлось сделать это в обоих местах, чтобы оно работало.
CaseyB
5

(Xcode 6.1)

Проблема для меня была в моих настройках сборки; При попытке развертывания на устройстве у меня был установлен профиль Provisioning Profile на рабочий профиль App Store. Я переключил его на «Автоматический», и это решило мою проблему. Вы также можете установить его в свой профиль Dev Provision Profile.

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

Ян Ньюленд
источник
Спасибо! Переключение на «Автоматический» сделало это для меня
Emastmagy MastMagy
Странно, что переход на автоматический режим исправил это, но у меня это сработало. У меня был профиль подготовки com.mycompany. *, И я получал эту ошибку. На вкладке «Возможности» был красный FixMe, но после исправления этой проблемы я все еще получал ошибку неверных прав. Затем я попытался изменить свой профиль подготовки с com.mycompany. * На автоматический, и это устранило проблему. Я дважды проверил, что bundleID - com.mycompany.blabla, так что, похоже, это какая-то ошибка Xcode. Я использую Xcode 6.3.2.
Джим Рэндж
5

У меня была аналогичная проблема, когда я обновился до Xcode 10, я решил проблему, перейдя в File> Project Setting, в опции «New Build System» выберите «Legacy Build System». Это помогло мне, надеюсь, это кому-то поможет.

Хосе Рохас
источник
4

Мне показалось, что простая очистка и сборка все исправили.

максвелл
источник
Для меня это тоже было исправлением.
Enijar
4

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

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

Папон Smc
источник
3

Я решаю эту проблему, удаляя все "PROVISIONING_PROFILE=..."и "PROVISIONING_PROFILE[sdk=iphoneos*]" = ...в project.pbxproj, перезапускаю Xcode и снова устанавливаю профили подготовки для цели.

BabyPanda
источник
3

Если перезапуск xcode не работает, создайте новый профиль обеспечения и обязательно включите свои тестовые устройства.

Мохаммад Алабид
источник
Перезапуск / очистка не помогли мне, но потом я понял, что не добавил свой новый тестовый телефон в профиль Ad Hoc, который я использовал для сборки. Я восстановил / загрузил обновленный профиль, и ошибка исчезла. Примечание. После этого вы можете получить ошибку «безопасности», что означает, что устройству требуется, чтобы вы авторизовали приложение, просто нажмите приложение на устройстве, чтобы активировать предупреждение «доверять разработчику».
SafeFastExpressive
3

В моем случае устройство не было добавлено. Поэтому мне пришлось добавить устройство и создать новый профиль обеспечения.

Хави Валеро
источник
3

Еще одна вещь, которую нужно проверить - убедитесь, что вы выбрали правильные объекты в обоих

Цели -> Ваша цель -> Настройки сборки -> Подписание

и

Проект -> Ваш проект -> Настройки сборки -> Объект подписи кода

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

CupawnTae
источник
2

Кажется, это небольшая ошибка внутри Xcode. Все равно попробуйте заархивировать , даже если есть проблема с entitlements. Если с вашими правами все в порядке, он будет загружен без проблем. Apple примет его, и ваше приложение будет опубликовано в AppStore.

Я сделал это, и это сработало :)

Бартломей Семанчик
источник
2

Это также может быть связано с неправильной схемой.

Саураб Бишт
источник
1

У меня была такая же проблема в XCode 5. Это все равно помогло мне.

XCode > Preferences > Location tab > DerivedData

Нажмите небольшую стрелку влево, чтобы открыть DerivedData в Finder. Переместите в корзину вашего проекта и перестройте.

Скриншот

Prcela
источник
Я полагаю, что должно быть правильное объяснение того, почему удаление производных данных решит проблему.
Kavita
1

Была проблема. Решение: перейдите к правильной цели -> возможности -> у меня возникла проблема с «Покупкой в ​​приложении» и кнопкой, чтобы исправить это. Исправлена ​​проблема с отключенной работой.

Антон Плебанович
источник
1

В моем случае: мне нужно включить Inter-App Audio в

Capabilities -> Inter-App Audio

Думаю, поскольку я использую уведомление Parse.com, ему нужна ссылка на AudioToolbox.framework

Нгуен Тран
источник
1

Включение возможностей -> Inter-App Audio также устранило эту проблему для меня. Я также пытаюсь отправлять push-уведомления через синтаксический анализ

jstn
источник
1

Ответы здесь кажутся немного неадекватными, поэтому я добавляю свои два цента:

Реальное решение заключается в том, что обычно существует несоответствие между тем, что хранится в вашем профиле обеспечения (проверьте на developer.apple.com -> members -> Certificates -> сертификат, который вы используете [обязательно проверьте, есть ли dev / production) и что включено в вашем приложении (дважды щелкните имя проекта), в горизонтальном меню выберите «Возможности» (рядом с «Общие»).

Если вы недавно изменили один из них, обязательно обновите свои сертификаты в XCode -> Preferences -> Accounts -> Details -> Refresh Icon и перезапустите XCode.

Jdero
источник
1

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

BillChan
источник
1

В моем случае мне пришлось принять лицензионное соглашение разработчика Apple.

Войдите в учетную запись разработчика Apple и просмотрите сообщение, подобное приведенному ниже.

«Лицензионное соглашение программы Apple Developer было обновлено. Для доступа к определенным ресурсам членства **** необходимо принять последнее лицензионное соглашение до 28 июня 2016 года».

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

Надеюсь, это сэкономит чье-то драгоценное время.

Danboz
источник
1

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

Файл мобильной подготовки на самом деле НЕ совпадает с файлом прав, созданным Xcode.

Хотя все файлы автоматически обрабатываются программой Apple, они неверны.

Если вы загрузите файл подготовки с портала Apple и откроете его (вы можете открыть его, потому что это просто файл plist, подписанный вашим сертификатом, поэтому он доступен для чтения текстовым редактором) и сравните его с вашим файлом прав (автоматически сгенерированным Xcode и находящимся в файлах проекта) (так что это снова файл plist XML, доступный для чтения текстовым редактором.) Тогда вы увидите разницу.

В моем случае это было право на Game Center. Он был отображен на портале как отмеченный (отмечен по умолчанию), но на самом деле это право не было включено в файл мобильной подготовки. Итак, нужно было удалить его из файла Entitlements.

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

Радек
источник
1

Для тех, у кого такая же проблема с автоматической настройкой профиля в целевых параметрах сборки:

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

В моем случае мне пришлось временно использовать производственные контейнеры iCloud с отладочными сборками. Для этого я вставил

<key>com.apple.developer.icloud-container-environment</key>
<string>Production</string>  

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

<key>TODO</key>
<string>The entry below must be out commented or deleted to use the iCloud development environment.</string>  

И это нарушило переписку и породило ошибку .

Рейнхард Мэннер
источник
Где находится файл прав?
Noitidart
Он находится в папке вашего проекта и называется yourProject.entitlements. Вы можете найти его в навигаторе проекта Xcode.
Рейнхард Мэннер
Спасибо. Кажется, он не был создан, пока я не проверил, а затем не снял флажок "Inter app audio". У меня есть игровой центр и покупки приложений на сайте developer.apple.com, но я им не пользуюсь, это настройки по умолчанию. Поэтому я отметил свои возможности в xcode как «включено», но независимо от того, что я продолжаю получать, «Исполняемый файл был подписан с недопустимыми правами». ошибка. :(
Noitidart
1

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

Я использую производство Provisioning Профиль для запуска для выпуска . Так что я смог решить эту ошибку, используя профиль Adhoc Provisioning Profile.

Махеш
источник