web-dev-qa-db-fra.com

Erreur de signature de code sur le projet Cordova Xcode 8 et iOS 10

J'ai un projet Cordova que je construis et exécute localement en le déployant sur mon iPhone et mon appareil Android.

Cependant, après avoir mis à niveau Xcode 8 et mon iPhone iOS à iOS 10, je ne peux pas créer ipas localement. Il échoue avec l'erreur suivante.

=== BUILD TARGET * OF PROJECT * AVEC CONFIGURATION Déboguer ===

Vérifier les dépendances La signature de " *" nécessite une équipe de développement . Sélectionnez une équipe de développement dans l'éditeur de projet . ** La signature de code est requise pour le type de produit 'Application' dans le SDK 'iOS 10.0'

Cela fonctionnait parfaitement avant la mise à jour. Après la mise à jour, la construction de iOS échoue. 

Les numéros de version pertinents pour le projet sont:

ios-deploy -V - 1.8.6
xcodebuild -version - Xcode 8.0 Build version 8A218a

J'ai ma configuration Xcode avec les certificats et les profils d'approvisionnement appropriés.

25
Vijay

Comme l'a souligné dpogue, cordova a corrigé ce problème avec le commit 

92a62997adb3c8512328d5a0ae42fe5d156291f1

qui se trouve dans la branche maître de leur référentiel de plate-forme iOS.

Pour bénéficier de ce correctif, vous devez installer la dernière version de dev comme celle-ci.

cordova platform remove ios && cordova platform add https://github.com/Apache/cordova-ios.git

Et vous devez ajouter un fichier build.json à la racine de votre projet qui ressemble à ceci

{
  "ios": {
    "debug": {
      "developmentTeam": "YOURTEAMID"
    },
    "release": {
      "developmentTeam": "YOURTEAMID"
    }
  }
}

Vous pouvez obtenir votre identifiant d’équipe ici: https://developer.Apple.com/account/#/membership

Maintenant, lancez votre build

cordova run ios --device 

... ou en spécifiant votre build.json

cordova run --buildConfig=build.json ios --device

et ça devrait marcher!

40
Alexandre Rozier

J'ai écrit sur la solution de contournement que j'ai utilisée pour résoudre ceci:
https://dpogue.ca/articles/cordova-xcode8.html

Pour récapituler, vous devez spécifier votre ID d’équipe de développeurs. Dans la prochaine version de Cordova-iOS, vous pouvez le faire avec developerTeam dans votre fichier build.json. J'ai un crochet disponible dans l'intervalle.

Vous devez également définir votre identité de signature de code sur "iPhone Developer", même pour les versions publiées. Faites cela avec codeSignIdentity dans votre build.json.

Vous ne devriez pas avoir besoin de spécifier un profil de provisioning, Xcode le gérera automatiquement lorsqu'il aura l'ID de l'équipe.

J'espère que cela pourra aider!

9
dpogue

Ça marche pour moi

 "ios": {
    "release": {
      "developmentTeam": "yourdevteamid",
      "packageType": "app-store",
      "provisioningProfile": "yourprovfileUUID"
    }
  }
}

Si j'ajoute "codeSignIdentity": "Développement iPhone", cela ne fonctionne pas, supprimez donc codeSignIdentity dans le fichier build.json. J'ai également dû ajouter toutes les icônes à config.xml

 <icon src="res/ios/[email protected]" width="180" height="180" />
        <!-- iOS 7.0+ -->
        <!-- iPhone / iPod Touch  -->
        <icon src="res/ios/icon-60.png" width="60" height="60" />
        <icon src="res/ios/[email protected]" width="120" height="120" />
        <!-- iPad -->
        <icon src="res/ios/icon-76.png" width="76" height="76" />
        <icon src="res/ios/[email protected]" width="152" height="152" />
        <!-- Spotlight Icon -->
        <icon src="res/ios/icon-40.png" width="40" height="40" />
        <icon src="res/ios/[email protected]" width="80" height="80" />
        <!-- iOS 6.1 -->
        <!-- iPhone / iPod Touch -->
        <icon src="res/ios/icon.png" width="57" height="57" />
        <icon src="res/ios/[email protected]" width="114" height="114" />
        <!-- iPad -->
        <icon src="res/ios/icon-72.png" width="72" height="72" />
        <icon src="res/ios/[email protected]" width="144" height="144" />
        <!-- iPhone Spotlight and Settings Icon -->
        <icon src="res/ios/icon-small.png" width="29" height="29" />
        <icon src="res/ios/[email protected]" width="58" height="58" />
        <!-- iPad Spotlight and Settings Icon -->
        <icon src="res/ios/icon-50.png" width="50" height="50" />
        <icon src="res/ios/[email protected]" width="100" height="100" />
        <!-- iPad Pro -->
        <icon src="res/ios/[email protected]" width="167" height="167" />
5
Lisa L

J'ai eu le même problème avec xCode 8 sur une version Apache Cordova pour iOS, j'ai essayé toutes les solutions que je pouvais trouver sans aucun résultat. La seule chose qui a fonctionné a été de spécifier l'équipe de développement, le type de package et le fichier d'approvisionnement dans le fichier build.son, comme ce:

{
  "ios": {
    "release": {
      "developmentTeam": "yourdevteamid",
      "packageType": "app-store",
      "provisioningProfile": "yourprovfileUUID"
    }
  }
}

Beaucoup postst suggèrent de spécifier le "codeSignIdentity": "Développeur iPhone", mais cela a donné une autre erreur, seule cette configuration a fonctionné pour moi (peut-être quelque chose avec la façon dont les certificats de développement ont été créés?), Espérant que cela aide quelqu'un.

4
Orion390

Le script de génération personnalisé de notre équipe a exécuté Sudo cordova build ios.

Ce qui a fonctionné pour moi a été de reconstruire le projet sans utiliser Sudo en corrigeant les erreurs d'autorisation si nécessaire. Puis supprimé la Sudo de notre script de construction et tout a fonctionné.

** Doit spécifier l'équipe dans xCode après la première construction.

0
lcharbon

La mise à jour de cordova ios 4.3.1 et la spécification du fichier build.json, comme indiqué ci-dessus, ont fait l'affaire pour moi (probablement la version 4.3.0 inclut le correctif)

Pour mettre à jour votre plateforme:

mise à jour de la plateforme cordova ios

0
jony89

Il vous suffit d'activer l'option "Gestion automatique de la signature" dans l'onglet "Paramètres généraux du projet Xcode". Tous les problèmes liés à la signature seront résolus. Consultez l'une de mes réponses:

http: //stackoverflow.com/questions/39568005/xcode-8-shows-error-that-provisioning-profile-doesnt-include-signing-certificat

0
Satish Mavani

Avait un problème similaire après la mise à niveau de Xcode 8.2.1 et des outils de ligne de commande Xcode associés. 

Solution qui a fonctionné pour moi:

1) Préférences Xcode ouvertes -> Comptes

2) Supprimé un compte existant (AppleID)

3) Ajout d'un nouveau compte avec AppleID

4) Sélectionnez le nouveau compte qui ouvre le volet de droite et cliquez sur "Afficher les détails".

5) Générer de nouvelles identités de signature en fonction des besoins et en particulier du "Développement iOS". Cliquez sur "Terminé".

Suite à cela, toutes mes applications Cordova ont permis "Cordova build ios".

0
Tad Macy