В правах указан… профиль. (0xE8008016). Ошибка iOS 4.2


142

Я получаю «ужасную» ошибку The entitlements specified in your application’s Code Signing Entitlements file do not match those specified in your provisioning profile. (0xE8008016).при попытке развернуть свое первое приложение на устройстве с iOS 4.2.6 (Verizon) без взлома. Дело в том, что у меня Entitlements fileв проекте нет, так как я его вообще не распространяю, только ставлю на одно устройство. Я прошел через все обручи и петли, которые Apple дает вам (сертификат, устройство, подготовка) до буквы, и я не могу понять, что происходит не так.

Может ли кто-нибудь помочь мне с этой проблемой?


предлагаю вам просмотреть следующий пост. stackoverflow.com/questions/1410080/... discussions.apple.com/thread.jspa?threadID=2162558
Jhaliya

15
Странно, у меня голос против. Не мог бы человек, который это сделал, объяснить?
Ричард Дж. Росс III

Этот вопрос действительно помог мне , потому что оказалось, что я сделал есть файл предоставляемых прав (и вы упоминая это заставило меня об этом знать). Удаление ссылки Build Settings > Code Signing > Code Signing Entitlementsпозволило мне создать этот проект.
Джефф

Ответы:


64

Просто столкнулся с этой проблемой сам, проблема заключалась в том, что у меня был файл Entitlements.plist в проекте как часть специального распределения, а его свойство get-task-allow (т.е. 'можно отлаживать') было установлено на NO - установка значения ДА устранила проблему и разрешила запуск приложения из Xcode4 на разрабатываемом устройстве.

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


Спасибо - это наконец решило мою проблему.
EasyCoder

Спасибо! Это убивало меня.
alan

"get-task-allow = NO" заставил мое приложение видеть iCloud при распространении как AdHoc ipa.
Tertium

7
Кстати, убедитесь, что вы указали правильный идентификатор знака именно в Target -> Build Settings , а не в Project . Цель имеет приоритет над проектом . Я забыл об этом и получил сообщение об ошибке 0xE8008016.
Tertium

Еще одна вещь, если ваше приложение использует «iCloud Key-Value Store» в правах, вам необходимо удалить этот ключ для версии Debug. В противном случае приложение не будет работать на вашем устройстве и будет продолжать выдавать эту ошибку, даже если для параметра get-task-allow установлено значение YES.
странные времена

50

У меня была эта проблема с Xcode 4.2.1.

Для меня это не имело никакого отношения к файлу Entitlements или Ad-hoc ...

Я возвращался к старому проекту и забыл добавить свой новый iPhone в резерв.

Глупая ошибка, но также и соответствующее глупое сообщение об ошибке ...: - /


7
Глупая ошибка, которую, очевидно, совершили мы оба.
Патрик Бассут

5
Хотел бы я +2, что за нелепое сообщение об ошибке для этой проблемы. Я бы искал часами, если бы не твой пост.
Уэсли Смит

Спасибо, что указали на это, я тоже сделал эту глупую ошибку. наконец решено.
Gaurav

44

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


3
Большое спасибо, вы спасли мне день
Жюльен Атомас

Ты спас мой бекон
Тео Бендиксон

Огромное спасибо. Ты спас мне день. :)
pratik

Я боролся с этим час, пока не увидел ваш комментарий, спасибо !!
ivmos

Я был мертв внутри, пока не наткнулся на этот комментарий.
Dog

29

У меня была эта проблема с правами iCloud. Моя проблема заключалась в том, что я забыл включить iCloud для своего идентификатора приложения на портале Provisioning Portal.

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


1
У меня снова повторилась эта ошибка. Мне нужно было добавить мое новое устройство в профиль обеспечения разработки, а затем обновить список в Xcode.
adjwilli

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

У меня была проблема с правами, связанная с iCloud, поскольку мое приложение получало доступ к документам iCloud. Мне пришлось обновить права iCloud в разделе «Возможности».
user3300864 05

20

