Xcode 'Ошибка CodeSign: требуется подпись кода' - PullRequest
42 голосов
/ 27 сентября 2010

Я работал над проектом iPhone с iOS 4.0.Я только что скачал Xcode 3.2.4 с iOS SDK 4.1, чтобы я мог работать с обновленной iOS.Открыв проект в обновленном Xcode, я обнаружил, что цель читается как «Отсутствует базовый SDK».Я исправил это, следуя инструкциям здесь .

Теперь, когда я пытаюсь создать таргетинг на любую версию iOS, я получаю эту ошибку (с соответствующей версией, указанной в тексте ошибки):

CodeSign Ошибка: требуется подпись кода для типа продукта «Приложение» в SDK «Устройство - iOS 4.1»

У меня установлен профиль обеспечения группы, созданный XCode, что подготовкаВ профиле есть мой сертификат, и выбранным объектом для подписи кода является «Разработчик iPhone: Аарон Милам».

Есть идеи, что мне здесь не хватает?

Ответы [ 15 ]

41 голосов
/ 27 сентября 2010

Это происходит, когда Xcode не распознает ваш сертификат.

Это просто боль в заднице, чтобы решить ее, есть много возможностей, чтобы помочь вам.

Но первое, что вы должны попробовать, это удалить на вкладке «Окно» => Органайзер, то, что находится на вашем устройстве. Затем повторно добавьте их (загрузите их снова на веб-сайте Apple). И попробуйте снова скомпилировать.

Кстати, вы проверяли в окне информации о проекте «идентификацию подписи кода»?

Удачи.

20 голосов
/ 26 августа 2011

Убедитесь, что вы пишете код в строке « любой iOS SDK », а не «Отладка / Распространение / Выпуск»

Вот именно то, что я сделал:

Идентификатор подписи кода -> не кодировать знак
* Отладка -> не кодировать знак
** любой iOS SDK -> [мой разработчикпрофиль]
* Распространение -> не кодировать знак
** любой iOS SDK -> [мой профиль AppStore]
* Release -> не кодировать знак
** любой iOS SDK -> [мой профиль AdHoc]

Когда я помещаю свои профили на один уровень выше (при Отладке / Распространении / Выпуске), он не работает длякакая-то причина (ошибка?).

Надеюсь, это поможет некоторым из нас!

7 голосов
/ 09 апреля 2011
  • Я люблю переполнение стека:

  • Я понял, что недостаточно быть слишком конкретным, потому что у нас может быть другая версия XCode, у меня есть 2Версия xcode на том же Mac Pro сама.Поэтому здесь я хотел бы предоставить общую инструкцию, которая, я надеюсь, будет работать для всех версий Xcode:

  • Мои 2 версии - это xcode 3.2.6 и 4.0.Вам нужно найти (даже в Google для настроек) ваши настройки xcode BUILD и ПОДПИСАНИЕ КОДА в разделе ПОДПИСАНИЕ КОДА у вас есть ИДЕНТИФИКАЦИЯ КОДА, это предоставит вам список ИДЕНТИФИКАТОРОВ (если у вас нет ИДЕНТИФИКАТОРОВ, перейдите сюда, чтобы получить их и требуется регистрация).https://developer.apple.com/ios/manage/overview/index.action - следуйте этой инструкции Apple «Загрузите ваше приложение на iOS с помощью помощника по обеспечению разработки») Если у вас есть список идентификаторов, просто выберите действительный и снова запустите Xcode.Это будет работать!

  • 3.2.6 конкретно: в вашем окне scode - нажмите Project -> Project settings -> Build (tab) -> есть прокрутка вниз, потому что списокУдостоверьтесь, что вы прокручиваете страницу вниз, чтобы найти свой раздел ПОДПИСАНИЕ КОДА

  • 4.0, специфичный: В вашем окне xcode - щелкните по файлу проекта слева от большинства столбцов -> затем по следующему столбцу щелкните по целевому приложению-> найти код подписи и назначить идентификатор.Это должно работать для вас.

Готово!

6 голосов
/ 21 декабря 2010

