iOS 7.0 Идентификаторы подписи кода не найдены

124
  • сертификат действителен
  • xcode 5
  • IOS 7

Ошибка кодовой подписи: не обнаружены идентификаторы с кодовой подписью: не обнаружены идентификаторы с кодовой подписью (т. Е. Пары сертификата и закрытого ключа), соответствующие профилю обеспечения, указанному в настройках вашей сборки («Профиль подготовки команды iOS: *»). Ошибка CodeSign: для типа продукта «Приложение» в SDK «iOS 7.0» требуется подпись кода.

user2849317
источник
24
Я называю это кошмаром Apple Code-Signin, я всегда решаю эту проблему, удаляя свои сертификаты / профили, повторно загружая их, а затем сопоставляя нужные профили.
meda
см. мой SO-ответ stackoverflow.com/questions/19086395/…
Deepesh
9
Перезапуск Xcode помогает.
Рональд Рэндон
2
У меня работает перезапуск Xcode :)
Hemant Chittora 02
1
Третий перезапуск XCode
Khanh Nguyen

Ответы:

68

Для сертификата

  1. Отозвать предыдущий сертификат.
  2. Создать новый сертификат разработки.
  3. Скачать сертификат.
  4. Дважды щелкните, чтобы вставить KeyChain.

Для профиля Provisioning

  1. Создайте новый или отредактируйте существующий профиль обеспечения.
  2. Загрузить и установить.

Для BundleIdentifier.

  1. com.yourcompanyName.Something (укажите то же, что и в AppId)

введите описание изображения здесь

CodeSigningIdentity.

  1. Выберите профиль Provisioning, который вы создали.

введите описание изображения здесь

Rajneesh071
источник
4
Иногда помогает перезагрузка, мне это помогло после перезагрузки моего Mac.
маска
1
Вы также должны убедиться, что существует профиль обеспечения распространения с идентификатором приложения, который соответствует идентификатору пакета для приложения. Как только они совпадают, диалоговое окно отправки перестает выдавать эту ошибку.
Чак Крутингер
1
Перед повторным созданием сертификатов я бы посоветовал убедиться, что у вас есть закрытый ключ сертификата, который вы пытаетесь использовать.
jjramos
Любая конкретная причина, почему мы должны отозвать предыдущие сертификаты ??
iAviatorJose
43

Мое решение этой проблемы:

Xcode> Настройки. В учетных записях нажмите на свой Apple ID. Нажмите «Просмотреть подробности», нажмите «Профиль обеспечения проектов» (я думаю, это поможет) и нажмите кнопку «Обновить» внизу слева.

christopher_h
источник
17

Думал, что дополню другие ответы своим личным опытом по этому поводу.

Недавно у меня возникла проблема, при которой две цели будут построены, а две выйдут из строя со следующей ошибкой:

Ошибка подписи кода: не найдены идентификаторы подписи кода: не обнаружены действительные удостоверения подписи (т. Е. Пара сертификата и закрытого ключа), соответствующие идентификатору группы «XXXXXXXXXX». Ошибка CodeSign: требуется подпись кода для типа продукта «Приложение» в SDK «iOS 7.1»

Это произошло несмотря на то, что обновили все в Xcode и в Центре разработчиков iOS. .

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

Разумеется, открытие project.pbxprojфайла Xcode в текстовом редакторе обнаружило старый идентификатор команды:

D29A93A318AB96440099C177 = {
        DevelopmentTeam = XXXXXXXXXX;
};

Кстати, чтобы получить project.pbxprojфайл, выберите его .xcodeprojи покажите содержимое, как показано здесь:

введите описание изображения здесь

Выполняя поиск по идентификатору цели D29A93A318AB96440099C177, я мог видеть, что он соответствует одной из неудачных целей:

