web-dev-qa-db-fra.com

Échec de l'attachement à l'ID de processus Xcode

Quelqu'un a-t-il rencontré ce problème? Hier, je peux toujours exécuter mon application dans le simulateur, mais maintenant, je ne peux plus l'exécuter, car Xcode affiche cette erreur dans la console:

error: failed to attach to process ID <ID number>

 Screenshot for error

J'ai essayé de réinstaller/faire ceci poster et créer un nouveau projet mais ne renvoie pas de chance . N'importe qui peut résoudre ce problème?

J'utilise Xcode 4.5 Preview 2 et j'essaie de lancer le simulateur iOS 6

107
Rendy

Réinitialiser le contenu et les paramètres du simulateur a fonctionné pour moi. Ceci est disponible dans le menu "Simulateur iOS".

153
Robert Zahm

allez dans le menu Product et trouvez le menu Edit Scheme.

Dans la fenêtre Edit Scheme, sélectionnez l'option "Run" sur le côté gauche de l'écran, puis sur le côté droit, modifiez le débogueur de LLDB à GDB.

45
Imran

J'ai rencontré le même problème et après un moment, j'ai découvert que c'était dû au fait que mon projet XCode incluait un Folder Reference dans un dossier nomméResources.

Il semble que XCode n'aime pas ce nom.

Juste supprimer la référence du dossier ou renommer le dossier a résolu le problème.

20
Mirko Luchi

DEUX METHODES

Méthode 1 : Dans le dossier Prise en charge de l'application -> iPhone Simulator -> Dans chaque version de simulateur d'iOS -> Applications -> Supprimez tous les fichiers présents ici.

Maintenant, allez dans Produits -> Nettoyer

Maintenant, lancez-le sur n'importe quel simulateur et cela fonctionnera.

Méthode 2

Tap on Reset

20
Ambili B Menon

Etape 1: ping

$ ping localhost

Cela devrait retourner quelque chose comme