Самая распространенная причина, если учесть, что все сертификаты установлены правильно, не указывает идентификацию подписи кода в настройках Active Target вместе с настройками Project. Измените их на iPhone Developer (Xcode выберет правильный профиль в зависимости от соответствия идентификатора приложения).

  • В XCode перейдите из Симулятора в Устройство (в раскрывающемся списке вверху окна XCode), чтобы вашей целью развертывания приложения было Устройство.

  • Идентификатор по умолчанию, который является подстановочным знаком, похож на перехват всех идентификаторов, когда он связан с подписанием кода (если вы используете примеры файлов для сборки, они, очевидно, не будут иметь импорт com.coolapps.appfile, в этом случае без 'Team Provisioning profile' ваша сборка не будет выполнена, поэтому вы можете установить это в своем

  • Xcode-> Проект -> Изменить настройки проекта-> Сборка (вкладка) -> Идентификация подписи кода (заголовок) -> Любая iOS (изменить с Любого симулятора iOS) -> (выберите «Разработчик iPhone» в качестве значения по умолчанию будет использоваться профиль обеспечения разработки подстановочного знака (Team Provisioning Profile: *)

а также (ОЧЕНЬ ВАЖНО)

  • Xcode-> Проект -> Изменить активную цель -> Построить (вкладка) -> Идентификатор подписи кода (заголовок) -> Любая iOS (изменить с Любого симулятора iOS) -> (выберите «Разработчик iPhone» в качестве значения, и он будет по умолчанию используется профиль обеспечения разработки с использованием подстановочных знаков (Team Provisioning Profile: *)

Выполните шаги для начинающего в: http://codevelle.wordpress.com/2010/12/21/moving-from-ios-simulator-to-the-ios-device-smoothly-without-code-sign-error/

3 голосов
/ 27 сентября 2010

Убедитесь, что вы правильно создали профили обеспечения. если вы сделали .. у вас должны быть ... открытый ключ, закрытый ключ и сертификат в доступе брелка. ПРОВЕРЬТЕ, если у вас есть все это ..

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

Если у вас есть все необходимое в связке ключей и загруженных профилях ... Когда вы выбираете iPhone Разработчик: Аарон Милам. в настройках сборки .. убедитесь, что вы выбрали конфигурацию (слева вверху внутри Target-> Build), для которой вы хотите сделать сборку. или вы можете выполнить Все настройки, чтобы внести изменения во все доступные конфигурации, т. е. отладка, выпуск и т. д.

2 голосов
/ 09 февраля 2019

В моем случае, блокировка и разблокировка логина-цепочки для ключей из Keychain Access сделали свое дело enter image description here

2 голосов
/ 20 февраля 2013

Попробовав все приведенные выше ответы и все остальное, что я мог придумать из Xcode 4.6, я исправил это с помощью следующих шагов:

  1. Закрыть Xcode
  2. Щелкните правой кнопкой мыши файл .xcodeproj -> показать содержимое пакета
  3. Редактировать project.xcodeproj в текстовом редакторе
  4. Поиск "CODE_SIGN_IDENTITY" - будут такие пары строк:
 CODE_SIGN_IDENTITY = "iPhone Developer: Joe Smith (555NN555)";
 "CODE_SIGN_IDENTY[sdk=iphoneos*]" = "iPhone Developer: Joe Smith (555NN555)";

Я нашел 2 цели с таким значением и 2 цели с

 CODE_SIGN_IDENTITY = "";
 "CODE_SIGN_IDENTY[sdk=iphoneos*]" = "";

Я скопировал первую пару строк поверх второй пары строк для всех случаев, когда последняя пара была emtpy.

Затем я перезапустил Xcode, и теперь он работает нормально.

2 голосов
/ 20 декабря 2012

Обобщенная форма ответа на Xcode завершается с ошибкой «Code Signing»

Файлы

project.pbxproj можно объединить таким образом, чтобы можно было вставить две строки CODE_SIGN_IDENTITY. Удаление одного из них обычно решает проблему.

Я создал простой скрипт для диагностики этой проблемы, его можно найти здесь: https://gist.github.com/4339226

Полный ответ можно найти здесь .

2 голосов
/ 22 августа 2011
  1. Заполните поля " Code * " в разделах " Project " и " Targets "
  2. Выберите допустимые записи в « Идентификатор подписи кода » в « Debug » и « Release »
  3. В разделе " Debug " выберите вас Разработчик сертификат
  4. В разделе " Release " выберите своего Дистрибьютора сертификат

Выполнение этих 4 шагов всегда решает мои проблемы.

1 голос
/ 24 июня 2014

Как уже упоминалось, если вы не хотите, чтобы код подписывал ваше приложение, вы можете установите CODE_SIGNING_REQUIRED на NO. Вот способ сделать это без какого-либо проекта / файлов Модификация:

Создать файл NoCodeSign.xcconfig :

CODE_SIGNING_REQUIRED = NO

Установить XCODE_XCCONFIG_FILE переменную среды для пути к этому файлу:

export XCODE_CXCONFIG_FILE=/path/to/NoCodeSign.xcconfig

Теперь вы можете создавать свое приложение без подписи кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...