web-dev-qa-db-fra.com

Xcode ne peut pas s'exécuter sur la destination sélectionnée

J'exécutais mon application ce matin et tout à coup, l'erreur suivante s'affiche lorsque j'essaie de l'exécuter sur le simulateur iPhone 5.1. 

Impossible de s'exécuter sur la destination sélectionnée

La destination ne prend pas en charge l'architecture pour laquelle le logiciel sélectionné est construit. Basculez vers une destination prenant en charge cette architecture afin d'exécuter le logiciel sélectionné. 

J'ai supprimé les schémas mais toujours pas de solution. 

J'utilise Mountain Lion. J'utilise xCode 4.4 (récemment mis à niveau vers Mountain Lion et xCode 4.4)

UPDATE 1: Voici la vue de mes paramètres de construction: 

enter image description here

UPDATE: Voici l'erreur réelle qui l'empêche de fonctionner.

enter image description here

47
azamsharp

Vous pouvez suivre les étapes: 

  • Quitter le simulateur Xcode et iPhone
  • Débranchez vos appareils
  • Goto /Users/your_usr_name/Library/Developer/Xcode/DerivedData/
  • Supprimer toutes les données de ce dossier
  • Redémarrez Xcode et lancez votre projet

J'espère que cela résoudra votre problème.

61
x4h1d

J'ai eu ce problème après la mise à jour de Facebook SDK 3.1 à Facebook SDK 3.1.1. Ma faute, je suppose.

Dans le dossier "resources", il y a maintenant un fichier info.plist totalement inutile mais dangereux qui, s'il est importé, risque de casser votre fichier projet. Je ne sais pas pourquoi ils l'ont inclus, mais je crois que peu d'entre nous ont commis la même erreur récemment.

33
Fran

J'ai trouvé ce problème avec la version de Xcode 4.4. Et finalement je l'ai résolu de cette façon:

Recherchez le fichier "Info.plist" dans votre projet, puis désélectionnez l’adhésion cible plus dans la vue de droite de la fenêtre, cela fonctionne pour moi.

17
demon

Vous pouvez également vouloir vérifier si le projet utilise un compilateur pris en charge dans les paramètres du projet.the option shown in blue

8
tipycalFlow

Son fichier Info.plist vient de dupliquer Il vous suffit d'utiliser 1 fichier Info.plist dans des fichiers, puis de redémarrer xcode

7
mohammad alabid

Je viens de rencontrer cette erreur dans Xcode 4.5.1, et l'erreur a disparu après que je ai supprimé tous les caractères non-alpha du paramètre de construction Product Name.

6
Bobjt

Confier mes fichiers à SVN et extraire le projet dans un nouveau répertoire a résolu le problème.

Je crois que cela pourrait être un bogue actuel non répertorié avec Xcode 4.4+. J'ai/eu le même problème avec mon projet. J'ai supprimé toutes les versions de Xcode et redémarré avec 4.4, ouvert mon projet et eu l'erreur à nouveau.

J'ai ensuite commencé un nouveau projet avec un modèle avec un nom différent. Je n'ai pas eu le problème.

J'ai ensuite renommé mon ancien projet, démarré un nouveau projet vide portant le même nom et construit/exécuté et obtenu l'erreur à nouveau. Ce nouveau projet n'était rien d'autre qu'un contrôleur de vue qui ne faisait rien. J'aurais dû avoir un écran vide mais la même erreur que vous. 

Frustré, je me suis arrêté pour la journée et j'ai relancé l'ancien projet et cela a fonctionné. Je n'avais rien changé. Actuellement, j'ai à nouveau l'erreur et ni le redémarrage ni le redémarrage de Xcode ne le corrigent.

Donc, en résumé, un projet ne peut avoir absolument aucune modification, parfois il construit et fonctionne bien, parfois vous obtenez cette erreur. Pour mémoire, je n'ai pas eu cette erreur avec Xcode 4.3.

Mon problème ne s'est pas manifesté avant la mise à niveau vers Mountain Lion et Xcode 4.4, qui se trouvaient le même jour. Maintenant, je ne peux pas revenir à une configuration 100% réalisable.

4
ptk

en plus de supprimer tous les fichiers de ce répertoire Utilisateurs/votre_nom_utilisateur/Library/Developer/Xcode/DerivedData /