Сохраните свой файл прав в Target> Build Settings> Code Signing> Code Signing Entitlements.

Перейдите в Target> Capabilities. Включите / выключите или выключите / включите одну из возможностей.

Запустить.


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

1
Это сработало для меня. Связанные домены были включены для меня. Я выключил, и проблема была решена.
BigRon

19

Что сработало для меня, так это полное удаление файла прав из списка групп и из параметров сборки как в Project, так и в Target. Затем я воссоздал права на вкладке «Сводка» в целевом объекте, и он загрузился нормально без каких-либо сообщений об ошибках.


Как указано выше, значение
Права

1
удаление файла с правами и добавление его снова сработало для меня - я тоже сделал чистку
Джаспер

Это был мой ключ! Я проверил настройки проекта и целевой сборки. В разделе «Подписывание кода» есть настройка «Права на подписание кода» - я развернул, выделил строки отладки и выпуска и нажал клавишу «Удалить». Это позволило моему приложению построить без ошибок. Тем не менее, он все равно не будет отлаживать - он сразу же выходит с сообщением в консоли, мне придется его поискать.
Jay Imerman

1
Это также сработало при попытке запустить приложение HealthKit "fit" для iOS8 - в файле прав была дополнительная строка идентификатора. Удаление его позволило запустить проект после выполнения других шагов, упомянутых в этой ветке
Alex Stone

Это устранило мою проблему с iCloud. Похоже, в файле Entitlements есть пара дополнительных настроек, которых там не было. Удаление их и все и восстановление вкладки «Общие» сработало.
ЭндиДанн

15

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

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

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

Очевидно, что отсутствие вашего устройства в профиле подготовки также вызывает это сообщение об ошибке.


Согласитесь - если у вас нет правильного профиля подготовки, вы можете получить эту ошибку.
Мэтт

12

Ни один из многих ответов не устранил для меня ошибку 0xE8008016.

Но когда я выбрал «Automatic Device Provisioning» в Xcode 4> Organizer> Devices> Provisioning Profiles, это наконец сработало.


1
Это круто! У меня тоже сработало. Я думаю, что это была комбинация всего вышеперечисленного, поскольку приложение изначально было разработано с XCode 3, а затем доведено до версии 4.2, я удалил файл Entitlements.plist из проекта, удалил запись о правах подписи кода в Build Settings / Code Раздел подписи, затем установите профиль подготовки на автоматический. Последний сделал это.
Jay Imerman

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

1
Это сделало это для меня. Я не уверен, как были удалены несколько профилей подготовки группы разработчиков iOS, но нажатие кнопки «Обновить» на странице профилей подготовки, на которую вы ссылаетесь, устранило эту ошибку для меня.
sean808080

11

В моем случае это была глупая ошибка. Я неправильно установил схему «Выполнить», чтобы использовать конфигурацию сборки «Распространение» вместо конфигурации «Отладка» или «Выпуск». Глупая ошибка, но для ее отладки потребовалось время, поэтому я собираюсь добавить свой ответ, чтобы улучшить базу знаний внутри переполнения стека!


10

Удалите свои профили подготовки, выполните «Очистить все», убедитесь, что настройки подготовки верны, загрузите повторно и попробуйте запустить снова.


Какую версию Xcode вы используете? Если это 4.0, то с этим были проблемы. Возможно, вам придется перезапустить Xcode или даже перезагрузить Mac. Убедитесь, что настройки подготовки правильные как для проекта, так и для цели. Однако целевая установка имеет приоритет над проектом.
W Dyson

Я думаю, что это проблема с устройством, это iPhone 4 от Verizon, и с тем же профилем подготовки я могу развернуть приложение на своем iPad. У кого-нибудь еще была эта проблема с iPhone 4 от Verizon?
Ричард Дж. Росс III

Вы используете старый профиль обеспечения? Вам необходимо добавить Verizon iPhone в качестве устройства на портале Provisioning Portal, а затем обновить профиль разработки, повторно загрузить и переустановить новый профиль. Если это не сработает, вам нужно будет предоставить дополнительную информацию.
W Dyson

