No se puede compilar el proyecto XCode desde la línea de comandos, pero sí desde XCode


He creado en XCode una sencilla aplicación para iPhone basada en la navegación. La aplicación se construye y se ejecuta correctamente desde bajo XCode, pero no puedo hacer que se compile desde la línea de comandos.

Desde la terminal I ejecutar:

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

Pero obtengo ese error:

=== 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)

¿Hay algo malo con la forma en que trato de manejarlo?

Author: mgamer, 2011-10-03

7 answers

Además de desbloquear el llavero, también puede especificar la identidad de codesign (o establecerla en su destino). Los certificados de desarrollo toman la forma 'iPhone Developer: Company Inc', los certificados de distribución como este'iPhone Distribution: Company Inc'.

xcodebuild -project George.xcodeproj -alltargets -parallelizeTargets -configuration Debug build CODE_SIGN_IDENTITY='iPhone Developer: Company Inc' 
 26
Author: Bryan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-10-05 16:56:38

Lo más probable es que su llavero esté bloqueado. Intente desbloquearlo antes de ejecutar el script, puede hacerlo desde la línea de comandos (justo antes de construir):

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

Tenga en cuenta que estoy utilizando "login" llavero que podría ser diferente en su caso

También, si eso no ayuda, intente eliminar todos los demás parámetros y simplemente deje smth así:

xcodebuild -configuration Debug y limpiar de antemano xcodebuild -configuration Debug clean

 4
Author: Nick,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-10-03 18:22:47

Puede crear desde la línea de comandos una compilación dirigida al simulador sin problemas de firma.

Esto resolvió el problema de firma para mí:

xcodebuild -sdk iphonesimulator

Fuente: xcodebuild Code Sign error: No se ha encontrado ninguna identidad de diseño de código coincidente:

Esto es particularmente útil si la compilación de la línea de comandos está allí solo para sanity comprobar el código fuente en una configuración de integración continua.

 4
Author: Stéphane Gourichon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 11:46:21

Estoy usando Shenzhen, también muestra este error.

Resulta que sucede cuando enchufo mi iPad pero no está en el perfil de provisión. Pasando --verbose a Shenzhen. muestra:

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'

Desenchufe el dispositivo, todo funciona bien...

 3
Author: Zitao Xiong,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-08-13 07:52:14

Dependiendo del propósito de su script, también puede ser suficiente desactivar la firma de código en el script, lo que puede hacer configurando CODE_SIGN_IDENTITY= "

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

Obviamente eso no es bueno si está tratando de hacer una compilación final a partir de un script, pero puede estar bien si solo está tratando de hacer una compilación de prueba para la integración continua (por ejemplo, de Jenkins, para asegurarse de que nadie ha roto nada).

 1
Author: Sam Deane,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-05-23 09:04:53

Tuve un error de archivado similar pero no del todo igual que el post original:

** ARCHIVE FAILED **


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

Esto resultó ser un Servicio de Aplicación faltante (en mi caso, el servicio/derecho de HealthKit), que había habilitado en mi ID de aplicación de desarrollo, pero no en mi ID de aplicación de producción.

Habilita los servicios en el Centro de Miembros de Apple: https://developer.apple.com/account/ios/identifiers/bundle/bundleList.action

 1
Author: Kevin Qi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-05-26 19:50:38

Esto se puede arreglar en XCode 8.0 cambiando de "Distribución iOS" a "Desarrollo iOS" en XCode. No parece que deba funcionar, pero lo hace por alguna razón.

 0
Author: Cory Trese,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-11-04 14:48:28