web-dev-qa-db-fra.com

Xcode échoue avec l'erreur "Code Signing"

Titres alternatifs

(pour aider la recherche)

  • Xcode 'Erreur CodeSign: la signature de code est obligatoire'
  • Xcode: erreur de codesign dans l'application iPhone
  • / usr/bin/codesign a échoué avec le code de sortie 1
  • Jenkins échoue avec une erreur de signe de code
  • La génération de ligne de commande échoue avec "profils de provisioning non trouvés"
  • L'archivage du projet Xcode échoue avec une erreur de provisioning
  • Certificats de signature manquants dans Xcode

Symptômes

Le problème se manifeste de plusieurs manières:

  • L'exécution de votre application sur un appareil génère une erreur faisant référence à la "signature de code" ou aux "certificats de signature expirés"
  • La construction à partir de la ligne de commande (ou à l'aide d'un système d'intégration continu, tel que Jenkins ) échoue avec une erreur similaire à celle-ci:

    Check dependencies
    Code Sign error: No unexpired provisioning profiles found that contain any of the keychain's signing certificates
    
  • L'archivage d'une application échoue avec la "signature de code" ou les "certificats de signature expirés" lorsqu'une exécution ou une construction fonctionne correctement.

Souvent, le projet peut avoir plusieurs configurations et parfois seul un sous-ensemble échouera. La suppression et la régénération de profils d'approvisionnement n'ont aucun effet.

17
rjstelling

Script de vérification CODE_SIGN_IDENTITY.

Souvent, dans les configurations utilisant le contrôle de version, le project.pbxproj peut être fusionné de telle sorte que deux lignes CODE_SIGN_IDENTITY puissent être insérées. Cela semble causer des problèmes de Xcode dans certaines situations (comme les versions en ligne de commande ou l’archivage). 

Un signe indicateur est des lignes similaires à celles-ci dans le fichier project.pbxproj (cliquez avec le bouton droit de la souris sur le projet et sélectionnez "Afficher le contenu du paquet…").

"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CODE_SIGN_IDENTITY = "iPhone Distribution";

La suppression d’une de ces lignes vous permettra de sélectionner la valeur correcte dans les paramètres de construction et le projet devrait à nouveau générer correctement.

J'ai créé un script simple pour aider à diagnostiquer ce problème, il peut être trouvé ici: https://github.com/rjstelling/Xcode-Project-Validate

30
rjstelling

J'ai eu cette erreur de signe de code avec un projet Open Source Github que je voulais seulement sur mon propre appareil (pas en magasin ou quoi que ce soit) et je n'ai pas de compte d'adhésion payé.

Dans ce cas, il est dans l'intervalle (depuis XCode 7) possible de configurer et d'autoriser votre application comme non signée mais approuvée.

Tout est expliqué ici: https://stackoverflow.com/a/4952845/828184

1
CodingYourLife