web-dev-qa-db-fra.com

Une erreur s'est produite lors de l'exécution (Domain = LaunchServicesError, Code = 0)

J'ai reçu une erreur (Domain = LaunchServicesError, Code = 0) en essayant de lancer mon application dans le simulateur iOS avec Xcode 6. J'ai cherché une solution dans google, mais je n'ai rien trouvé de concret.

Que signifie cette erreur?

69
Liran Revivo

Cette erreur indique qu'il y a eu un problème d'installation. Malheureusement, Xcode n'imprime pas réellement le contenu du message d'erreur qui vous donnerait plus d'informations, mais vous pouvez consulter ~/Library/Logs/CoreSimulator/CoreSimulator.log pour afficher le reste des détails de l'erreur. Des informations supplémentaires sur le problème figurent également dans le journal système du périphérique simulé (~/Bibliothèque/Logs/CoreSimulator/[UDID du périphérique]/système.log); recherchez les messages de installd au moment de l’erreur).

Les causes courantes de cette situation sont notamment l'absence d'Info.plist dans les ensembles, l'absence de clés dans Info.plist de votre ensemble ou la non-autorisation de certaines clés dans Info.plist.

Si Info.plist de votre application ne contient pas de paire clé/valeur CFBundleVersion valide, il est possible que votre application puisse s'installer correctement la première fois mais ne parvient pas à se mettre à jour. De nombreux utilisateurs semblent contourner ce problème en effectuant une "Réinitialisation du contenu et des paramètres" après chaque installation, mais il serait préférable de réparer la cause première en définissant une CFBundleVersion appropriée dans Info.plist. Je pense qu'iOS 8.2 renvoie maintenant correctement une erreur lors de la première installation dans ce cas plutôt que simplement lors de mises à jour. J'espère donc que ce problème sera plus évident maintenant.

Les utilisateurs avec des répertoires de départ sur des systèmes de fichiers qui ne prennent pas en charge les liens physiques (par exemple: les répertoires de départ réseau via AFP, SMB ou certains serveurs NFS) peuvent également rencontrer des problèmes liés à la liaison en dur. Si tel est le cas, je vous suggère de créer un chemin sur votre système de fichiers HFS + local pour le développement du simulateur (par exemple:/var/simulator/[utilisateur]) et de créer un lien symbolique vers ce chemin à partir de ~/Library/Developer/CoreSimulator. Ce problème particulier a été résolu dans l'une des versions bêta d'iOS 8.2.

