Xcode 'Ошибка CodeSign: требуется подпись кода'

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

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

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

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

Любые идеи относительно того, что мне здесь может не хватать?


person Aaron    schedule 27.09.2010    source источник
comment
Дополнительный вопрос: Xcode не работает с ошибкой подписи кода   -  person Richard Stelling    schedule 20.12.2012
comment
Прежде чем продолжить, проверьте список: откройте xcode - ›настройки -› проверьте, существует ли элемент в идентификаторе Apple ID, выберите агента и просмотрите подробности - ›проверьте наличие подписей, профили обеспечения. если подписывающих удостоверений не существует, необходимо добавить сертификаты разработчика Apple. тогда все должно быть хорошо.   -  person Desmond    schedule 20.05.2015


Ответы (15)


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

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

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

Между прочим, вы проверили в окне информации о проекте «идентификацию подписи кода»?

Удачи.

person Vinzius    schedule 27.09.2010
comment
Если не работает, то: 1 °) Перезагрузите компьютер. 2 °) Удалите все сертификаты вашего компьютера (относящиеся к iPhone, а не все ^^). 3 °) Загрузите их повторно. Не имея компьютера рядом со мной, это немного сложно решить: / Удачи! - person Vinzius; 27.09.2010
comment
Итак, я последовал вашим инструкциям. Я обнаружил, что в Xcode для подписи кода было выбрано ‹Несколько сущностей›. Я повторно выбрал свой, и это сработало! Спасибо за вашу помощь! - person Aaron; 27.09.2010
comment
Для меня у меня были правильные настройки в проекте, но я забыл проверить цель. Настройка идентификатора подписи кода в свойствах целевой сборки сработала. - person Ken Pespisa; 30.09.2010
comment
Также попробуйте перейти в Build ›Clean, затем попробуйте еще раз. - person Baub; 19.04.2012
comment
Это просто головная боль, чтобы решить эту проблему с самым высоким рейтингом. Ответ SO на вопрос с более чем 60 тысячами просмотров - действительно мощное утверждение! Что касается обратной связи, это идеальный шторм: негативный, предоставленный надежным источником и согласованный сообществом. @Vinzius, спасибо, что разместили это. Я надеюсь, что Apple учтет ваши отзывы ... 4 года и их не будет :) - person Steven Wexler; 15.10.2014

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

Вот что я сделал:

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

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

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

person Gryzorz    schedule 25.08.2011
comment
Кто-нибудь знает, почему вы устанавливаете знак "Не кодировать" для отладки и выпуска? - person mskw; 21.03.2013
comment
Не могли бы вы поделиться скриншотом, где найти эти настройки? - person Noitidart; 11.04.2017
comment
@Noitidart Щелкните проект - ›вкладка" Параметры сборки ". - person Souvik Ghosh; 20.06.2018

  • Мне нравится Stack Overflow:

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

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

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

  • Конкретно для 4.0: в окне xcode - щелкните файл проекта слева от столбца -> затем в следующем столбце щелкните целевое приложение -> найдите ПОДПИСАНИЕ КОДА и назначьте ИДЕНТИФИКАТОР. Это должно сработать для вас.

Сделанный!

person dung    schedule 09.04.2011

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

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

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

  • Xcode-> Project -> Edit Project Settings-> Build (tab) -> Code Signing Identity (header) -> Any iOS (change from Any iOS Simulator) -> (выберите 'iPhone Developer' в качестве значения, и по умолчанию будет Профиль подготовки разработки с подстановочными знаками (Профиль подготовки группы: *)

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

  • Xcode-> Project -> Edit Active Target -> Build (tab) -> Code Signing Identity (header) -> Any iOS (change from Any iOS Simulator) -> (выберите `` iPhone Developer '' в качестве значения, и оно будет по умолчанию на Профиль подготовки разработки с подстановочными знаками (Профиль подготовки группы: *)

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

person SheshPai    schedule 21.12.2010

Убедитесь, что вы правильно создали профили обеспечения ... если вы это сделали ... у вас должен быть ... открытый ключ, закрытый ключ и сертификат в Keychain Access. УБЕДИТЕСЬ, есть ли у вас все это ..

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

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

person k-thorat    schedule 27.09.2010

Обобщенная форма ответа на Ошибка Xcode с ошибкой «Подписание кода»

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

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

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

person Richard Stelling    schedule 20.12.2012

Попробовав все вышеперечисленные ответы и все остальное, что я мог придумать из 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*]" = "";

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

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

person Rayfleck    schedule 20.02.2013
comment
Ничего себе, это действительно решило эту глупую ошибку для моего проекта (Testapplication от SendBird). На это у меня ушел целый час. Спасибо. Я сделал их все "", и Xcode перестал жаловаться. - person DevAndArtist; 23.02.2016

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

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

CODE_SIGNING_REQUIRED = NO

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

export XCODE_CXCONFIG_FILE=/path/to/NoCodeSign.xcconfig

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

person Community    schedule 24.06.2014
comment
Очевидно, что содержимое NoCodeSign.xcconfig должно быть CODE_SIGNING_REQUIRED = NO - person Alex Sorokoletov; 01.11.2016
comment
Это было полезно, но в итоге мне понадобился CODE_SIGNING_ALLOWED = NO в Xcode 10 вместо CODE_SIGNING_REQUIRED = NO - person Richard Venable; 26.09.2019

В моем случае блокировка и разблокировка логина-связки ключей из Keychain Access помогли  введите описание изображения здесь

person Awais Nasir    schedule 09.02.2019

  1. Заполните «Подписание кода» в разделах «Проект» и «Цели».
  2. Выберите допустимые записи в поле Идентификатор подписи кода как в разделе Отладка, так и в разделе Выпуск.
  3. В разделе Отладка выберите сертификат разработчика.
  4. В разделе «Выпуск» выберите свой сертификат распространителя.

Эти 4 шага всегда решают мои проблемы.

person Tibidabo    schedule 22.08.2011

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

Перейдите в Product -> Edit Scheme. Появится новый диалог.

Слева выберите Архив. Убедитесь, что конфигурация сборки - Распространение.

person Jim Schrempp    schedule 17.08.2011

В файле /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/SDKSettings.plist

изменить CODE_SIGNING_REQUIRED ДА

to

CODE_SIGNING_REQUIRED NO

Перезапустить Xcode

person Jim Huang    schedule 05.02.2013

Вы обновили версию прошивки iPhone, на котором тестируете?

person gnuchu    schedule 27.09.2010
comment
да. Фактически, она только что пришла по почте с последней версией. Я действительно проверял наличие обновлений, чтобы быть уверенным. - person Aaron; 27.09.2010

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

Решением было изменить имя второй папки, например myFolder / _myFolder, и проблема была решена.

Надеюсь, это кому-нибудь поможет.

person marcos1490    schedule 12.06.2012
comment
Это как-то глупо, как Xcode не позволяет вам иметь несколько папок с одним и тем же именем, не так ли? - person Aaron; 19.06.2012
comment
@Aaron Да, я надеюсь, что они исправят эту ошибку. - person marcos1490; 20.06.2012

Возможно, дата и время вашего Mac неверны. Просто поправьте их.

person nminhtai    schedule 12.07.2012