targets = (
    F5E8B19A16E64505006F22D4 /* MyTarget1 */,
    93DB2342183F737100BEA69F /* MyTarget2 */,
    D29A93A318AB96440099C177 /* MyTarget3 */,
    D200F4B518AB968A00F58C21 /* MyTarget4 */,
    F5E8B1C016E64505006F22D4 /* MyTarget5 */,
    589FB35119114DED003D9350 /* MyTarget6 */,
);

В таком случае, MyTarget3 . Чтобы решить эту проблему, простой текстовый поиск заменил старый идентификатор команды новым правильным идентификатором. Задача решена.

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

Макс МакЛауд
источник
Это тоже была моя проблема. Не уверен, было ли это из-за меня или кого-то из моей распределенной команды с их собственными профилями, сертификатами и т. Д. Я однажды ошибся в git auto merging file pbxproj. Я заметил, что команда разработчиков находится в раскрывающемся списке «Команда» на вкладке «Общие» в настройках моего проекта. Полное удаление этой строки сработало для меня, если вы хотите, чтобы команда была установлена ​​на None.
JoshA
Я проверил, моя команда разработчиков верна, как мне получить новый идентификатор? У установки сертификата есть та же команда разработчиков, которая находится в нем. пожалуйста, помогите
9to5ios 06
Работает как шарм. Просто замените идентификатор, отображаемый в сообщении об ошибке, на тот, который находится над ним.
vanguard69
В моем случае мне пришлось нажать кнопку «Исправить» в Target -> General -> Identity
Охад Шнайдер
9

У меня была точно такая же проблема при разработке. Я решил это

  1. Перейдите в настройки XCode, просмотрите сведения об идентификаторе Apple ID и удалите файл подготовки, на который жалуется.
  2. Перейдите в Keychain Access и удалите сертификат разработки, связанный с файлом подготовки, который вы только что удалили.
  3. В Центре участников Apple загрузите файл подготовки для разработки, который вы только что удалили локально, дважды щелкните файл, чтобы убедиться, что он отображается в XCode.
  4. Загрузите сертификат разработки, который вы только что удалили локально, и дважды щелкните, чтобы убедиться, что он отображается в связке ключей.
  5. Теперь должно быть хорошо идти.
EddieHFu
источник
2
Этот ответ должен быть выше на странице.
bkSwifty
8

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

Решением было скопировать сертификат и вставить его в системную цепочку ключей, иначе Дженкинс не смог бы прочитать сертификат.

Дэниел Райан
источник
7

Вам не нужно удалять все профили, чтобы решить эту проблему,

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

На веб-странице ваших профилей нажмите «Изменить». На веб-странице ваших профилей

Вы можете увидеть, что связанный сертификат отсутствует, даже если установлен флажок «Выбрать все». Измените свой профиль! [] [1]

mj662
источник
Я собирался удалить весь свой профиль обеспечения и начать с эскиза, но тут я наткнулся на ваш ответ. Отличный приятель. Из-за этой проблемы потрачен целый день. Большое спасибо за ваш ответ.
Nilesh Kumar
4

Для меня установка Project → Targets / [Your project] → General → Team на «None» решила проблему.

gklka
источник
4

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

Я пытался развернуть приложение в магазине приложений для тестирования с помощью TestFlight. Предыдущий разработчик, больше не участвующий в проекте или компании, создал сертификат распространения IOS. Что xcode пытался сказать мне, так это то, что да, сертификат был в членском центре, но, чувак, вы совершенно не можете его использовать, потому что он не ваш. У меня не было закрытого ключа, необходимого для подписи с ним, и никакие обновления, перезапуски, отзывы мне не помогли. Для загрузки в магазин приложений вам потребуется сертификат разработчика и сертификат распространения.

Решение заключалось в том, чтобы создать новый сертификат распространения продукции в членском центре, используя новый запрос на подпись из моей связки ключей. Этот процесс хорошо документирован и описан при создании сертификата в Интернете. После этого обновите свою учетную запись в xcode для загрузки на связку ключей, и вы станете золотым. Надеюсь, это кому-нибудь поможет!

Филип Нельсон
источник
2

