2015-07-27 2 views
6

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

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

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

Code Sign error: No code signing identities found: No valid signing identities (i.e. certificate and private key pair) were found. 
CodeSign error: code signing is required for product type 'Framework' in SDK 'iOS 9.0' 
A shell task failed with exit code 65 

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

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

+0

Я столкнулся с чем-то похожим на стручки какао, не уверен, как Карфаген делает это, но какао-стручки создавали фреймворки, которые им также необходимо было подписать и подготовить код. Не уверен, что у вас есть эта настройка уже или нет. – bolnad

+0

Спасибо за ответ. Одна из великих вещей в Карфагене заключается в том, что она вообще не связана с вашим проектом. Он управляет и строит зависимости. Поэтому он оставляет вам полную свободу относительно того, как включить наш код. В отличие от CocoaPods, который топает во всем. Поскольку Carthage строит каждый проект индивидуально, подписание кода выполняется по проекту по проектам. Поэтому я думаю, что это скорее общая проблема, чем характерная для Карфагена. – drekka

+0

интересно, мне придется попробовать его на одном из моих проектов – bolnad

ответ

-2

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

+0

Нет, это не устраняет проблему. Это не проблема XCode. – drekka

12

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

  1. От Xcode на локальном компьютере, открытая Preferences ->Accounts -> двойной щелчок по команде, связанной с яблоком ID (вам нужен один :)) -> в Signing identity , выберите идентификатор и щелкните значок cog до export. Сохраните это в файл.
  2. Загрузить сгенерированный .p12 файл к вашей машине построения, и добавить его в System брелки (не пользователь), перетащив его в Keychain Access окна
  3. На машине построения Keychain Access, перейдите к сертификату, который вы только что установили (он должен быть ниже System ->Certificates) и щелкните по стрелке рядом с именем, чтобы развернуть его и увидеть закрытый ключ. Щелкните правой кнопкой мыши по ключу ->Get info ->Access control вкладку и разрешите всем приложениям получать доступ к этому элементу (возможно, небезопасно) или добавить приложение codesign в список приложений, которым разрешено использовать этот ключ.
  4. Убедитесь, что Сервер на машине сборки, что раздел XCode включен и добавлен в соответствующую команду разработчиков для этого сертификата.
+0

Похоже, новый Xcode (7 Beta 4) не поддерживает экспорт идентификаторов, и по какой-то причине они больше не появляются в цепочке ключей. Hmmm .... – drekka

+1

В Xcode 7 предлагается новая опция «Экспорт аккаунтов разработчиков». Созданный файл представляет собой zip-файл, который вы можете извлечь, чтобы просмотреть экспортированные профили и сертификаты подготовки. Кто-нибудь знает, как импортировать этот файл на сервер Xcode? – Awsed

+0

@ Только что добавили эти предметы в брелок? – Marco83

1

Я столкнулся с аналогичными проблемами с ботами сервера 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 Server не может видеть профили, которые Xcode автоматически загружает с портала разработчиков на ~/Library/MobileDevice/Provisioning Profiles. Вы можете либо скопировать их на место, либо вручную загрузить их из Интернета и переместить их.
  2. Убедитесь, что ключ подписи (закрытый ключ) и сертификат находятся в Система брелок. Опять же, Xcode создает их в контексте вашей учетной записи пользователя. Если вы сгенерировали их с помощью Xcode на сервере, просто скопируйте их из своего логин в систему . Если вы импортируете с другого компьютера с помощью .p12, убедитесь, что вы импортируете в цепочку ключей в Keychain Access.

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

Смежные вопросы