La signature de code est requise pour le type de produit Bundle de tests unitaires dans le SDK iOS 8.0

128

Obtenir

La signature de code est requise pour le type de produit 'Unit Test Bundle' dans le SDK 'iOS 8.0'

Ma cible d'application est la signature de code très bien, mais ma cible de test ne l'est pas. J'ai acheté un nouvel ordinateur, créé un nouveau certificat de développement à partir de l'ordinateur, mis à jour le profil d'approvisionnement en conséquence, installé les deux, mais je ne peux pas surmonter cette erreur de signature de code.

Un moyen d'effacer tous les certificats / profils localement afin que je puisse réinstaller?

Probablement une sorte de bug.

Spentak
la source
J'ai eu une erreur similaire - mon correctif consistait à accéder aux paramètres de construction et à sélectionner les profils d'approvisionnement, au lieu de les sélectionner automatiquement.
scb998 le

Réponses:

129

Le problème est que le projet est sous contrôle du code source et que chaque fois que je tire le fichier .xcodeproj est mis à jour. Et comme mon profil d'approvisionnement est différent de celui du contrôle de code source, la cible de test unitaire passe automatiquement à "Ne pas coder le signe". Je dois donc simplement définir le profil ici après chaque pull git.

Apparemment, en cas de déploiement sur un appareil, s'il existe une cible de test unitaire, elle doit être signée en code.

Pas:

1) Remplacez la cible par votre cible de test (AppnameTests)

entrez la description de l'image ici

2) Assurez-vous que «Identité de signature de code» n'est PAS «Ne pas signer de code». Choisissez un profil avec lequel vous connecter

entrez la description de l'image ici

C'est tout ce que j'ai dû changer pour que cela fonctionne.

Spentak
la source
Je suis confronté au même problème que celui mentionné dans la question ci-dessus mais je ne sais pas comment le résoudre et j'ai posté une question à ce sujet. stackoverflow.com/questions/27312745/…
Neal
Pourriez-vous s'il vous plaît me dire un processus par étapes sur la façon de le faire.
Neal
Eu le problème dans Xcode 8. La résolution n'était pas identique à la vôtre, mais proche. Merci de m'avoir montré le chemin!
user3259235
En plus de définir «Identité de signature de code», vous devrez peut-être également définir «Équipe de développement».
bitsand
100

J'ai résolu le problème (temporairement) en allant dans Modifier le schéma, puis dans la section Construire, en supprimant ma cible de test unitaire d'être invoquée dans "Exécuter".

ZS
la source
1
Bonne prise! Pourquoi dites-vous temporairement ? Cela me semble être une solution raisonnable. Avez-vous soumis l'application au magasin?
mokagio
Il n'y a aucun problème pour soumettre l'application à l'App Store. J'ai dit «temporairement» parce que je pensais qu'il y avait une solution plus permanente possible en bidouillant avec la signature de code, mais c'était la solution rapide et sans tracas.
ZS
2
Cool merci. Cela me semble être une bonne solution, la cible de test unitaire ne doit pas fonctionner de toute façon. +1
mokagio
Pouvez-vous m'expliquer plus en détail? tu veux dire que je dois «construire»? et je ne comprends pas `` retirer mon test unitaire de l'invocation dans Run ''
LKM
66

L'autre conseil ici ne m'a pas aidé, mais j'ai corrigé cette erreur en allant à Product > Scheme > Edit Scheme. Ensuite, j'ai cliqué Buildsur le côté gauche et décoché toutes les cases à côté de AppNameTests. J'utilise XCode 6.3

entrez la description de l'image ici

