Xcode 5: ошибки при подписании кода

Я создал новое приложение, которое будет поддерживать IOS 7. Я получил новый XCode 5 GM и попытался подписать мои приложения, используя мой свежий профиль и дистрибутив, но у меня проблемы с распространением. Я постоянно получаю следующую ошибку:

"Недействительные права на подписание кода. Права в вашем приложении сигнатура пакета не соответствует тем, которые содержатся в профилирование. Согласно профилю обеспечения, bundle содержит ключевое значение, которое не допускается: '[XXXX.com.sample.company]' для клавишных групп keychain-access.

Также та же ошибка для ключевого значения, называемого application-identifier.

Снимок экрана с ошибкой:

enter image description here

Ответ 1

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

enter image description here

Ответ 2

Если вы похожи на меня, и вы думаете, что попробовали ВСЕ, архивировали свой проект более десяти раз, ударяли головой по клавиатуре и все еще получали эту ошибку. Пожалуйста, сделайте себе одолжение и просто Перезагрузите XCode, это сработало для меня. Когда-то Apple... Я тебя ненавижу.

Ответ 3

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

  • Предпочтения Xcode
  • вкладка "Аккаунты"
  • Выберите свой Apple ID
  • Нажмите кнопку "Сведения о просмотре" на панели сведений Apple ID.
  • Нажмите кнопку "Обновить" в левом нижнем углу.

Ответ 4

В моем случае я активировал те же возможности в Xcode, что и в службах приложений на developer.apple.com. Это работает для меня.

enter image description here

enter image description here

Ответ 5

В моем случае (извините) я переключил "Team" на "None" in → General → Identity

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

Xcode иногда сильно разбирается в подписи кода. Или, мы просто смертные просто недостаточно умны, чтобы понять, что он делает, конечно. Не сдавайтесь, мы все время подвергаемся пыткам, связанным с подделкой кода!

Ответ 6

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

Ответ 7

Если кто-то использует GameCenter, проверьте этот раздел в своей цели. Я работал с каким-то старым проектом, и было 2 ошибки (но все работало нормально). Отключение и включение этой проблемы позволило решить эту проблему. enter image description here

Скорее всего, это действие добавляет право Game Center к идентификатору приложения и обрабатывает его самостоятельно.

Ответ 8

1.Перейдите в папку проекта, удалите файлы *.entitlements. 2. Затем перейдите в цель проекта xcode → настройки сборки → права на подписание кода - удалите значения 3.Clean 4.Run

Ответ 9

Ах, эта славная ошибка. Для меня всякий раз, когда я вижу эту ошибку, я проверяю следующие вещи:

1. Разрешить XCode постоянно получать доступ к вашей информации профиля обеспечения.. Если XCode продолжает спрашивать, когда вы запустите его, чтобы получить доступ к частным файлам вашего компьютера, чтобы он мог получать информацию профиля профиля с параметрами, позволяющими всегда получать доступ, а не теперь или всего лишь один раз - установите для него ВСЕГДА ДОСТУПНЫЙ доступ

2. Если у вас есть старые файлы прав, которые пинают ваш проект, избавитесь от них и любых признаков из них - если вы видите файл .entitlements в своем проекте, удалите его (или, по крайней мере, удалите ссылку на него, если вы не знаете, убедитесь, что вы готовы удалить его прямо), затем убедитесь, что строка "Подписание кода" в разделе "Подписание кода" в настройках сборки пуста

3. Проверьте свои службы приложений онлайн и сопоставьте их со своими службами в XCode для приложения. Перейдите в Центр пользователей Apple и проверьте идентификатор приложения для своего приложения, нажмите на приложение, чтобы увидеть его "Службы приложений", и посмотрите что вы проверили, затем перейдите на XCode и проверьте раздел "Возможности", чтобы убедиться, что у обоих есть тот же список сервисов Apple на