j'ai redémarré mon mac et cela a bien fonctionné (redémarrer xcode et le simulateur ne me l'a pas coupé)

3
abbood

J'ai résolu le changement de la clé "Variantes de construction" de "armv7" à "normale" dans les paramètres de construction du projet et de la cible.

3
Gigisommo

Examinez les paramètres de construction du projet et de la cible, ceux de cette architecture, et voyez si quelque chose a changé. Lors du premier passage de Xcode 3 à 4, il utilisait pour détruire les ravages de manière cachée, en donnant la même erreur, et à la fin, vous deviez ajouter i386 à la ligne "Architectures valides". Je viens de regarder mon grand projet démarré dans Xcode 4.1, et il ne montre rien sur i386, etc., mais j'ai d'autres projets plus récents dans lesquels j'ai cette chose grisée dans la ligne $ (ARCHS_STANDARD_32_BIT).

EDIT: J'ai pris un relook à ce sujet avec un ami gourou. Aucun de nous ne peut trouver un lien avec i386 dans nos projets - Xcode utilise un peu de magie. Cela dit, j'ai eu un succès à i386 dans un plist binaire dans le projet, ce qui me conduit à une autre suggestion.

Dans vos paramètres de construction, assurez-vous que TOUTES les "architectures" sont $ (ARCHS_STANDARD_32_BIT).

Si cela ne fonctionne pas, nous vous suggérons de regarder les lignes de compilation et ld de votre construction lorsque vous sélectionnez iPhone 5.1 Simulator dans le menu Schéma - pour voir si c'est bien son i386,

Une autre idée - déplacez tous vos modèles et paramètres utilisateur dans un dossier de sauvegarde quelque part (avec le projet fermé), puis rouvrez-le et recréez un modèle. Maintenant, essayez à nouveau. Il n'y a pas de référence à i386 dans aucun de mes fichiers project.pbxproj, nous avons donc le sentiment que cela est en quelque sorte lié au paramètre de configuration du périphérique cible. 

Bonne chance!

3
David H

Je pense que beaucoup de ces solutions imposent une reconstruction complète, ce qui a résolu ce problème pour moi.

J'ai produit => Propre, et le problème a disparu.

2
Nick

Dans mon cas, le problème survient après la suppression du dossier complet des ressources, la copie du dossier des ressources d'un autre ou de l'ancien projet par-dessus le projet actuel, puis l'ajout de ce dossier.

Je résous le problème avec l'aide de l'outil d'analyse: après l'analyse, cela me réchauffe au sujet d'Info.plist dans "Copier les ressources du paquet".

Allez simplement dans Copier la ressource (dans l'onglet Phrase construite), supprimez Info.plist, puis redémarrez Xcode, nettoyez et construisez. Mon projet est revenu à la normale.

J'espère que ça aide quelqu'un :)

2
Tony

Pour moi, cela a fonctionné: - Vérifiez que toutes vos références de produits sont cohérentes dans les paramètres et les plists. Vérifiez également que le nom du produit ne contient aucun caractère SPACE ou "illégal".

2
Anish

Je courais dans le même problème. Dans mon cas, il semble que j'ai changé le nom de l'ensemble pour mon projet à cibles multiples au lieu du nom du produit. Une fois que j'ai corrigé cela en modifiant correctement le nom du projet, puis en le redéfinissant sur $ {PRODUCT_NAME}, le programme était à nouveau exécuté dans le simulateur.

Ce n'est peut-être pas la solution pour tout le monde, mais il semble que les erreurs de dénomination de produit (caractères spéciaux, espaces, etc.) soient un facteur contributif pour beaucoup, et c'est ce qui m'a poussé à revoir le changement de nom que j'en avais.

2
Vramin

Je faisais face au même problème avec mon projet. Voici une brève explication de la situation et ma résolution. Cela peut ou peut ne pas fonctionner dans votre cas. 

