Идентификаторы подписи кода не найдены на сервере Xcode

Использование Xcode 7B4 и Server 5B4 с проектом Carthage. Чтобы построить проект, мне нужно сначала построить его зависимости. Поэтому я добавил к боту шаг «До интеграции» со следующим кодом:

echo "Bootstrapping dependencies..."
export PATH=$PATH:/usr/local/bin
cd Alchemic
carthage bootstrap --use-ssh --use-submodules
echo "Ready."

Запустив это сам, все работает. Но когда бот запускает его, я получаю это:

Ошибка CodeSign: Не найдено удостоверений подписи кода: Не найдено действительных удостоверений подписи (т. е. пара сертификата и закрытого ключа).
Ошибка CodeSign: для продукта требуется подпись кода введите "Framework" в SDK "iOS 9.0"
Сбой задачи оболочки с кодом выхода 65

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

Кто-нибудь знает, что мне может не хватать?


person drekka    schedule 27.07.2015    source источник
comment
Я столкнулся с чем-то похожим с какао-бобами, не знаю, как Carthage это делает, но какао-бобы создали фреймворки, которые также нужно было подписать и подготовить к коду. Не уверен, что он у вас уже настроен или нет   -  person bolnad    schedule 01.08.2015
comment
Спасибо за ответ. Одна из замечательных особенностей Carthage заключается в том, что он совершенно не мешает вашему проекту. Он только управляет и строит зависимости. Так что это оставляет вам полную свободу в том, как включить наш код. В отличие от CocoaPods, который все топает. Поскольку Carthage строит каждый проект индивидуально, подпись кода обрабатывается отдельно для каждого проекта. Так что я думаю, что это скорее общая проблема, чем конкретная проблема Карфагена.   -  person drekka    schedule 05.08.2015
comment
интересно, надо будет попробовать на одном из своих проектов   -  person bolnad    schedule 05.08.2015
comment
Ага. Теперь большой поклонник Карфагена. Может быть не так хорошо для людей, которые не знакомы с работой с фреймворками. Но он хорошо работает в нескольких проектах, которые у меня есть. Кроме того, он способен создавать файлы .gitsubmodule, что делает управление проектами git очень простым.   -  person drekka    schedule 05.08.2015


Ответы (4)


У меня была аналогичная проблема. Решение для меня было:

  1. В Xcode на вашем локальном компьютере откройте Preferences -> Accounts -> дважды щелкните команду, связанную с вашим Apple ID (вам нужен один :) ) -> на панели Signing identity выберите идентификатор и нажмите значок шестеренки на export. Сохраните это в файл.
  2. Загрузите сгенерированный файл .p12 на свой компьютер сборки и добавьте его в Системную связку ключей (не в цепочку пользователя), перетащив его в Доступ к цепочке ключей окно
  3. На компьютере сборки Keychain Access перейдите к сертификату(ам), которые вы только что установили (он должен быть под System -> Certificates), и щелкните стрелку рядом с именем, чтобы развернуть и увидеть закрытый ключ. Щелкните правой кнопкой мыши на ключе -> Get info -> вкладка Access control и либо разрешите всем приложениям доступ к этому элементу (вероятно, небезопасно), либо добавьте приложение codesign в список приложений, которым разрешено использовать этот ключ.
  4. Убедитесь, что на Сервере на машине сборки раздел XCode включен и добавлен в соответствующую группу разработчиков для этого сертификата.
person Marco83    schedule 03.08.2015
comment
Похоже, что новый Xcode (7 Beta 4) не поддерживает экспорт идентификаторов, и по какой-то причине они больше не отображаются в цепочке ключей. Хм.... - person drekka; 05.08.2015
comment
В Xcode 7 предлагается новая опция «Экспорт учетных записей разработчиков». Созданный файл представляет собой ZIP-файл, который можно распаковать, чтобы просмотреть экспортированные профили и сертификаты обеспечения. Кто-нибудь знает, как импортировать этот файл на сервер Xcode? - person Awsed; 25.09.2015
comment
@Awsed просто добавить эти предметы в цепочку для ключей? - person Marco83; 09.10.2015
comment
Спасибо. Добавление файла p12 в цепочку ключей SYSTEM помогло мне с ошибкой знака кода на моем сервере xcode. Большое спасибо! - person f0rz; 27.01.2016

Я столкнулся с похожими проблемами с ботами Xcode Server и подписыванием кода. Я использую сервер 5.1 и Xcode 7.3. Что в конечном итоге помогло мне разобраться с ними, так это запись в блоге: http://matt.vlasach.com/xcode-bots-hosted-git-repositories-and-automated-testflight-builds/

А именно, наиболее полезными частями поста были:

  1. Убедитесь, что ваши профили подготовки скопированы в каталог сервера Xcode, расположенный по адресу: /Library/Developer/XcodeServer/ProvisioningProfiles/ Сервер Xcode не может видеть профили, которые Xcode автоматически загружает с портала разработчика в ~/Library/MobileDevice/Provisioning Profiles. Вы можете либо скопировать их на место, либо вручную загрузить из Интернета и переместить.
  2. Убедитесь, что ключ подписи (закрытый ключ) и сертификат находятся в цепочке ключей System. Опять же, Xcode создает их в контексте вашей учетной записи пользователя. Если вы сгенерировали их с помощью Xcode на сервере, просто скопируйте их из своей цепочки ключей login в цепочку System. Если вы импортируете с другого компьютера с помощью файла .p12, убедитесь, что вы импортируете его в связку ключей System в Keychain Access.

Для получения более подробной информации ознакомьтесь с этим сообщением в блоге. Это действительно помогло мне.

person Mark Suman    schedule 17.08.2016

Если ни один из других ответов не работает, убедитесь, что выбран последний Command Line Tools.

Настройки Xcode -> Расположение -> Инструменты командной строки

Снимок экрана инструментов командной строки

person ZGski    schedule 21.07.2020

Это очень просто. Перейдите в «Настройки XCode» -> «Учетные записи» -> щелкните свой Apple ID и нажмите кнопку «Просмотреть подробности». Нажмите «Обновить», в конце нажмите «Готово». Все будет хорошо. введите здесь описание изображения

person Waruna    schedule 27.07.2015
comment
Нет, это не решает проблему. Это не проблема XCode. - person drekka; 27.07.2015