Я только вчера настроил профиль обеспечения, как он может быть старым? Apple только что утвердила мой запрос разработчика, поэтому он был совершенно новым. В любом случае, я посмотрю, как это работает, когда мы тогда обновимся до iOS 4.3.
Ричард Дж. Росс III

«Чистка» сделала это за меня. -_-
Cœur

5
  1. Откройте «Портал подготовки iOS» в Safari.
  2. Нажмите «Устройства» на боковой панели.
  3. Зарегистрируйте UDID вашего устройства
  4. Нажмите 'Provisioning Profiles'
  5. Отредактируйте профиль своего приложения.
  6. Выберите только что добавленное устройство.
  7. Загрузите файл .mobileprovision.
  8. Установите его.
  9. Строим снова.

4

У меня была такая же проблема в моем приложении, через несколько месяцев это конкретное приложение работало нормально.

Проблема заключалась в том, что возможности, настроенные в моем проекте Xcode (в разделе Targets -> {ProjectName} -> Capabilities), не совпадали с возможностями, настроенными в профиле подготовки (вы можете проверить это в центре участников Apple в разделе Идентификатор -> Приложение Идентификаторы -> {идентификатор вашего приложения}. В центре для участников я увидел, что Game Center включен, поэтому в моем проекте я также включил Game Center. Затем приложение было запущено.

До сих пор не знаю, как это работало. Это до сих пор загадка :)


Теперь я понял, что push-уведомления больше не работают. Я удалил возможности Game Center в Xcode. Приложение теперь работает, но push-уведомления больше не приходят. Кто-нибудь знает почему?
bobsacameno

4

Для меня отметьте опцию «Автоматически управлять подписью» в Target, решите проблему!



3

Если вы не меняли ничего, связанного с сертификатами (не заменяли и не обновляли их), просто выполните Product -> Clean. Мне это помогало несколько раз. (Xcode 6.2)


2

Обновление до XCode 4 устранило проблему.


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

@IanPinto Я согласен. Основная причина того, что это принятый ответ, заключается в том, что это сработало для меня . Это уже не очень полезная информация, и я проголосовал за большинство других ответов в этом посте, поскольку все они содержат очень ценную информацию для людей, которые будут смотреть на это в будущем. Самостоятельные ответы на SO хорош тем, что они не помещаются автоматически в верхнюю часть стека, так что не многие люди, в любом случае, увидят этот ответ :)
Ричард Дж. Росс III

2

Я столкнулся с этой проблемой сегодня, и я выдергивал волосы, пытаясь понять это. Как и многие здесь, это сработает, если я удалю параметры iCloud в своем файле прав. Когда я отправлялся отлаживать приложение с включенными параметрами iCloud, я получал ошибку 0xe8008016. Это было сразу после отзыва и восстановления новых сертификатов.

Решением для меня было включение поддержки iCloud для автоматически созданного профиля команды Xcode. Войдите в инструмент онлайн-подготовки, перейдите App IDs, щелкните Xcode iOS Wildcard App ID, щелкните edit, включите iCloud, установив флажок и, наконец, нажавDone . Обновите свои профили в Xcode, и тогда он начнет работать.

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


1
ДА! Это была моя проблема, и включение iCloud для идентификатора всех приложений помогло. Большое спасибо
Гай Морейллон

2

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


что я могу сделать, если хочу протестировать профиль приложения, загруженного в App Store? Как это сделать?
bobsacameno

2

Это сработало для меня ...

  1. Я удалил Entitlementsфайл из target.
  2. Удалил приложение со всех моих устройств
  3. Cleaned сборка в Xcode
  4. * необязательно удалить профиль обеспечения и повторно добавить его

Надеюсь, это сработает и для вас, ребята :)


удалил файл Entitlements из цели, у меня работает. Но не делайте этого, если это лучший способ сделать это.
YuAn Shaolin Maculelê Lai 01

2

Вот что решило мою проблему: удаление пути в разделе «Права на подпись кода» в настройках сборки Targets.