Olivia Stork
la source
@Almo Ne décochez aucune case sous "Test", mais décochez tout (que vous pouvez décocher) dans la ligne intitulée APPNAMEtests. Je vais inclure une capture d'écran dans ma réponse pour aider à clarifier.
Olivia Stork
1
Je l'ai fait, et j'ai tout décoché sauf Test. Il s'est avéré que je devais supprimer un fichier .plist pour qu'il arrête d'essayer de coder le test. Mon projet crée une bibliothèque statique, donc aucune d'elle n'a besoin d'être codée.
Almo
1
Ahh d'accord. Eh bien, il semble bien qu'il y ait de nombreuses raisons pour lesquelles ce problème peut être causé et autant de façons de le résoudre. Si personne d'autre n'a mentionné votre solution, vous pouvez envisager de la publier comme une autre réponse possible.
Olivia Stork
3
@huggie ¯ \ _ (ツ) _ / ¯ Bienvenue dans la programmation iOS!
Olivia Stork
1
@OliviaStork vous m'avez obligé. merci beaucoup d'avoir sauvé mon travail.
Anurag Shrivastava
29

Je l'ai corrigé en sélectionnant manuellement un profil d'approvisionnement dans les paramètres de construction de la cible de test.

Tester les paramètres de la cible -> Paramètres de construction -> Signature de code -> Identité du signe de code. Auparavant, il était défini sur "Ne pas coder".

Gel
la source
La sélection du profil d'approvisionnement a fonctionné explicitement pour moi, merci.
Mike Weller
Assurez-vous également que le filtre «Tous» est sélectionné en haut et non «Basique».
Marty
13

De plus, si vous définissez votre périphérique cible de build, le problème disparaîtra lors du test et du débogage. Le code signé n'est nécessaire que lorsque vous essayez de déployer votre application sur un appareil réellement physiquefigure

J'ai changé le mien de "myIphone" au simulateur iPhone 6 Plus, et cela résout le problème pendant que je développe l'application.

Ian Zhao
la source
1
mais qu'en est-il si vous VOULEZ déployer votre application sur un appareil physique ±!
Marwen Trabelsi
8

Dans mon cas, le problème auquel j'ai été confronté était:

Erreur CodeSign: la signature de code est requise pour le type de produit 'Unit Test Bundle' dans le SDK 'iOS 8.4'

Heureusement, la cible n'a rien implémenté, donc une solution rapide est de la supprimer.

entrez la description de l'image ici

Javier Calatrava Llavería
la source
2

J'obtenais cette erreur lors de l'exécution de xcodebuild à partir de la ligne de commande pour les tests d'intégration sur le CI de mon travail. J'ai réussi à le faire fonctionner en définissant le paramètre de niveau de projet sur la conception de code. Pour une raison quelconque, le paramètre cible était ignoré et il est revenu au paramètre du projet.

Pastille
la source
2

Si rien ne fonctionne avec les solutions ci-dessus, procédez comme suit

Dans les cibles, sélectionnez appnameTests sous "Info"

Changement suivant

Identifiant du bundle: com.ProjectName. $ (PRODUCT_NAME: rfc1034identifier)

à com.ProjectName.appname

Nom du groupe: $ (PRODUCT_NAME)

Nom du bundle: appname

Compiler et exécuter

nirvana74v
la source
1

Je résous le problème en changeant le `` profil de provisionnement '' dans la même section (`` signature de code '') de automatique à `` nom de profil de provisionnement ''

arniotaki
la source
0

Salut, je suis confronté au même problème aujourd'hui. Après avoir lu la réponse de "Spentak", j'ai essayé de faire signer le code de ma cible sur iOSDeveloper, et cela ne fonctionnait toujours pas. Mais après avoir changé "Provisioning Profile" en "Automatic", le projet a été construit et exécuté sans aucune erreur de signature de code.

Sahan Maldeniya
la source
0

Parfois, cela se produit lorsque vous téléchargez un projet à partir de github ou d'autres sites de didacticiels tiers.Ces applications sont généralement signées avec une identité ou une entreprise / un nom différent.Lorsque cela se produit, si vous ne pouvez pas résoudre la solution, créez simplement un nouveau projet xcode et copiez tous les fichiers d'en-tête et d'implémentation dans votre nouveau projet. N'oubliez pas non plus les fichiers de dépendance .. tels que les fichiers de cadre. Cela fonctionne pour moi.

BrainyMonkey
la source