PING localhost (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.028 ms
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.048 ms
...

Si cela fonctionne, cette réponse ne résoudra pas votre problème, essayez autre chose. 

Si ping retourne quelque chose d'autre par exemple: ping: cannot resolve localhost: Unknown Host quelque chose est foiré avec votre fichier /etc/hosts, allez à Step 2

Étape 2: Vérifiez/etc/hosts

Vérifiez que le haut de votre fichier /etc/hosts ressemble à ceci

127.0.0.1       localhost
255.255.255.255 broadcasthost
::1             localhost 
fe80::1%lo0     localhost

S'il ne contient pas ces entrées dans le fichier, entrez-les en haut du fichier, videz le cache DNS à l'aide de $ dscacheutil -flushcache et revenez à Step 1, sinon passez à Step 3.

Étape 3: Format de fichier correct: il devrait s'agir d'unix ou LF *

$ file /etc/hosts

Cela devrait renvoyer: /etc/hosts: ASCII English text 

S'il renvoie quelque chose comme /etc/hosts: ASCII English text, with CR line terminators , le fichier est dans un format incorrect et est probablement ignoré. 

Changez les fins de ligne de fichier en unix ou LF en utilisant votre éditeur de texte préféré. 

  • Dans Sublime Text 2, vous pouvez le faire dans le menu Affichage: Afficher> Fin de ligne> Unix

Videz le cache DNS ($ dscacheutil -flushcache) et revenez à step 1

8
Intentss

Semblable à la réponse de fundtimer, le fichier des hôtes locaux semble avoir été le coupable.

Je devais rétablir mes autorisations /etc/hosts par défaut après un changement involontaire:

Sudo chmod 644 /etc/hosts

Après cela, le simulateur/LLDB a fonctionné pour moi.

5
amattn

Je sais que c’est une vieille question, mais c’est la première fois que j’ai fait une recherche sur Google pour "Échec de l’attachement à l’ID de processus". J'utilise Xcode 7. Cela s'est passé après la sortie de iOS9 et la mise à jour de mon application Swift pour Swift 2.

Supprimer mon application dans le simulateur et créer une nouvelle version et l'exécuter l'ont clarifié.

4

C'est un sujet ancien, mais je pense que les choses ont un peu changé pour la dernière version de macOS.

Je suis tombé sur le problème en essayant de lancer une suite de tests d'interface utilisateur pour une application iOS dans le simulateur sur macOS Mojave Beta et Xcode 9.4.1.

Il s'avère que sur macOS Mojave, l'outil codesign (qui fait partie du système d'exploitation lui-même et non des outils de ligne de commande ou Xcode) signe les processus dans un environnement hardened runtime qui inclut l'application de la signature de code d'exécution, la validation de bibliothèque , restrictions dures, tuer et de débogage. Ceci, associé à la protection de l'intégrité du système dans macOS Mojave, empêche le débogueur lldb de se connecter à la cible en cours d'exécution.

Pour résoudre ce problème, vous devez choisir les options suivantes:

  1. Une solution évidente consiste probablement simplement à utiliser Xcode 10. Il semble gérer la connexion avec élégance.

  2. Redémarrez le système d'exploitation en mode de récupération et désactivez la protection de l'intégrité du système à partir du terminal avec csrutil disable. Le débogueur se connecte ensuite avec bonheur.

J'ai passé pas mal de temps à me cogner la tête et j'ai pu résoudre le problème après avoir lu l'article suivant: http://www.lapcatsoftware.com/articles/debugging-mojave.html

Juste mes deux cents. J'espère que ça aide quelqu'un.

4
eploko

J'avais en quelque sorte supprimé ou supprimé des enregistrements de mon fichier/etc/hosts et j'ai la même erreur . Vous devriez vérifier si votre fichier/etc/hosts contient la ligne "127.0.0.1 localhost" ..__ m'a aidé!

4
pedrouan

Je viens de retirer l'application du simulateur (comme vous le feriez sur un appareil réel), et quand je l'ai relancé, tout a bien fonctionné.

2
Nic Foster

J'ai aussi le même problème et pour moi la solution est: -

Supprimez simplement l'application du simulateur, puis effacez et exécutez le projet.

Puisse-t-il aider aussi quelqu'un d'autre.

2
Muhammad Rizwan

Dans mon cas, la solution était différente: le mode de fonctionnement était "Release". Passer à "Debug" corrige le problème. Xcode 4.5.x n'a eu aucun problème avec cela.

1
orip

J'ai résolu ce problème en quittant XCode et Simulator. Rouvrez le projet. Terminé.

1
Jayprakash Dubey

Je travaille sur l'application Ionic 2, je suis nouveau dans ce domaine et même sur Xcode et simulateur.
Initialement, mon application fonctionnait sur simulateur, mais après un certain temps, elle commençait à générer une erreur comme-
xcode error: échec d'attachement à l'ID de processus 

J'ai cherché, essayé toutes les réponses ci-dessus mais mon problème n'a pas été résolu.
Puis j'ai mis à jour ( Ionic , npm , cordova ) la configuration de ma machine -

******************************************************
 Dependency warning - for the CLI to run correctly,      
 it is highly recommended to install/upgrade the following:     

 Install ios-deploy to deploy iOS applications to devices.  `npm install -g ios-deploy` (may require Sudo)

******************************************************

Your system information:

Cordova CLI: 6.4.0 
Ionic Framework Version: 2.0.0-beta.10
Ionic CLI Version: 2.1.8
Ionic App Lib Version: 2.1.4
ios-deploy version: Not installed
ios-sim version: 5.0.8 
OS: OS X Yosemite
Node Version: v6.2.2
Xcode version: Xcode 7.2 Build version 7C68



******************************************************

Après cela, je viens d'exécuter une commande depuis le répertoire de base de mon application

  1. course ionique -l
  2. ionic build ios.
  3. les modifications de xcode importées en xcode.
  4. Réinitialiser le contenu et les paramètres
     enter image description here
  5. effacer le produit de xcode,
     enter image description here
  6. Exécutez Xcode et cela fonctionne maintenant sur le simulateur.

Heureux de voir ça !!!

1
S.Yadav

Le problème pour moi était dû à une erreur assez stupide: j'ai créé une nouvelle cible pour mon projet en dupliquant une cible existante et en oubliant de changer le Bundle Identifier dans le fichier info.plist de la cible.

1
mwidmann

J'ai eu le même problème lors du débogage sur le périphérique. L'application s'est bloquée au démarrage, mais ne s'est pas affichée comme un processus en cours d'exécution.

Ma solution consiste à utiliser une application de visualisation de processus (par exemple, System Status ou similaire). Recherchez votre application obsolète, puis recherchez l'id du processus parent, qui est généralement debugserver.

Allez sur Xcode, Product -> Attach to Process -> Par identifiant de processus et associez au PID debugserverprocess. Attendez une seconde, puis appuyez sur le bouton Stop.

Les processus obsolètes du serveur de débogage et de l'application disparaissent.

(Lors de l'utilisation du simulateur, l'équivalent serait d'utiliser le terminal, ps et de tuer le processus d'application. Je n'ai pas essayé cela, cependant).

1
Ramon Poca

La réponse ci-dessus m'a vraiment aidée . https://stackoverflow.com/a/12819757/1752988 Parce que dans mon XCode, j'ai utilisé un story-board et un contrôleur de vue personnalisé. et dans sa liste d'avertissement que j'ai vu certains des fichiers nib sont manquants. Mlle me conduisait en voyant cela. Cependant, j’ai vu cette réponse: Et même si je n’aimais pas réinitialiser le contenu de mon simulateur d’application, je l’ai fait et cela a vraiment fonctionné pour moi.

De plus, le fait de changer le débogueur de Produit -> Schéma -> Modifier le schéma (Exécuter) de LLDB à GDB n'a pas fonctionné pour moi non plus.

P.s.:- Pardonnez-moi, j'ai ajouté cette réponse comme commentaire de support ci-dessus, car je n'ai pas 15 points de réputation pour influencer la réponse ci-dessus ni 50 points de réputation à commenter ci-dessus.

1
Randika Vishman

Je viens de poster ceci sur le forum des développeurs. C'était une solution simple et peut aider quelqu'un ici:

J'ai eu exactement le même problème: lors de l'utilisation d'une version actuelle de Xcode 4.xx et du débogueur LLDB, ainsi que de toute version du simulateur, XCode s'est écrasé de manière cohérente avec le 'échec de l'attachement au processus ...' Ma seule résolution était de basculer vers le débogueur GDB. C'était décevant car je voulais vraiment essayer le nouveau LLDB robuste en XCode 4.6-DP.

Et puis je me suis souvenu; J’avais changé de fichier d’hôte réseau/serveur à ... etc/hosts il y a quelque temps pour pouvoir accueillir plusieurs hôtes virtuels de serveur Apache2, c’est-à-dire que j’ai supprimé la ligne:

127.0.0.1 locahost

C'était ça. En supprimant cette ligne, XCode est tombé en panne lors de la connexion au simulateur avec LLDB . En restaurant cette ligne, XCode fonctionnait parfaitement avec LLDB et le simulateur.

Quoi qu'il en soit, ce n'est peut-être pas votre problème, mais cela vaut la peine d'être exploré. En ce qui me concerne, c'est un sérieux bug non documenté. 

1
fundtimer

Ce qui suit a fonctionné pour moi sur iOS 9.1:

  1. Il suffit de désinstaller l'application du simulateur
  2. Quitter le simulateur (Cmd + Q)
  3. Nettoyez votre projet Xcode
  4. Exécuter sur simulateur

Remarque: Il n'est pas nécessaire de réinitialiser le simulateur.

1
Arjun Shukla

J'ai résolu ce problème en supprimant le contenu des données Xcode Derived.

Dans le Finder, appuyez sur SHIFT + CMD + G et tapez ci-dessous chemin et supprimez toutes les données à l'intérieur de DerivedData:

  ~/Library/Developer/Xcode/DerivedData

enter image description here

Réinitialiser également les versions du simulateur

     ~/Library/Application Support/iPhone Simulator/6.0/Applications 
1
Guru

Avez-vous plusieurs utilisateurs connectés à votre machine? J'ai des comptes "personnels" et "de travail" sur mon ordinateur portable. J'ai eu cette erreur lorsque j'essayais de déboguer à partir de mon compte personnel, mais j'avais laissé le simulateur s'exécuter dans mon compte professionnel. Quitter le simulateur dans l'autre compte a résolu mon problème.

0
bugloaf

Couru à travers cela aujourd'hui. J'ai accidentellement supprimé mes images de lancement de mes paramètres cible.

0
PWiggin

Comme @eploko a mentionné dans sa réponse à Mojave, la politique de débogage change. Cette réponse s'adresse uniquement à ceux qui rencontrent des difficultés pour exécuter les infrastructures de test sous Xcode 9.4.1 et Mojave. 

Selon Apple, ce comportement est intentionnel et vous avez donc deux solutions:

  1. Utilisez Xcode 10 et vos problèmes disparaîtront.
  2. Désactivation du débogueur dans l'éditeur de schéma pour votre cible de test.

Pour ce faire, sélectionnez votre cible de test, puis sélectionnez Edit Scheme. Une fois là sélectionnez la section Test à gauche et décochez Debug executable.

 enter image description here

Plus d'informations dans ce radar . J'espère que ceci vous aide.

0
Victor Sigler

et un autre pour le compte rendu: (aucune des suggestions n'a fonctionné pour moi)

Mountain Lion: XCode 4.6.3

  • Je moved the whole Application to Trash et supprimé suivant d'autres dossiers
  • /Users/[USERNAME]/Library/Developer
  • /Users/[USERNAME]/Library/Caches/com.Apple.dt.XCode
  • /Users/[USERNAME]/Library/Application Support/iPhone Simulator

  • redémarrer le système et réinstaller XCode

0
longilong

Aussi boiteux que ce soit, le redémarrage de mon ordinateur était la seule solution qui fonctionnait. J'ai essayé de passer de LLDB à GDB, de réinitialiser le contenu du simulateur et de redémarrer Xcode. La seule chose qui a fonctionné a été de redémarrer mon ordinateur, de rouvrir Xcode et de relancer l'application.

0
Jeff Grimes

J'ai eu le même problème. J'ai fait quelques combinaisons de réponses données pour que cela fonctionne. :) 

nettoyez le dossier de construction en cliquant sur "Produit" dans la barre de menus. tout en appuyant sur la touche Alt, cliquez sur "Nettoyer le dossier de construction". Maintenant, redémarrez votre xcode et votre simulateur . Maintenant, cela devrait fonctionner. Si ce n'est pas le cas, essayez également de changer l'identifiant du paquet et le "Content Reset" du simulateur, puis redémarrez xcode et le simulateur.

0
user865155

Aussi eu le même problème aujourd'hui. J'utilisais Xcode 4.6.3. J'ai fermé mon projet et l'ouvre dans Xcode 5 et il fonctionne parfaitement.

Etrange mais vrai

0
Mohit

Je sais que c'est vieux - mais la solution pour moi était la suivante:

Aller à: Cibles> Paramètres de construction> Liaison -> Type Mach-O = Exécutable

0
TejAces

Si vous utilisez des Cocoapods, assurez-vous de construire des frameworks dynamiques en ayant use_frameworks! dans votre Podfile.

Lorsque je construisais des bibliothèques statiques de mes dépendances Cocoapods sur Xcode 10.2.1 et Cocoapods 1.6.1, je ne pouvais pas déboguer la cible à cause de cette erreur "Impossible de joindre". Avec use_frameworks!, l'erreur avait disparu et je pouvais à nouveau déboguer.


Détails

Dans mon Podfile, je construisais un framework statique, qui est le modèle par défaut, avec un mélange de pods basés sur Swift et sur objective-c. J'ai utilisé le :modular_headers => true avec l'un des pods. Mon Podfile ressemblait à quelque chose comme ça:

Swift_version = '5.0'

target 'TargetName' do
  platform :ios, '12.2'

  pod 'IGListKit', :modular_headers => true
  pod 'PromiseKit/CorePromise', '~> 6.0'
end

Le fichier podfile ci-dessus n'a pas pu être débogué avec Xcode 10.2.1, ce qui a toujours pour résultat le modal "Impossible d'attacher au PID".

Mais quand j'ai ajouté use_frameworks!, ça a fonctionné! J'ai pu le reprocher avec et sans. Voici le podfile qui a fonctionné:

Swift_version = '5.0'
use_frameworks!

target 'TargetName' do
  platform :ios, '12.2'

  pod 'IGListKit'
  pod 'PromiseKit/CorePromise', '~> 6.0'
end
0
yood

J'ai eu le même problème, dans mon cas, le problème était: - 

J'ai mis "Construire les architectures actives: NON". Il suffit de changer en OUI et cela a fonctionné.

0
Ashish

essayez de faire les prochaines étapes:

  • Allez à Product/Scheme/Edit Scheme puis sélectionnez la section Run.
  • Sélectionnez Info Tan et définissez le débogueur Aucun.
  • Exécuter le projet. Il doit fonctionner (sans débogueur)
  • Retournez à Edit Scheme et au débogueur de sélections LLDB
  • Exécuter le projet. Ça fonctionne.

De plus, vous devez peut-être supprimer les données dérivées et faire Product/Clean

0
Philip J. Fry

Sous XCode 9+, procédez comme suit: Accédez au menu XCode: Product-Scheme - Edit Scheme et sous Run, assurez-vous que la case Debug Executable est cochée! C'est tout!

 enter image description here

0
joan

Tant de réponses à cela et je n'ai pas vu ce que je croyais être la bonne. C'est un problème d'autorisation. Tapez ceci dans le terminal:

Sudo DevToolsSecurity -enable

0
crewshin

Il suffit de réinitialiser le contenu et les paramètres du simulateur iOS, puis de nettoyer le code en appuyant sur les touches Commande + Maj + K pour nettoyer le code.

0
Desert Rose