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



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




" Недопустимые Права Подписи Кода. Права в вашем приложении
подпись пакета не соответствует тем, которые содержатся в
профиль подготовки. Согласно профилю подготовки,
комплект содержит значение ключа, которое не допускается:
'[ХХХХ.ком.образец.компания ]' для ключа 'брелок-открыть-групп".




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



скриншот errror:



enter image description here

632   21  

21 ответов:

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

enter image description here

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

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

  1. Настройки Xcode
  2. учетные записи, вкладка
  3. выберите свой Apple ID
  4. Нажмите кнопку Просмотр сведений на панели сведений Apple ID
  5. Нажмите кнопку "Обновить" в левом нижнем угол

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

enter image description here

enter image description here

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

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

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

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

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

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

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

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

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

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

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

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

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

5. Если все остальное не удается-очистите свой проект и перезапустите XCode, и некоторые Apple magic могут просто работать нормально при следующем открытии проекта и попытке проверить

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

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

теперь вы готовы повторно открыть, архивировать и отправить в App store-вуаля! Он снова работает!

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

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

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

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

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

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

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

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

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

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

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

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

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

Если все выше не работает (в моем случае через пару дней не повезло пробовать все) у меня есть только одно приложение Mac. БУДЬТЕ ОСТОРОЖНЫ С ОТЗЫВОМ!

1) отменить вручную все "Mac App Distribution" & "Mac Installer Distribution"
2) Очистите соответствующие сертификаты и открытые ключи в Keychain (предупреждение: экспорт, прежде чем удалить)
3) Перезапустить Xcode 4) заходим в (в сафари) developer.apple.com -> сертификаты и т. д. Пять) Создайте CertificateSigningRequest.certSigningRequest в связке ключей- > Certificate assistant
6) Создайте вручную дальше developer.apple.com оба "Mac App Distribution" и "Mac Installer Distribution" с вашим *.certSigningRequest
7) Provisioning Profiles - > Distribution - > create / fix custom provision for AppStore (я специально назвал его "MAC provision profile for AppStore"
8) Xcode - > Настройки - > Учетная запись - > ваша учетная запись - > обновить 9) Xcode Clean - > Archive - > Validate

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

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

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

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

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

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

вы должны использовать сертификат, созданный вами (запрос сертификата создано с помощью вашего компьютера).

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

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

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

1) в настройках сборки вашего проекта и ваших целевых объектов выберите "Нет" для всех профилей подготовки и выберите "не подписывать код" для всех идентификаторов подписи кода.

2) Теперь выберите свою цель и перейдите к настройкам сборки. В настройках выпуска удостоверения подписи кода выберите " дистрибутив iOS "для"любого пакета SDK iOS". А затем, в Настройка выпуска профиля подготовки, выберите свой профиль распространения для "любого iOS SDK". После этого ваш код подписи Identity Release настройки должны автоматически измениться на "распределение iPhone".

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

Comments

    Ничего не найдено.