Подтвердить что ты не робот

Не удается создать проект XCode из командной строки, но может из XCode

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

С терминала я выполняю:

xcodebuild -project George.xcodeproj -alltargets -parallelizeTargets -configuration Debug build

но я получаю эту ошибку:

=== BUILD NATIVE TARGET George OF PROJECT George WITH CONFIGURATION Debug ===
Check dependencies
[BEROR]Code Sign error: The identity 'iPhone Developer' doesn't match any valid certificate/private key pair in the default keychain

** BUILD FAILED **


The following build commands failed:
    Check dependencies
(1 failure)

Что-то не так с тем, как я пытаюсь его обработать?

4b9b3361

Ответ 1

В дополнение к разблокировке брелка, вы также можете указать идентификатор кода (или установить его в своей цели). Сертификаты развития принимают форму "iPhone Developer: Company Inc", дистрибутивные сертификаты, такие как "iPhone Distribution: Company Inc".

xcodebuild -project George.xcodeproj -alltargets -parallelizeTargets -configuration Debug build CODE_SIGN_IDENTITY='iPhone Developer: Company Inc' 

Ответ 2

Скорее всего, ваш брелок заблокирован. Попробуйте разблокировать его перед выполнением script, вы можете сделать это из командной строки (прямо перед зданием):

security unlock -p YourPasswordToKeychain ~/Library/Keychains/login.keychain

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

Кроме того, если это не поможет, попробуйте удалить все остальные параметры и просто оставить smth следующим образом:

xcodebuild -configuration Debug и заранее очистите xcodebuild -configuration Debug clean

Ответ 3

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

Это решило проблему подписи для меня:

xcodebuild -sdk iphonesimulator

Источник: xcodebuild Code Sign error: Не найдено совпадающих идентификаторов кодов:

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

Ответ 4

Я использую shenzhen, он также показывает эту ошибку.

Оказывается, это происходит, когда я подключаю свой iPad, но он не входит в профиль обеспечения. Проезжая --verbose в Шэньчжэнь. он показывает:

Check dependencies
Code Sign error: No matching provisioning profiles found: None of the valid     provisioning profiles include the devices:
XXXX’s iPad
CodeSign error: code signing is required for product type 'Application' in SDK 'iOS 8.3'

отключите устройство, все работает отлично...

Ответ 5

В зависимости от цели вашего script также может быть достаточно просто отключить подписание кода в script, что вы можете сделать, установив CODE_SIGN_IDENTITY = ''

xcodebuild -project George.xcodeproj -alltargets -parallelizeTargets -configuration Debug build CODE_SIGN_IDENTITY='' 

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

Ответ 6

У меня была ошибка архивирования, аналогичная, но не такая же, как в исходном сообщении:

** ARCHIVE FAILED **


The following build commands failed:
    Check dependencies
(1 failure)

Это оказалось отсутствующей Службой приложений (в моем случае, службой/правом HealthKit), которую я включил в своем идентификаторе разработки, но не в моем идентификационном файле продукта.

Включить службы в Центре пользователей Apple: https://developer.apple.com/account/ios/identifiers/bundle/bundleList.action

Ответ 7

Это можно исправить в XCode 8.0, изменив с "Распределение iOS" на "iOS Development" в XCode. Кажется, что он не работает, но по какой-то причине он делает.