Dans un autre cas, Build & Run réussira toujours du premier coup, mais les tentatives suivantes échoueront parfois en raison d'une modification d'Info.plist (par exemple, parce que les paramètres du système de construction d'une personne entraînent la modification de CFBundleVersion à chaque itération). Vous pouvez généralement récupérer en supprimant l'application installée (à l'aide d'un appui long sur l'écran d'accueil ou de xcrun simctl uninstall [Device UDID] [app identifier]) ou en effaçant le périphérique à un état par défaut. Pour effacer le périphérique, exécutez xcrun simctl erase [Device UDID] depuis le terminal ou choisissez Erase Contents & Settings dans le menu du simulateur iOS. Ce problème particulier a été résolu dans l'une des versions bêta d'iOS 8.2.

Une nouvelle instance de ce problème se produit pour les utilisateurs de Xcode 6.2. Si votre application contient une extension WatchKit, elle ne pourra pas être installée sur des versions du runtime iOS Simulator antérieures à iOS 8.2. Pour contourner le problème, vous devez désactiver manuellement l’extension de l’application lors de l’essai lorsque vous souhaitez tester avec des versions d’exécution iOS 8.1 et antérieures.

Si vous avez besoin d’une aide plus spécifique, indiquez l’intégralité du message d’erreur de CoreSimulator.log et des messages d’installd et de CoreSimulatorBridge qui apparaissent vers la même heure dans ~/Bibliothèque/Logs/CoreSimulator/[ID de périphérique]/système.log en tant que cela révélera le problème sous-jacent.

119

Votre projet inclut-il un widget ou une extension? Si tel est le cas, le problème pourrait être l'identifiant de bundle de votre widget/extension. Il devrait être identique à la cible principale, avec un point et une chaîne supplémentaire. Donc par exemple:

Cible principale: com.mycompany.myapp

Le widget devrait être: com.mycompany.myapp.widget

41
Rachid Finge Jr

Je l'ai corrigé en réinitialisant le simulateur:

simulateur iOS> Réinitialiser le contenu et les paramètres ...

39
Chris Long

Puisque tout le monde écrit ce que ils ont traversé et comment ils résolu leur problème exact, cela pourrait ne pas être utile.

Le problème est qu’il existe différentes causes pour le même message d’erreur et la bonne façon de le résoudre est d’ouvrir ~/Library/Logs/CoreSimulator/CoreSimulator.log Et de rechercher le dernier message. Ce message vous donne un bon indice et vous indique le bon chemin pour résoudre votre problème (parfois, il s'agit d'ID de bundle, parfois d'un attribut manquant ou supplémentaire dans Info.plist, mais vous obtenez toujours un bon indice descriptif).

Voici comment réduire le problème et éventuellement le résoudre.

Bonne chance et nerfs difficiles avec Xcode.)

Z.

25
Zoltán

Pour moi, je viens de nettoyer le projet et cela a fonctionné -> Produit -> Nettoyer

18
CFSoftware Malta

TLDR: Effacez votre dossier de construction de projet - et vous serez libéré de cette douleur.

(De plus, j'ai enregistré ceci comme un bogue avec Apple car ils ont besoin de trouver un moyen de résoudre ce problème dans Xcode)

Aucune de ces solutions ne fonctionnait pour moi - je me suis cogné la tête contre plusieurs murs.
J'ai consulté le journal CoreSimulator et je me suis rendu compte qu'il essayait de créer une bibliothèque que j'avais supprimée. Je n'ai pu trouver de références nulle part.

Puis j'ai vu via un autre SO Question à laquelle malheureusement je ne trouve pas de référence, si vous:

  1. Maintenez la touche option enfoncée pour que l'option Produit-> Nettoyer devienne Clean Build Folder
  2. Appuyez dessus et appréciez que votre erreur disparaisse
15
UKDataGeek

"Réinitialiser le contenu et les paramètres" de simulateur iOS les options de menu et le lancement du simulateur après quitter ont résolu mon problème.

Reset Content and Settings

12
Sauvik Dolui

En XCode 6

Une erreur s'est produite lors de l'exécution (Domain = LaunchServicesError, Code = 0)

J'ai eu cette erreur après avoir apporté quelques modifications majeures au code pour prendre en charge les écrans de l'iPhone 6. dans Xcode 6 (iOS8)

J'ai suivi les options ci-dessus et j'ai constaté que le seul moyen de vraiment résoudre ce problème était de procéder comme suit:

  1. Supprimez les données dérivées [allez à Fenêtre >> Organiseur >> (Trouvez votre application) Cliquez sur Supprimer à côté des données dérivées]
  2. Produit >> Nettoyer
  3. Réinitialiser le contenu et les paramètres dans le simulateur
  4. Changement de la version de paquetage à 1.4.1 de 1.4 dans pList

    Merci pour toutes les réponses précédentes qui m'ont amené à cette étape. Cela a fonctionné un charme!

9
Meg de Graaf

Dans mon cas, l'erreur est due au fait que je n'ai pas défini l'identifiant de génération.

En définissant cela, lance l'émulateur sans problème.

5
jos

J'ai une application configurée pour utiliser différents identifiants de bundle basés sur la configuration de construction. Lors de la création de mon Apple Watch, Xcode générait tout à l'aide de mon ID de publication. Je devais donc le modifier manuellement pour le débogage. Voici les endroits où je devais le modifier:

  • WatchKit ExtensionBuild Settings -> Packaging -> Product Bundle Identifier
  • WatchKit Extension De Info.plist -> NSExtension -> NSExtensionAttributes -> WKAppBundleIdentifier (Cela doit utiliser le même préfixe que votre application compagnon)
  • WatchKit AppInfo.plist -> WKCompanionAppBundleIdentifier

Le dernier m'a pris un certain temps, car les informations de WatchKit App N'apparaissent pas sous forme d'onglet lorsque vous affichez les paramètres de la cible. J'ai dû accéder directement au fichier Info.plist.

3
SeanR

Une autre chose à essayer, qui a fonctionné pour moi, après avoir réinitialisé le simulateur et effectué une construction propre n'a pas aidé, efface les données dérivées. Pour ce faire: dans l’organiseur, cliquez sur projet, puis sur le bouton Supprimer les données dérivées. Cela m'est arrivé après avoir travaillé pendant un certain temps sur une extension et être retourné à la branche régulière. J'espère que cela t'aides.

3
possen

C'est ce qui m'a causé le problème: le numéro de version de l'application principale et de l'extension étaient différents (j'avais incrémenté le numéro de version de l'application principale à 1.0.1.03, mais j'avais laissé l'extension à 1.0.1.02).

Les faire correspondre a résolu le problème pour moi.

3
gb_kf

Ouvrez l'application Console et regardez-la. Dans mon cas, il m'a dit exactement quoi faire. J'ai vu:

ErrorDescription = La valeur NSExtension.NSExtensionAttributes.WKAppBundleIdentifier de l'extension de l'application WatchKit 2 ne correspond pas à l'ID d'ensemble de l'application WatchKit (trouvé "com.myCompany.MyApp.MyApp.MyApp.watchkitapp"; attendu "com.myCompany.MyApp. watchkitapp ").

Alors, je suis allé à chaque plist et vérifié tous les éléments liés à un BundleID. Puis nettoyer, relancer, etc.

3
Jeff

"Réinitialiser le contenu et les paramètres" à partir des options du menu du simulateur iOS et le lancement du simulateur après la fermeture de l'ordinateur ont résolu le problème.

2
hitesh landge

Mon cas concernait la compilation de framework. J'ai activé l'option "Copier uniquement lors de l'installation" de Target- Build Phases- Embedded Frameworks - enter image description here

2
A.G

J'ai aussi cette erreur. Dans mon cas, le journal ~/Library/Logs/CoreSimulator/CoreSimulator.log était quelque chose comme ça:

Could not hardlink copy /Users/myUser/Library/Developer/CoreSimulator/Devices/60E569E7-6750-428A-A401-841BB081xxxx/data/Containers/Bundle/Application/70F24DDC-7954-46BF-B799-F807FD98yyyy/myApp.app to /Users/myUser/Library/Developer/CoreSimulator/Devices/60E569E7-6750-428A-A401-841BB081xxxx/data/Library/Caches/com.Apple.mobile.installd.staging/temp.kOrJ9G/extracted/Payload/myApp.app with manifest /Users/myUser/Library/Developer/CoreSimulator/Devices/60E569E7-6750-428A-A401-841BB081xxxx/data/Library/Caches/com.Apple.mobile.installd.staging/temp.kOrJ9G/extracted/com.Apple.deltainstallcommands.com.mycompagny.myapp

grâce à cela réponse En regardant mon application info.plist. la clé CFBundleVersion était manquante alors je l'ajoute et maintenant tout fonctionne!

2
Thomas Besnehard

Aucun de ce qui précède n'a fonctionné pour moi, mais cela a:

J'ai simplement supprimé IceCream.xcworkspace/xcuserdata/xcuserdatad, puis j'ai réinitialisé le simulateur et exécuté l'application à nouveau. (Réinitialiser le simulateur seul n'a pas fonctionné pour moi.)

2

La grande explication de Jeremy m'a au moins placé dans la bonne direction, mais malgré le fait que tous les identifiants et toutes les versions de l'ensemble aient été correctement définis, l'erreur persiste. J'ai ensuite vérifié documentation Apple , ce qui montre que l'extension WatchKit (dans sa phase de copie des ressources du paquet) copie l'application WatchKit. Cette application WatchKit porte le même nom que mon application iOS, ce qui a amené Xcode à confondre les deux et à lire le mauvais répertoire, pensant que l'identificateur de paquet était incorrect. Renommer le produit de l'application WatchKit en quelque chose de distinct l'a finalement résolu.

2
Toine Heuvelmans

Essayez de mettre un certain nombre dans [CIBLES] - [Général] - [Identité] - [Version (ou Construction)], si elles sont vides.

Cela a fonctionné pour moi.

J'espère que cela vous aidera.

2
4F0A

Si vous avez modifié l'ID de votre lot, assurez-vous de créer une nouvelle version avant de la reconstruire! Voir comment ici: Comment vider les caches et nettoyer toutes les cibles Xcode 4

1
BigCheesy

J'ai eu cette erreur en essayant de construire le projet Xcode Lister d'Apple et de l'exécuter sur le simulateur.

Les éléments essentiels qui l'ont corrigé pour moi étaient:

1) BundleID pour l'application iOS et l'extension iOS devait être différent 2) Je fournis des groupes iCloud et App pour les deux cibles 3) J'ai utilisé le "problème" de Xcode pour résoudre les problèmes.

