2011-12-16 17 views
5

estoy usando este script para la creación de aplicaciones de línea de comandos:solicitud de construcción de Xcode desde la línea de comandos

#!/bin/bash 

TARGET="signtest" 
CONFIGURATION="Debug" 
SDK="iphoneos"  
IDENTITY="iPhone Developer: Marcin Zyga (CLJR93MXJ6)" 
KEYCHAIN="/Users/admin/Library/Keychains/login.keychain" 
PASSWORD="admin" 


security unlock-keychain -p ${PASSWORD} ${KEYCHAIN} 
xcodebuild -target "${TARGET}" -configuration ${CONFIGURATION} -sdk iphoneos CODE_SIGN_IDENTITY="${IDENTITY}" PROVISIONING_PROFILE="94D99766-0268-4E0E-B8D1-053063BB2DA1" OTHER_CODE_SIGN_FLAGS="--keychain ${KEYCHAIN}" 

Estoy intentando compilar la aplicación y firmarlo con perfil de aprovisionamiento. Me estoy poniendo:

Build settings from command line: 
    CODE_SIGN_IDENTITY = iPhone Developer: Marcin Zyga (CLJR93MXJ6) 
    OTHER_CODE_SIGN_FLAGS = --keychain /Users/admin/Library/Keychains/login.keychain 
    PROVISIONING_PROFILE = 94D99766-0268-4E0E-B8D1-053063BB2DA1 
    SDKROOT = iphoneos5.0 

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


** BUILD FAILED ** 

Esto es cuando estoy invocando como sudo su - probablemente me falta una configuración válida en mi llavero.

Cuando estoy invocar este script de construcción como usuario administrador Tengo esto:

Build settings from command line: 
    CODE_SIGN_IDENTITY = iPhone Developer: Marcin Zyga (CLJR93MXJ6) 
    OTHER_CODE_SIGN_FLAGS = --keychain /Users/admin/Library/Keychains/login.keychain 
    PROVISIONING_PROFILE = 94D99766-0268-4E0E-B8D1-053063BB2DA1 
    SDKROOT = iphoneos5.0 

=== BUILD NATIVE TARGET signtest OF PROJECT signtest WITH CONFIGURATION Debug === 
Check dependencies 
[BEROR]Code Sign error: Provisioning profile '94D99766-0268-4E0E-B8D1-053063BB2DA1' can't be found 


** BUILD FAILED ** 

Mi perfil de suministro definitivamente existe.

Respuesta

2

Tienes dos problemas. La primera es que hay algo en Xcode 4 y posterior que está cambiando lo que creo que es la ruta de búsqueda o los derechos de acceso de los valores de creación de la línea de comandos, porque yo, también, estoy fallando con el mismo codesign [Beror] en la construcción de la línea de comandos, pero no Xcode directamente.

Me gustaría saber la respuesta al primer problema. Intenté establecer explícitamente la identidad del desarrollador, utilizando el "desarrollador de iPhone" genérico, actualizando la configuración del proyecto para tener [sdk-iphoneos *] = "", etc., y aún tengo que descubrir la solución.

hizo esto solía trabajar para usted y luego se hizo una actualización/Xcode Mac OS y ahora no es así? Ese es mi dilema

De todos modos, el segundo problema es fácil solución: Pase toda la ruta y el nombre del archivo de suministro, a-la "/Users/zyga/Library/MobileDevice/ProvisioningProfiles/94D99766-0268-4E0E-B8D1-053063BB2DA1.mobileprovision "

... un

+3

he hablado con un número de personas y ha determinado que cuando se inicio a una acumulación de un crontab ejecuta como usuario activo en 10.6 o posterior, el camino llave por omisión es diferente que cuando estás conectado de manera interactiva. Esto me parece un error, aunque podrías argumentar que es "más seguro". He aquí cómo ver la diferencia: use la herramienta bash 'security list-keychains'. Cuando lo hago en la parte superior de mi script de construcción que se ejecuta interactivamente desde la terminal, muestra mis/User/acoven/... keychains. Cuando lo hago desde un crontab, todos mis llaveros/User/acoven/... no están en las rutas activas del llavero. –

Cuestiones relacionadas