Ошибка кодового знака с Xcode 3.2

У меня была полностью рабочая среда сборки перед обновлением до iPhone OS 3.1 и Xcode 3.2. Теперь, когда я пытаюсь выполнить сборку, я получаю следующее:

Ошибка кодового знака: профиль Provisioning "FooApp test" указывает идентификатор приложения "no.fooapp.iphoneapp" , который не соответствует текущему параметру "TGECMYZ3VK.no.fooapp.iphoneapp"

Проблема заключается в том, что Xcode каким-то образом удается подумать, что профиль обеспечения "FooApp Test" указывает идентификатор приложения "no.fooapp.iphoneapp" , но это не так.

В организаторе (и на веб-сайте портала разработчиков iPhone) идентификатор приложения правильно отображается как "TGECMYZ3VK.no.fooapp.iphoneapp".

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

Что может быть причиной этой проблемы?

Обновление: я попытался создать новый профиль подготовки, но все равно не повезло. Я также попробовал просто изменить приложение, указанное в Info.plist, на "no.fooapp.iphoneapp" . Сборка успешно завершена, но теперь я получаю сообщение об ошибке от организатора:

Исполняемый был подписан с недопустимыми правами. Права, указанные в вашей заявке, подписываются на файлы, не соответствующие тем, которые указаны в профиле обеспечения. (0xE8008016).

Это кажется разумным, так как профиль обеспечения по-прежнему имеет идентификатор приложения TGECMYZ3VK.no.fooapp.iphoneapp.

Я также дважды проверил, что все сертификаты действительны в Keychain.

Итак, мой вопрос в том, как я могу получить Xcode, чтобы увидеть правильный идентификатор приложения?

ОБНОВЛЕНИЕ: Как отмечено ниже, проблема заключается в удалении всех профилей подготовки, сертификатов и т.д., создании новых сертификатов/профилей и их повторной установке. Если у кого есть какие-то другие решения, они будут рады.:)

Ответ 1

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

Ответ 2

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

Что в разделе Настройки → Общие → Профили

Это случилось со мной, когда я получил новый Mac. Вы исправите это, не беспокойтесь.

Ответ 3

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

  • перезагрузил мой mac
  • перезагрузил мой iPhone
  • удалил все мои профили настройки iphone с телефона, используя XCode
  • удалил все профили из моего mac (~/Library/MobileDevice/Provisioning Profiles для меня)
  • что еще? удаленная сборка, перезапустил XCode, установил обновление до 3.1.2 sdk, пожертвовал цыпленком.

И вот, теперь он работает, ошибка ушла. Это серьезная территория вуду.

Ответ 4

Кроме того, убедитесь, что вы добавили ссылку на имя файла права доступа "dist.plist" в вашей конфигурации проекта CODE_SIGN_ENTITLEMENTS.

Ответ 5

Проверяйте права доступа кодовой подписки в информации как для объекта сборки, так и для основного приложения - если права на подпись кода указаны, либо удалите его

Ответ 6

В XCode на панели "Группы и файлы" разверните "Цели" и дважды щелкните мышью по целевой точке приложения.

Это вызовет панель "Информация" для вашей цели. В разделе "Построение" проверьте раздел "Подписание кода" для любых старых профилей. Это произошло со мной много раз, особенно после обновления до новой версии sdk и iphone os

Ответ 7

Quick Hack, если вы находитесь на Xcode 4.3.

В Xcode под Настройки проектa > MyTarget > вкладка "Сводка" полностью внизу установлен флажок "Разрешить права". Когда я снял флажок, это заставило ошибку уйти.

Ответ 8

После того, как я долгое время был в тупике, я снова просмотрел настройки и обнаружил, что я изменил идентификаторы "Sign Signing Identity" и "Any iPhone OS Device". - Ключ, который я имел к этому, показал.

  • Удаление всех профилей с телефона
  • Сборка и хостинг.

В этот момент xcode пытается установить телефон (устройство)

  1. Изучите телефон, чтобы узнать, какой профиль подготовки был добавлен.

Поскольку я префикс всех моих профилей "AdHoc" или "Development" или "AppStore", я сразу понял, что процесс установки помещает профиль разработки на устройство, а не профиль AdHoc.

Ответ 9

Внутри ресурсов /Entitlements.plist есть логическая "get-task-allow", если это не проверено, проверьте ее. Это исправило проблему для меня.

Ответ 10

Устройство не может быть в списке. Попробуйте изменить профиль подготовки.

Ответ 11

Просто добавьте примечание здесь: я столкнулся с той же ошибкой (0xE8008016) после замены моей логической платы Macbook (хотя, я думаю, у вас будет такая же проблема на совершенно новом Mac), и после нескольких часов по кругу Я понял, что у портала программы разработчиков iPhone есть отдельные сертификаты для Разработка и Распространение.

Изменение аппаратного обеспечения означает, что вам нужно переиздать оба сертификата - я переиздал Developer, но не Distribution. Поскольку мое имя не изменилось, когда мое оборудование (и сертификаты были идентифицированы по имени владельца), это создало сложную проблему, чтобы заметить;) Надеюсь, это сэкономит кому-то свое разочарование.

Ответ 12

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

Ответ 13

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

Ответ 14

Проблема заключается в файле project.pbxproj, расположенном внутри файла .xcodeproject [вашего проекта]. Если вы почувствуете смелый щелчок правой кнопкой мыши на .xcodeproject и просмотрите содержимое, откройте "project.pbxproj" с помощью текстового редактора плана. Внутри найдите наступательный путь и исправьте его. В моем случае я просто удалил весь путь и оставил "Entitlements.plist", и он очистил мои проблемы. Я настоятельно рекомендую создать резервную копию вашего .xcodeproject, прежде чем пытаться это сделать.

Ответ 15

Дважды щелкните цель, затем выберите вкладку "Свойства". Измените com.yourcompany.${...}.

Ответ 16

Иногда Xcode автоматически не копирует ваш профиль обеспечения в нужное место. В моем случае это было правдой.

Убедитесь, что ваш профиль обеспечения находится в каталоге ~/Library/MobileDevice/Provisioning Profiles, и если вы не просто перетаскиваете, очищаете и создаете