Impossible de construire le projet XCode à partir de la ligne de commande mais peut à partir de XCode

J'ai créé dans XCode une application iPhone simple basée sur la navigation. L'application se construit et s'exécute correctement sous XCode mais je ne peux pas l'obtenir à partir de la ligne de commande.

Depuis le terminal j'exécute:

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

Mais je reçois cette erreur:

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

Y a-t-il quelque chose qui ne va pas avec la façon dont j'essaie de le gérer?

26
demandé sur mgamer 2011-10-03 16:45:11

7 réponses

En plus de déverrouiller le trousseau, vous pouvez également spécifier l'identité codesign (ou la définir dans votre cible). Les certificats de développement prennent la forme 'iPhone Developer: Company Inc', les certificats de distribution comme ceci 'iPhone Distribution: Company Inc'.

xcodebuild -project George.xcodeproj -alltargets -parallelizeTargets -configuration Debug build CODE_SIGN_IDENTITY='iPhone Developer: Company Inc' 
26
répondu Bryan 2011-10-05 16:56:38

Très probablement votre trousseau est verrouillé. Essayez de le déverrouiller avant d'exécuter le script, vous pouvez le faire à partir de la ligne de commande (juste avant la construction):

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

Notez que j'utilise le trousseau "login" qui pourrait être différent dans votre cas

Aussi, si cela ne vous aide pas, essayez de supprimer tous les autres paramètres et laissez simplement smth comme ceci:

xcodebuild -configuration Debug et nettoyer au préalable xcodebuild -configuration Debug clean

4
répondu Nick 2011-10-03 18:22:47

Vous pouvez créer à partir de la ligne de commande une version ciblée sur le simulateur sans problèmes de signature.

Cela a résolu le problème de signature pour moi:

xcodebuild -sdk iphonesimulator

Source: erreur de signe de Code xcodebuild: aucune identité codesigning correspondante trouvée:

C'est particulièrement utile si la construction en ligne de commande n'est là que pour vérifier le code source dans une configuration d'intégration continue.

4
répondu Stéphane Gourichon 2017-05-23 11:46:21

J'utilise shenzhen, cela montre aussi cette erreur.

S'avère, cela arrive quand je branche mon iPad mais ce n'est pas dans le profil de provision. En passant {[1] } à shenzhen. il montre:

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'

Débranchez l'appareil, tout fonctionne très bien...

3
répondu Zitao Xiong 2015-08-13 07:52:14

Selon le but de votre script, il peut également être suffisant de désactiver la signature de code dans le script, ce que vous pouvez faire en définissant CODE_SIGN_IDENTITY= "

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

Évidemment, ce n'est pas bon si vous essayez de faire une construction finale à partir d'un script, mais cela peut être bien si vous essayez juste de faire une construction de test pour une intégration continue (par exemple de Jenkins, pour vous assurer que personne n'a rien cassé).

1
répondu Sam Deane 2013-05-23 09:04:53

J'ai eu une erreur d'archivage similaire mais pas tout à fait la même que la publication originale:

** ARCHIVE FAILED **


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

Cela s'est avéré être un service D'Application manquant (dans mon cas, le Service/droit HealthKit), que j'avais activé dans mon ID d'application de développement mais pas mon ID d'application de production.

Vous activez les services dans le centre membre Apple: https://developer.apple.com/account/ios/identifiers/bundle/bundleList.action

1
répondu Kevin Qi 2015-05-26 19:50:38

Cela peut être corrigé dans XCode 8.0 en passant de " Distribution iOS "à" développement iOS " dans XCode. Il ne semble pas que cela devrait fonctionner, mais il le fait pour une raison quelconque.

0
répondu Cory Trese 2016-11-04 14:48:28