4. Перед проверкой убедитесь, что вы назначили действительный профиль Provisioning Profile. - дважды проверьте профиль своего приложения для вашего приложения в Центре пользователей Apple, убедитесь, что он не истек, имеет правильный идентификатор приложения с правильным идентификатором пакета и распределение. Загрузите и щелкните новый профиль обеспечения, чтобы убедиться, что XCode имеет его, или перейдите в XCode > Настройки > Учетные записи > нажмите на свою учетную запись и "Просмотреть детали", затем нажмите кнопку нижнего угла, чтобы синхронизировать все профили с XCode. Вы должны иметь профиль, доступный для выбора в разделе "Подписание кода" . После того, как у вас есть правильный профиль подготовки, вы можете установить строки "Sign Signing Identity" для правильной опции для этого профиля обеспечения.

Примечание. Если вы выполняете сертификат распространения, он может помочь установить все строки "Sign Sign Identity" для идентификатора, который вы используете для распространения, включая строки отладки

5. ЕСЛИ ВСЕ ЭЛЕМЕНТЫ НЕИСПРАВНОСТИ - Очистите свой проект и перезагрузите XCode, и некоторые волшебства Apple могут нормально работать при следующем открытии вашего проекта и попытаться подтвердить

Ответ 10

Если вы строите старый проект 3.1.5, у Xcode 5 есть некоторые ошибки, которые, к сожалению, делают невозможным ответ Бенджамина, поскольку нет профилей Provisioning для выбора. После многих поздних часов мучительного чтения файлов проекта Xcode я придумал это решение, которое сработало для меня:

  • На панели "Утилиты" (справа) в Xcode 5 в Project Document измените с Xcode 3.1 на совместимость с Xcode 3.2.
  • Введите название своей организации.
  • Закрыть проект.
  • Откройте файл проекта, например. open -a TextEdit path/to/name.xcodeproj/project.pbxproj
    • Удалите два предложения Distribution (isa=XCBuildConfiguration).
    • Удалите две связанные строки в buildConfiguration (один в PBXNativeTarget и один в PBXProject XCConfigurationLists)

Теперь вы готовы снова открыть, архивировать и отправить в App Store - voilà! Он работает снова!

Как я думаю, что он работает

Я предполагаю, что это работает, потому что Apple где-то вдоль линии решила отказаться от необходимости в любой отдельной конфигурации дистрибутива, что хорошо. Когда я архивирую, Xcode автоматически кодирует знаки для распространения. То, как это должно было быть реализовано в первую очередь, просто стыдно, что Apple не может сделать часть авто-миграции среды IDE; вместо этого они заставляют нас разработчиков тратить человеко-десятилетия, чтобы заставить этот материал работать.

Ответ 11

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

Но, наконец, мне удалось решить проблему!

Проблема у меня была с старым приложением, которое я не коснулся более трех лет, и теперь я собирался выпустить долгожданное обновление. С тех пор, как я выпустил приложение, Apple обновляет работу сертификатов и идентификаторов приложений. Они внедрили концепцию Team Id, которая, как представляется, рекомендуется использовать. В частности, с тех пор сайт Apple "Сертификаты, идентификаторы и профили" видел много изменений.

Там я понял, что профиль Provisioning Profile, который я использовал для распространения App Store, был подключен к идентификатору приложения ED8xxxxxxx.com.rostsolutions.*, но, глядя на идентификатор приложения для игры, которую я собирался отправить, я заметил, что идентификатор приложения был ATMxxxxxxx.com.rostsolutions.Swisch, Таким образом, префикс идентификатора приложения не совпал! Это, казалось, корень проблемы. Так что я сделал, чтобы вместо этого создать новый профиль Provisioning Profile, связанный с идентификатором приложения ATMxxxxxxx.com.rostsolutions.Swisch. Используя этот профиль Provisioning Profile, я успешно отправил свое приложение в App Store, и теперь я просто скрещиваю пальцы, что все остальное отлично работает на стороне Apple.

(Сначала я попытался подключиться к новому профилю Provisioning к идентификатору id ATMxxxxxxx.com.rostsolutions.*, но это, похоже, не работает).

