2011-10-03 18 views
24

Ho creato in XCode una semplice applicazione per iPhone basata sulla navigazione. L'app si costruisce e gira correttamente da sotto XCode ma non riesco a farla compilare da riga di comando.Impossibile creare il progetto XCode dalla riga di comando ma può da XCode

Dal terminal eseguo:

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

ma ottengo questo errore:

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

C'è qualcosa di sbagliato con il modo in cui cerco di gestire la cosa?

+0

Si verifica lo stesso errore in Xcode se si crea per iOS Device? – Saran

+0

Stai ricevendo lo stesso errore in Xcode se costruisci per la configurazione Debug? –

risposta

24

Oltre a Unloc re il portachiavi, potresti anche specificare l'identità del codesign (o impostarlo nel tuo target). I certificati di sviluppo prendono la forma di 'iPhone Developer: Company Inc', cerali di distribuzione come questo 'iPhone Distribution: Company Inc'.

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

Questo ha funzionato per me, tuttavia ho eliminato anche i certificati scaduti che erano ancora in giro nel portachiavi. – Pellet

4

Molto probabilmente il portachiavi è bloccato. Prova sbloccando prima di eseguire lo script, lo si può fare da linea di comando (a destra prima di costruire):

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

nota, sto usando "login" portachiavi che può essere diverso nel vostro caso

Inoltre, se questo non aiuta, provare a rimuovere tutti gli altri parametri e lasciare solo smth come questo:

xcodebuild -configuration Debug e preventivamente pulita xcodebuild -configuration Debug clean

+0

Per buona misura ho anche fatto: Portachiavi///Ottieni informazioni/Fiducia/Quando firma il codice, fidati sempre. – AnneTheAgile

1

A seconda dello scopo del vostro scritto, può anche essere sufficiente a girare appena fuori la firma del codice nello script, che si può fare impostando CODE_SIGN_IDENTITY = ''

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

Ovviamente questo non buono se stai provando a fare una build finale da uno script, ma potrebbe andare bene se stai solo provando a fare una build di test per l'integrazione continua (ad esempio da Jenkins, per assicurarti che nessuno abbia violato nulla).

3

È possibile creare dalla riga di comando una build mirata al simulatore senza problemi di firma.

Questo risolto il problema di firma per me:

xcodebuild -sdk iphonesimulator 

Fonte

: xcodebuild Code Sign error: No matching codesigning identity found:

Questo è particolarmente utile se la build riga di comando è lì solo per la sanità mentale controllare il codice sorgente in una configurazione di integrazione continua.

1

ho avuto un errore di archiviazione simile ma non proprio la stessa cosa come il post originale:

** ARCHIVE FAILED ** 


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

Questo si è rivelato essere una mancanza di servizio Application (nel mio caso, il servizio HealthKit/diritto), che ho aveva attivato l'ID app di sviluppo ma non l'ID app di produzione.

si abilita servizi in Apple Centro membri: https://developer.apple.com/account/ios/identifiers/bundle/bundleList.action

3

sto usando Shenzhen, mostra questo errore troppo.

Si scopre che succede quando collego l'iPad ma non è nel profilo di provisioning. Passando --verbose a Shenzhen. mostra:

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' 

scollegare il dispositivo, tutto funziona bene ...

0

Questo può essere risolto in XCode 8.0 si passa da "iOS di distribuzione" a "iOS sviluppo" in XCode. Non sembra che dovrebbe funzionare, ma lo fa per qualche motivo.

Problemi correlati