это может показаться странным, но у меня сработало перезапуск моего Mac .. я не могу объяснить, почему и что произошло, но теперь он работает. надеюсь, это поможет кому-то

Ул. Сильвиу
источник
2

Я дошел до этой темы, когда использую чистый сценарий сборки командной строки / jenkins, и мне не нужно вручную настраивать какой-либо UI / RDP для среды интеграции.

Через несколько часов попробуйте решить ту же проблему с помощью jenkins.
Ключ: «список безопасности-keychains -s <your_keychain_name>».

--- Длинная история ---
Я использую скрипт в jenkins для переопределения настроек для каждого проекта (профиль обеспечения и подписи идентификаторов)
После обновления до Xcode 7 мне нужно изменить сценарий, добавленный выше "list-keychains" после "create- брелки»

Обновленный скрипт здесь .

Бочун Бай
источник
1

Вам не нужно удалять все свои профили. У меня была такая же проблема, и я решил ее, установив недостающие сертификаты. Возможно, вы забыли установить требуемый сертификат для профиля подготовки, который вы используете для подписи кода.

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

Попробуйте изменить идентификатор пакета: Проект -> Цели / [Ваш проект] -> Общие -> Идентификатор пакета

Если приложение было опубликовано в AppStore, XCode не позволяет создать приложение с тем же идентификатором пакета.

Влад
источник
1

Ориентация на iOS 8 и 9 на Xcode 7. Мой профиль разработки в порядке, я получил эту ошибку при архивировании приложения для загрузки в магазин приложений. Вот что я сделал:

Xcode> Настройки> Учетные записи> Просмотреть подробности. Рядом с разделом «Распространение iOS» нажмите кнопку «Сброс». Это сделает недействительным профиль обеспечения распространения, который вы используете (потому что вы сбросили сертификат распространения), поэтому отредактируйте профиль, включив в него недавно сброшенный сертификат.

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

Мэтью Кирос
источник
1

Убедитесь, что ваш сертификат связан с вашим секретным ключом :

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

Если сертификат не подписан закрытым ключом, удалите его, перейдите на страницу разработчика Apple и создайте новый сертификат. Иногда потребуется отозвать старую. Этот новый сертификат теперь будет правильно подписан вашим закрытым ключом.

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

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

Prcela
источник
1

Очевидно, у этой проблемы разные причины. :)

В моем случае срок входа в мою учетную запись истек ... Я решил это просто:

XCode -> Настройки -> Учетная запись -> Apple ID -> Выберите соответствующий идентификатор и обновите вход ...

Надеюсь это поможет!

RainCast
источник
0

Перейдите в навигатор проблем и проверьте, Signing Identity:присутствует ли он в вашем Связке ключей . Если нет, скачайте .cerфайл и добавьте его в связку ключей.

Петр Сыров
источник
0

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

Амит Аджмера
источник
0

У меня была эта неоднозначная ошибка: «Ошибка команды / usr / bin / codeign с кодом выхода 1», когда я настраивал новые блоки Jenkins для сборок iOS с Xcode 7.3, OSX 10.11.4.

В моем случае у меня было несколько правильных вещей: 1. Да, я добавил свои сертификаты в связку ключей, как корень Apple, так и сертификат команды. 2. Да, я загрузил правильный профиль обеспечения через настройки xcode. 3. Да, даже вручную в xcode.

Однако для Дженкинса, возможно, возникла проблема с кешированием в xcode. Что сработало: 1. Закройте графический интерфейс Xcode. 2. Вернитесь в систему и один раз запустите сборку вручную. 3. Только тогда Xcode предложит разрешить авторизацию доступа к связке ключей. 4. У Дженкинса есть некоторые настройки, которые могут исправить это, но мои машины в безопасности, поэтому я нажимаю «всегда разрешать xcode доступ к цепочке ключей».

AnneTheAgile
источник
0

С Fastlane установлен, вы можете создать и установить сертификат девелоперского

cert --development
sigh --development
powtac
источник