Но меня озадачивает то, что когда я смотрю на старое приложение в iTunes Connects и переходит к двоичной информации, он говорит, что Id приложения ED8xxxxxxx.com.rostsolutions.Swisch. Итак, почему страница "Сертификаты, идентификаторы и профили" перечисляет идентификатор приложения как ATMxxxxxxx.com.rostsolutions.Swisch?

Ответ 12

Моя проблема была решена путем удаления моего Apple ID из Preferences- > Accounts и последующего добавления его обратно. Затем все мои профилированные файлы профилей появились на панели инструментов "Сведения о представлении". Я ошибочно выбирал "Профиль подготовки к работе в Mac Team: *" вместо фактического профиля распределения ресурсов для проекта, думая, что это был общий выбор. Файлы Provisioning должны быть конкретными для проекта. О, и BTW, убедитесь, что ваш профиль обеспечения имеет правильные права (например, Карты). Мне удалось выпустить приложение с OSX-картами без права доступа, и Apple одобрила его, но Карты не появились на рабочей версии!

Ответ 13

В моем случае у меня была та же проблема, мое решение состояло в том, чтобы изменить профиль "Предоставление Provisioning Profile" в настройках сборки, прежде чем делать Archive. Я делаю это дважды, один раз для распространения в App Store и еще один для Ad Hoc. Я также добавляю комментарий к своим архивам. Мое заключение состоит в том, что что-то сломано о "архивной подписи".

Ответ 14

Существует очень хороший учебник для решения этой проблемы на этом сайте.

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

Ответ 15

Я думаю, что xcode 5 использует "release" вместо "дистрибутива", который вы можете создать самостоятельно.

Ответ 16

Если все выше не работало (в моем случае через пару дней не удача все попытки) У меня есть только одно приложение для Mac. Будьте осторожны с REVOKE!

1) Отмените вручную все "Распределение приложений Mac" и "Распределение установщика Mac"
2) Очистите соответствующие сертификаты и открытые ключи в Keychain ( Предупреждение: экспорт перед удалением)
3) Перезапустить Xcode 4) Перейдите к (в Safari) developer.apple.com → сертификаты и т.д. 5) Создать сертификатSigningRequest.certSigningRequest в Keychain- > Помощник сертификата
6) Создайте вручную на developer.apple.com "Распределение приложений Mac" и "Распределение установщика Mac" с помощью *.certSigningRequest
7) Профили Provisioning Profiles → Distribution → создайте/исправьте настраиваемое положение для AppStore (я специально назвал его как "профиль обеспечения Mac для AppStore"
8) Xcode → Настройки → Учетная запись → Ваша учетная запись → Обновить 9) Xcode Clean → Архив → Подтвердить

Ответ 17

Я боролся с подобной проблемой (я строил для Ad-Hoc-дистрибутива). Единственное, что изменилось с момента последнего успешного развертывания, заключалось в добавлении двух устройств в профилирование.

После двух- и трехкратной проверки всех настроек сборки я обновил профиль подготовки (без изменения чего-либо), повторно загрузил и работал нормально.

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

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

Ответ 18

ERROR ITMS-9000: "Этот пакет недействителен. Новые приложения и обновления приложений, представленные в App Store, должны быть созданы с общедоступными (GM) версиями XCode 5.1.1 или выше и iOS 7 SDK. с бета-программным обеспечением.

Ответ 19

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

Вам необходимо использовать созданный вами сертификат (запрос сертификата созданный с помощью компьютера).

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

Ответ 20

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

Ответ 21

У меня была такая же проблема, но ничего не написано для меня. Однако я нашел простой способ, который работал у меня. Вот как это сделать:

1) В настройках сборки Project и Target Target выберите "None" для всех профилей Provisioning и выберите "Do not Code Sign" для всех идентификаторов подписи кода.

2) Теперь выберите свою цель и перейдите к настройке. В настройке Release Identity Identity Release выберите "Распределение iOS" для "Any IOS SDK". И затем, в настройке Профилирование профиля, выберите профиль распространения для "Any IOS SDK". После этого параметр Release Identity Identity Release автоматически изменится на "Распределение iPhone".

3) Архивируйте свою сборку и проверяйте. Теперь он должен работать нормально. Что это!