Ошибка подписи кода: приложение не прошло проверку кода - PullRequest
10 голосов
/ 03 апреля 2012

Я очень новичок в разработке для iOS, у меня есть приложение, готовое к распространению, но, похоже, я получаю эту ошибку каждый раз, когда запускаю приложение только на своем УСТРОЙСТВЕ, симулятор iOS работает просто отлично. Вот полная ошибка:

Приложение не прошло проверку кода. Подпись недействительна, содержит запрещенные права или не была подписана с помощью сертификата распространения iPhone. (-19011)

Вот весь журнал:

Validate "/Users/masonsocha/Library/Developer/Xcode/DerivedData/Multibrowser-brgeiknbjgrywwehhohafjwxjqnk/Build/Products/App Store-iphoneos/Multibrowser.app"
    cd /Users/masonsocha/Desktop/Apps/MultiBrowser
    setenv PATH "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
    setenv PRODUCT_TYPE com.apple.product-type.application
    /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/Validation "/Users/masonsocha/Library/Developer/Xcode/DerivedData/Multibrowser-brgeiknbjgrywwehhohafjwxjqnk/Build/Products/App Store-iphoneos/Multibrowser.app"

warning: Application failed codesign verification.  The signature was invalid, contains disallowed entitlements, or it was not signed with an iPhone Distribution Certificate. (-19011)
Executable=/Users/masonsocha/Library/Developer/Xcode/DerivedData/Multibrowser-brgeiknbjgrywwehhohafjwxjqnk/Build/Products/App Store-iphoneos/Multibrowser.app/Multibrowser
codesign_wrapper-0.7.10: using Apple CA for profile evaluation
AssertMacros: trust_result == kSecTrustResultUnspecified,  file: codesign_wrapper.c, line: 594
AssertMacros: profile,  file: codesign_wrapper.c, line: 918
codesign_wrapper-0.7.10: Failed to load provision profile from: /Users/masonsocha/Library/Developer/Xcode/DerivedData/Multibrowser-brgeiknbjgrywwehhohafjwxjqnk/Build/Products/App Store-iphoneos/Multibrowser.app/embedded.mobileprovision
 - (null)

Я уже пробовал сократить длину имени проекта, что не помогло, в настоящее время я использую OSX Lion, на Xcode 4.3.2. Я провел всю ночь, вырывая свои волосы, пожалуйста, помогите!

Ответы [ 6 ]

19 голосов
/ 23 августа 2012

Может быть, xcode выбирает один из профилей разработки для подписи кода с ним.

Убедитесь, что используется профиль распространения

нажмите на проект, в разделе «Настройки сборки» -> «Подписание кода» разверните «Идентификация подписи кода» -> «Выпуск» -> убедитесь, что любой iOS SDK ссылается на профиль распространения.

9 голосов
/ 08 апреля 2012

У меня была точно такая же проблема ..

Перейти к связке ключей доступа

  1. Убедитесь, что у вас правильно установлены открытый и закрытый ключи. Это хорошая справка https://developer.apple.com/legacy/library/technotes/tn2250/_index.html

  2. Ранее я настроил настройки сертификата цепочки для ключей, чтобы Outlook работал, но это в значительной степени испортило подпись кода XCode.

После того, как я установил для них настройку «лучшая попытка» (см. Скриншот), проверка работала нормально

enter image description here

3 голосов
/ 05 сентября 2012

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

2 голосов
/ 09 апреля 2012

У меня была такая же проблема, даже после проверки всех элементов подписи. У меня была старая настройка «Может быть отлажено» в моем файле прав. Переключение на get-task-позволило устранить проблему. У Apple есть инструкции по устранению проблем с подписью .

1 голос
/ 22 мая 2013

У меня была эта проблема, но я обнаружил, что ни одна из вышеуказанных проблем не решила ее. В конце концов я нашел решение, работая с технической запиской Apple (https://developer.apple.com/legacy/library/technotes/tn2250/_index.html) по теме.

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

  1. Архивирование сборки, сохранение для временного развертывания.
  2. Перейдите к ipa в поисковике, переименуйте в .zip.
  3. Дважды щелкните для разархивирования, откройте папку «Полезная нагрузка»
  4. Откройте терминал и введите следующее:

    codesign --verify -vvvv -R = 'якорь универсальный и сертификат 1 [поле.1.2.840.113635.100.6.2.1] существует и (лист сертификата [поле.1.2.840.113635.100.6.1.2] существует или лист сертификата [field.1.2.840.113635.100.6.1.4] существует) '/Path/to/your/app.app

  5. Вместо ввода /Path/to/your/app.app перетащите файл * .app из папки Payload в терминал, убедитесь, что между концом команды и именем файла есть пробел, и нажмите возврат.

Я получил сообщение об ошибке, в котором говорится, что запечатанный ресурс отсутствует или недействителен, с именем файла, вызвавшего проблему (он начинался с точки, которая могла быть проблемой). Когда я искал имя файла в браузере проекта XCode, я нашел файл, но когда я посмотрел в Finder, его не было на диске.

Исправлено было просто удалить файл из браузера проекта XCode, и ошибка исчезла. Я бы определенно сказал любому, кто сталкивается с подобной проблемой, - проработайте технические заметки Apple. Они немного плохо сформулированы, но решение, вероятно, будет где-то там.

0 голосов
/ 07 августа 2012

У меня возникла та же проблема, и я решил ее следующим образом:

...