it-swarm.com.ru

Xcode 5: ошибки предоставления права подписи кода

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

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

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

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

enter image description here

148
Benjamin de Bos

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

enter image description here

208
Benjamin de Bos

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

53
VGruenhagen

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

  1. Настройки XCode 
  2. Вкладка Аккаунты
  3. Выберите свой Apple ID
  4. Нажмите кнопку «Подробнее» на панели сведений об Apple ID
  5. Нажмите кнопку Обновить в левом нижнем углу.
25
Joe Regan

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

enter image description here

enter image description here

12
novecapa

В моем случае (извините) я переключил «Team» на «None» в -> General -> Identity

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

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

6
RickJansen

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

5
Beny Boariu

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

3
Vlad 25 WLD

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

1. Разрешить XCode доступ к информации вашего профиля обеспечения все время - Если XCode постоянно спрашивает, когда вы запускаете его, иметь доступ к личным файлам вашего компьютера, чтобы он мог получать информацию профиля обеспечения с опциями, позволяющими всегда иметь доступ , не сейчас или только один раз - установите ВСЕГДА РАЗРЕШИТЬ доступ

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

3. Проверьте свои сервисы приложений в Интернете и сопоставьте их с вашими сервисами в XCode для приложения. - Перейдите в Apple Member Center и проверьте идентификатор приложения для вашего приложения, нажмите на приложение, чтобы увидеть его «Сервисы приложений». и посмотрите, что вы проверили, затем перейдите в XCode и проверьте раздел «Возможности», чтобы убедиться, что оба имеют одинаковый список сервисов Apple на обоих

4. Убедитесь, что вы присвоили действительный профиль обеспечения своему приложению, прежде чем проверять - дважды проверьте свой профиль обеспечения для своего приложения в Центре поддержки пользователей Apple, убедитесь, что оно не истекло, имеет правильный идентификатор приложения с правильным идентификатор пакета и распределение. Загрузите и щелкните новый профиль обеспечения, чтобы убедиться, что он есть в XCode, или перейдите в XCode> «Настройки»> «Учетные записи»> нажмите на свою учетную запись и «View Details», затем нажмите кнопку в нижнем углу, чтобы синхронизировать все профили с XCode. У вас должен быть профиль, доступный для выбора в разделе «Подписывание кода». Если у вас есть правильный профиль обеспечения, вы можете установить для строк «Идентификация подписи кода» правильный параметр для этого профиля обеспечения.

Примечание - если вы делаете сертификат распространения, это может помочь установить все строки 'Code Signing Identity' на идентичность, которую вы используете для распространения, включая строки отладки

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

3
ColossalChris

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

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

3
beryllium

Моя проблема была решена путем удаления моего Apple ID из «Настройки» -> «Учетные записи» и последующего добавления его обратно. Затем все мои файлы профиля обеспечения появились на служебной панели View Details. Я по ошибке выбрал «Профиль обеспечения Mac Team: *» вместо фактического профиля обеспечения распространения для проекта, полагая, что это был общий выбор. Предоставление файлов должно быть специфичным для проекта. Да, и кстати, убедитесь, что ваш профиль обеспечения имеет правильные права (например, Карты). Мне удалось выпустить приложение с OSX Maps без разрешения, и Apple одобрила его, но в рабочей версии не было карт!

2
Brainware

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

  • На панели «Служебные программы» (справа) в Xcode 5 в разделе «Документ проекта» перейдите с Xcode 3.1-совместимого на Xcode 3.2-совместимого.
  • Введите название вашей организации.
  • Закрыть проект.
  • Откройте файл своего проекта, например, open -a TextEdit path/to/name.xcodeproj/project.pbxproj
    • Удалите два предложения распространения (isa=XCBuildConfiguration).
    • Удалите две сопровождающие строки в buildConfiguration (одну в PBXNativeTarget и одну в PBXProjectXCConfigurationLists)

Теперь вы готовы заново открыть, заархивировать и отправить в магазин приложений - вуаля! Это снова работает!

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

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

2
Jonas Byström

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

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

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

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

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

Но что меня удивляет, так это то, что когда я смотрю на старое приложение в iTunes Connects и перехожу к бинарным деталям, он говорит, что идентификатор приложения - ED8xxxxxxx.com.rostsolutions.Swisch. Так почему же на странице «Сертификаты, идентификаторы и профили» указан идентификатор приложения в виде ATMxxxxxxx.com.rostsolutions.Swisch?

2
Daniel

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

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

1
WINSergey

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

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

1
Lukas

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

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

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

Я также рекомендую iPhone Configuration Utility , которая, несмотря на свое название, полезна для проверки того, какие профили инициализации у вас есть на компьютере.

1
Tomek Cejner

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

1
Hector

ОШИБКА ITMS-9000: «Этот пакет недействителен. Новые приложения и обновления приложений, представленные в App Store, должны быть созданы с использованием общедоступных (GM) версий XCode 5.1.1 или более поздней версии и iOS 7 SDK. Не отправляйте приложения, созданные с помощью бета-версии.

1
hi0001234d

Я думаю, что xcode 5 использует «релиз» вместо «дистрибуция», которую вы можете создать сами.

1
superarts.org

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

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

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

0
hasan

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

0
Shauket Sheikh