Après cela, je pourrais construire et exécuter l'application sans avertissements ni erreurs.

L'indice du fichier journal était "... LegacyErrorString = DuplicateIdentifier, FunctionName = - [MIInstallableBundle performPreflightWithError:], SourceFileLine = 450, NSLocalizedDescription = Le groupe parent a le même identifiant (com.ACMECompany.Lister) en tant que Utilisateurs/stephen/Bibliothèque/Développeur/CoreSimulator/Appareils/5329928B-946B-40A4-B666-EFD11B96D11F/data/Bibliothèque/Caches/com.Apple.mobile.installd.staging/temp.HQ5d9X/extracté/Lister.app/PlugIns/Lister.appex "

1
Stephen Watson

Une mauvaise version de l'application était-elle définie dans InfoPlist.strings fichier de localisation . Urgh!

Une heure est passée!

1
Alexandre G

C'est donc définitivement un problème .plist. Dans mon cas, il était vide NSExtensionMainStoryboard, la suppression de cette propriété a résolu le problème.

1
Maciek Czarnik

Mon problème était que l'extension de wrapper pour le projet cible était non définie.

Pour corriger je devais aller à projet cible -> paramètres de construction -> Packaging -> Extension de l'encapsuleur.

Définissez ceci sur "app" (sans guillemets)