Je travaille dans un endroit où plusieurs projets iOS sont en cours. J'ai récemment eu la mise à niveau de mon système vers Mac OSX 10.8 et Xcode 4.4.1. Je travaillais sur un projet initialement basé sur Xcode 4.1 pour iOS 4. Etant donné que Xcode disposait de simulateurs iOS 4 jusqu’à la version 4.3, le projet a bien fonctionné et fonctionnait bien sur tous les simulateurs. Cependant, dans Xcode 4.4.1, je n’avais pas trouvé de simulateurs iOS 4 et il n’existait pas non plus de moyen facile de les installer. C’est pourquoi j’obtenais l’erreur "Ne peut pas être exécutée sur la destination sélectionnée". Voici comment j'ai eu mon projet à exécuter.

  • Vérifiez sous Build Settings > Architectures et réglez Architectures sur Standard (armv7) ou ${ARCHS_STANDARD_32_BIT} pour tous vos profils.

  • Définissez Base SDK sur Latest iOS(<ios version #>) 5.1 dans mon cas. 

  • Définissez Build Active Architecture Only sur NO pour tous les profils.

  • Définissez Valid Architectures sur armv6 armv7 pour tous les profils. Vous devrez peut-être ajouter l'un ou l'autre en fonction de ce qui est déjà disponible.

  • Définissez iOS Deployment Target sur iOS 5.1 (dans mon cas).

  • Assurez-vous que vous avez la même cible sous Deployment Target dans l'onglet Summary de votre projet.

Clean and Run et croise les doigts !! 

2
unspokenblabber

Après une demi-journée d’expérimentation, je pense que cela signifie que le débogueur ne peut pas trouver l’exécutable à lancer. Je pense que c'est une distinction importante par rapport aux réponses précédentes parce que c'est une cause sous-jacente, qui peut avoir beaucoup de symptômes. Dans mon cas, il ne pouvait pas réconcilier les applications Info.plist pour une construction personnalisée où nous copions le plist pour la construction. J'ai changé le paramètre de construction en Alt-Info.plist pour AltDebug et cela a été corrigé. Aussi signifiait pas plus de copie.

La cause sous-jacente étant peut-être différente, vous devez donc vous demander pourquoi Xcode risque de ne pas trouver votre application construite.

1
Eric Ruck

Je restaure les données de la machine à voyager dans le temps. Notez que ce sont exactement les mêmes données que celles stockées il y a à peine une heure. Le problème a commencé hier. Donc, il devrait être les mêmes données EXACT. \

Pourtant cela fonctionne.

1
Sharen Eayrs

essayez de renommer votre projet. J'ai résolu par cette voie.

1
Can Aksoy

À en juger par les réponses, ce type d'erreur a de nombreuses sources potentielles. Voici donc ma propre version (certes négligente) de l'erreur (et une solution simple): 

  • Les paramètres de construction du projet XCode peuvent être définis à deux niveaux: niveau du projet et niveau de la cible. Pour les moins familiers, le niveau cible correspond à l'emplacement où se trouve votre application exécutable, ainsi qu'à d'autres éléments tels que la création d'une bibliothèque dynamique. 
  • Dans la section Liaison des paramètres de construction, il existe une option pour le type Mach-O, dans laquelle vous pouvez définir un exécutable, une bibliothèque dynamique, une bibliothèque statique, etc. 
  • J'avais du mal à préparer une bibliothèque dynamique, parcourais les paramètres de construction du projet et voyais que Mach-O était vide. Je me suis donc mis à la bibliothèque dynamique. J'ai ensuite passé en revue quelques autres choses et oublié que j'avais apporté ce changement. Mais je n'avais pas réalisé que j'étais au niveau du projet global, pas au niveau cible de la bibliothèque dynamique réelle. Cela a modifié tous les paramètres Mach-O cibles en bibliothèque dynamique. 
  • Et bien sûr, la cible exécutable n'aimait pas être traitée comme une bibliothèque dynamique, et j'ai reçu le message d'erreur de l'OP. 
  • Redéfinir l'exécutable en exécutable Mach-O avec ses paramètres de construction de niveau cible a tout corrigé. Malheureusement, le paramètre de niveau projet continuait à indiquer la bibliothèque dynamique, mais avec les paramètres de niveau cible corrects, tout fonctionnait correctement. 

C'est idiot, je le sais, mais puisque quelques-unes des solutions plus radicales énumérées ci-dessus auraient indirectement résolu ce problème, je pensais le partager si quelqu'un d'autre avait commis la même erreur! 

1
thomas

Vous serez heureux de savoir que ce problème a une solution très simple. Sélectionnez Info.plist dans l'arborescence du navigateur de votre projet et assurez-vous qu'il n'est pas affecté à une cible. J'ai confirmé que c'est la bonne solution. Si vous compilez pour iOS 6 ou version antérieure, vous devrez peut-être également ajouter armv6 aux architectures prises en charge.

1
jcpennypincher

J'ai essayé tout ce qui a été dit ici. Rien n'a fonctionné. Il semble que j'ai importé l'info.plist deux fois. Pour résoudre ce problème, j'ai sélectionné le projet et appuyé sur le bouton "Valider les paramètres". Après cela fonctionne pour moi.

1
Xazen

J'ai eu le même problème après deux événements:

  • Je suis passé à Facebook SDK 3.1
  • J'ai mis à jour mon OSX (avec une mise à jour de version mineure)

La seule solution qui m'a été apportée a été d'ajouter armv7s (attention au "s" à la fin !!!) Comme suggéré ici: https://stackoverflow.com/a/12540654/531527

0
Lior Frenkel

Vous devez trouver dans le "Moniteur d'activité" le processus Xcode et le tuer! Je viens de le faire pour résoudre un problème similaire!

0
Nicolai

J'ai ce problème après la suppression accidentelle du dossier Ressources, lorsque je l'ai ajouté à nouveau au projet, Bam!

Je cours aussi Mountain Lion et XCode 4.4!

essayez de trouver la cause, mais cela semble être reproduit lorsque vous supprimez, puis ajoutez le fichier info.plist! quelqu'un peut-il confirmer cela?

0
Mostafa Berg

Supprimez Info.plist de la phase de construction de la copie des ressources du bundle. Cela a fonctionné pour moi!

0
Mihaela Mates

j'ai ce problème et appliquer une solution différente, mais il est d'aucune utilité, donc je trouve la solution de ce problème, Effectuez ces étapes

1- ajouter une architecture dans le paramètre de construction armv6 2- il suffit de valider le paramètre 3- nettoyer le code 4- construire et exécuter 

à votre santé

0
Shauket Sheikh

Encore une autre variante: après avoir essayé à peu près tout dans la liste ci-dessus, j’ai résolu ce problème en adressant un avertissement indiquant que le chemin TestFlightSDK1 était introuvable. Pour ce faire, j'ai supprimé le chemin approprié des chemins de recherche d'en-tête (Paramètres de construction> Chemins de recherche) et supprimé le fichier TestFlightSDK. À présent, tout se passe bien. 

0
beaudrykock

si vous utilisez With Xcode 8 Beta, vous devez modifier les éléments suivants:

-Sélectionnez le projet et accédez aux paramètres de construction de la cible - Entrez la clé "Variantes de construction" dans le champ de recherche - et remplacez simplement "armv7" par "normal" ou inversez la.

0
Pravin Kamble

Tout ce qui précède n'a pas fonctionné, mais cela a fonctionné:

  1. Assurez-vous que tous vos fichiers (non ignorés) sont sous git

  2. Mon .gitignore ressemble à ceci

    *.xcworkspace
    xcuserdata
    .DS_Store
    Pods
    
  3. Faites une sauvegarde de MyProject.xcworkspace quelque part

  4. Supprimer MyProject.xcworkspace et MyProject

  5. git reset --hard HEAD

  6. Copier MyProject.xcworkspace dans votre répertoire de travail

  7. pod install

  8. Reconstruire!

0
mash

entre essayer les autres réponses ici et faire quoi cette réponse a dit il me semblait avoir résolu ce problème

0
Fonix

J'ai eu cela depuis le début et il semble que c'est un problème que l'émulateur ne puisse pas gérer les cartes à puce virtuelles. Malheureusement, j'ai fini par utiliser mon téléphone Android connecté via USB.

0
Markus Zeller

Pour moi, son entrée dupliquée dans info.plist a posé le même problème.

Suppression du triangle des fichiers d'icônes du pli d'info et travail.

0
Guru

Je rencontrais ce problème après la mise à niveau vers Mountain Lion et XCode 4.4.1 pour un projet OSX . Pour le résoudre, je devais mettre à niveau ma cible de déploiement à la version 10.5 ou supérieure; il était réglé à 10.4 et plus.

0
Wez Furlong