Пожалуйста, объясните "как"?
Агент Зебра,

@AgentZebra Щелкните основной файл проекта> выберите свое приложение в «Цели»> «Параметры сборки»> «Подписание»> «Права на подписание кода», удалите указанное там значение.
weienw

2

Мой профиль подготовки от разработчика Apple соответствует моим возможностям Xcode, но он все равно не будет встроен в мое устройство, пока я не сделаю следующее:

  1. Удалите / удалите файл прав из вашего проекта Xcode.

  2. Вернитесь на вкладку возможностей Xcode

  3. Нажмите кнопку «Исправить проблему», чтобы Xcode повторно добавил файл прав.

Сработал для меня, надеюсь, это кому-то поможет.


2

Это случилось со мной в Xcode 8, частично это было вызвано новой Provisioning Profileнастройкой сборки, так как в этой версии Xcode есть две записи для профиля подготовки:

  • Профиль подготовки
  • Профиль инициализации (устарел)

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


1

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

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


1

У меня был старый проект и такая же проблема, и я решил.

1. Перейти к резюме
2.В есть группы связки ключей и удалите объект групп связки ключей.

Я надеюсь, это сработает для вас. С уважением.


1

Я использую xcode 6 и сталкиваюсь с этой проблемой для одного конкретного iphone 4

наконец, я перехожу к устройству => профиль обеспечения =>

а затем добавьте профиль вручную, и проблема будет устранена.


1

Для меня в Xcode 5.1 я получал The entitlements specified in your application’s Code Signing Entitlements file do not match those specified in your provisioning profile.при попытке протестировать приложение на моем устройстве. Срок действия сертификата разработки устройства истекает в феврале 2015 г.

Проблема решена:

Выбрано Target->Capabilities в GameCenter, здесь я получал ошибку в праве GameCenter, так как он не был добавлен в проект, хотя первая версия приложения была выпущена с помощью того же XCode 5.1, но раньше таких ошибок не было.

Ниже была дана кнопка с названием Fix Issue . При нажатии на него добавляется право GameCenter, и проблема решена.

После вардов экран выглядит так:

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

Для меня сертификат не имел никакого отношения. Приложение теперь успешно работает на устройстве.


1

Еще одна потенциальная проблема, которая вызовет это сообщение об ошибке: если вы используете совершенно допустимый профиль подготовки для основного приложения, но у вас просроченный или недействительный профиль подготовки для расширения виджета Today. Думаю, то же самое будет и с расширением для Apple Watch.

Проверьте все анкеты!


1

Проверьте доступ к KeyChain!

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


1

Код, над которым я работал, имел другой идентификатор пакета в Info-plist, чем в Product Bundle Identifier настройке сборки.

Я нашел это, потому что заметил это сообщение в консоли устройства в представлении устройств:

MIS: entitlement 'application-identifier' has value not permitted by provisioning profile 'iOS Team Provisioning Profile: com.xxx.yyy'


0

Если вы пытаетесь активировать синхронизацию iCloud, вам необходимо включить iCloud для AppID, который используется для создания профиля обеспечения разработки (что Xcode делает автоматически). Вам также необходимо включить это для профилей распространения.

Сложность состоит в том, что при обновлении профилей в Xcode это не вызывает обновления профилей; они просто перезагружаются. Таким образом, на вашем портале подготовки iOS в разделе «Подготовка / разработка» вам необходимо проверить профиль, помеченный (Управляется Xcode), и удалить его (кнопка «Удалить выбранное»). Сделайте это для ВСЕХ профилей разработки и распространения, которые вам нужно восстановить.

Теперь в Xcode в Организаторе удалите профили подготовки, которые вы собираетесь заменить.

Теперь обзавестись новыми. Если вы разрабатываете более чем для одной команды и хотите обновить только конкретную, выберите соответствующую команду на левой панели в разделе «КОМАНДЫ», в противном случае выберите «Профили обеспечения» в разделе «БИБЛИОТЕКА», затем выберите «Обновить».

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.