Cela a résolu le problème pour moi

0
smac89

Une autre solution possible à ajouter à toutes les autres et qui restera sans aucun doute au-dessus de la mienne;)

J'ai supprimé puis rétabli une cible Today Extension en conservant les fichiers source, mais après avoir essayé chaque solution sous le soleil, j'ai réalisé qu'elle ne contenait aucune source ou ressource dans sa cible! Vous pouvez également rencontrer ce problème si votre erreur de services de lancement détaillée ne parvient pas à trouver votre fichier d'extension d'application compilé.

Donc, bref, assurez-vous que votre cible a quelque chose inclus pour compiler ou regrouper. Vous pouvez vérifier vos adhésions cibles en sélectionnant le ou les fichiers appropriés dans le navigateur de votre projet (à gauche) et en cochant la case appropriée dans l'inspecteur de fichiers (le premier onglet à droite).

0
Simon Rice

enter image description here

Supprimer votre simulateur et en régénérer un.

Ça marche pour moi.

0
keywind

J'ai enlevé la clé dans regarder l'application. Le fichier .plist qui n'aurait pas dû être là. Et le problème a disparu.

0
mikezs

Cette erreur apparaissait sur mon système alors qu'il n'y avait plus d'espace disque disponible. J'ai libéré de l'espace sur mon système pour que cela fonctionne.

0
anjani kp

J'ai eu ce qui suit dans mon journal ...

<Error>: Error Domain=LaunchServicesError Code=0 "(null)" UserInfo={Error=ExecutableTwiddleFailed...

Cela était dû au fait qu’aucun fichier source n’était ajouté dans le projet d’extension.

0
combinatorial

Cela a fonctionné pour moi: dans les paramètres du projet -> onglet Général -> section Identité, j'ai changé le numéro de version de 2.0.2 (trois chiffres) à 2.0 (deux chiffres), puis j'ai supprimé l'application dans le simulateur et relancé le projet. . Plus d'erreur après ça.

0
user1870522

J'ai eu ce problème aussi, il s'avère qu'un de mes info.plist a été assigné à la cible spécifiquement quand il est supposé être assigné à aucun. Il y a en fait un avertissement de recommandation de paramètres Xcode, que j'ai tapé et accepté les modifications. Cela a résolu le problème.

0
Ace Green