Impossible d’ouvrir le projet… ne peut pas être ouvert car le fichier de projet ne peut pas être analysé

J’ai travaillé pendant un certain temps pour créer une application iPhone. Aujourd’hui, alors que ma batterie était faible, je travaillais et sauvegardais constamment mes fichiers sources, puis le courant s’est éteint …

Maintenant, quand j’ai rebranché mon ordinateur et que la puissance est bonne, j’essaie d’ouvrir mon fichier de projet et je reçois une erreur:

Impossible d’ouvrir le projet

Projet … ne peut pas être ouvert car le fichier de projet ne peut pas être analysé.

Y a-t-il un moyen pour que les gens sachent que je peux me remettre de cela? J’ai essayé d’utiliser un fichier de projet plus ancien et de l’insérer puis de le comstackr. Cela me donne une erreur géniale, probablement parce qu’elle ne trouve pas tous les fichiers voulus …

Je ne veux vraiment pas reconstruire mon projet à partir de rien si possible.


MODIFIER

Ok, j’ai fait une différence entre ceci et un fichier de projet légèrement plus ancien qui fonctionnait et j’ai vu qu’il y avait une certaine corruption dans le fichier. Après les avoir fusionnées (les bonnes et les plus récentes), cela fonctionne maintenant.

Grands points sur le SVN. J’en ai un, mais il y a eu une certaine folie en essayant de synchroniser XCode avec lui. Je vais certainement passer plus de temps avec elle maintenant 😉

entrer la description de l'image ici

Je suis tombé sur ce problème et mon aîné m’a parlé d’une solution, à savoir:

Faites un clic droit sur votre fichier projectname.xcodeproj ici projectname sera le nom de votre projet. Maintenant, après un clic droit, sélectionnez Afficher le contenu des paquets . Après cela, ouvrez votre fichier projectname.pbxproj dans un éditeur de texte. Maintenant, recherchez la ligne contenant <<<<<<< .mine , ======= et ======= . Par exemple dans mon cas, cela avait l'air

 <<<<<<< .mine  9ADAAC6A15DCEF6A0019ACA8 .... in Resources */, =======  52FD7F3D15DCEAEF009E9322 ... in Resources */, >>>>>>> .r269 

Supprimez maintenant les <<<<<<< .mine , ======= et ======= pour que cela ressemble à ceci.

    9ADAAC6A15DCEF6A0019ACA8 /* BuyPriceBtn.png in Resources */,  52FD7F3D15DCEAEF009E9322 /* discussionForm.zip in Resources */, 

Maintenant, enregistrez et ouvrez votre projet Xcode et construisez-le. Tout ira bien.

La réponse de Mahomet a été très utile (et a aidé à résoudre mon problème). Cependant, le simple fait de supprimer >>>>>>> ======= <<<<<<< n’a pas suffi à corriger le problème d’analyse dans le fichier project.pbxproj (pour moi) lors de la conservation des modifications des deux branches. après une fusion.

J’ai eu un conflit de fusion dans la section PBXGroup (dont le début est indiqué par un commentaire de bloc comme ceci: / * Commencez la section PBXGroup * /) du fichier project.pbxproj. Cependant, le problème que j’ai rencontré peut également se produire à d’autres endroits dans le fichier project.pbxproj.

Vous trouverez ci-dessous une simplification du conflit de fusion que j’ai rencontré:

  <<<<<<< HEAD id = { isa = PBXGroup; children = ( id ); name = "Your Group Name"; ======= id = { isa = PBXGroup; children = ( id ); name = "Your Group Name"; >>>>>>> branch name sourceTree = ""; }; 

Lorsque j’ai supprimé les marqueurs de conflit de fusion, voici ce qui me restait:

  id = { isa = PBXGroup; children = ( id ); name = "Your Group Name"; id = { isa = PBXGroup; children = ( id ); name = "Your Group Name"; sourceTree = ""; }; 

En règle générale, la suppression des marqueurs de conflit de fusion permettrait de résoudre le problème d’parsing dans le fichier project.pbxproj et de restaurer l’intégrité de l’espace de travail. Cette fois ce n’est pas le cas.

Voici ce que j’ai fait pour résoudre le problème:

  id = { isa = PBXGroup; children = ( id ); name = "Your Group Name"; sourceTree = ""; }; id = { isa = PBXGroup; children = ( id ); name = "Your Group Name"; sourceTree = ""; }; 

En fait, j’ai dû append 2 lignes à la fin du premier groupe PBX.

Vous pouvez voir que si j’avais choisi de rejeter les modifications de la part de Head ou de la twig fusionnante, il n’y aurait pas eu de problème d’parsing! Cependant, dans mon cas, je voulais garder les deux groupes que j’ajoutais de chaque twig et simplement supprimer les marqueurs de fusion ne suffisait pas; J’ai dû append des lignes supplémentaires au fichier project.pbxproj afin de maintenir un formatage correct.

Donc, si vous rencontrez des problèmes d’parsing après avoir pensé que vous auriez résolu tous les conflits de fusion, vous pouvez examiner de plus près le fichier .pbxproj et vous assurer qu’il n’y a pas de problèmes de formatage!

J’ai exactement la même erreur car Cordova vous permettra de créer un projet avec des espaces, et Xcode ne sait pas comment traiter.

L’parsing visuelle du fichier de projet Xcode ne m’a pas aidé à localiser l’erreur après la fusion. Après avoir cherché dans syslog trouvé une telle ligne lorsque Xcode essayant d’parsingr le fichier:

 2/7/14 12:39:12.792 PM Xcode[9949]: CFPropertyListCreateFromXMLData(): Old-style plist parser: missing semicolon in dictionary on line 4426. Parsing will be abandoned. Break on _CFPropertyListMissingSemicolon to debug. 

Après la fixation de ce projet peut être ouvert ok.

J’ai eu un problème similaire.

Screenshot 1

Voici les étapes pour le résoudre:

  1. Accédez au dossier où votre projectName.xcodeproj .

    Screenshot 2

  2. Cliquez avec le bouton droit et sélectionnez ” Show Package Contents “. Vous pourrez voir la liste des fichiers avec l’extension .pbxproj .

    Screenshot 3

  3. Sélectionnez project.pbxproj . Cliquez avec le bouton droit de la souris et ouvrez ce fichier en utilisant ” Text Edit “.

    Screenshot 4

  4. Vous pourrez voir <<<<<< .mine , ============ et >>>>>>>>>> .r123 . Ce sont généralement des conflits qui surviennent lors de la mise à jour de SVN. Supprimez-les et enregistrez le fichier.

    Screenshot 5

    Screenshot 6

  5. Maintenant, vous pourrez ouvrir le projet sans aucun message d'erreur .

Je viens de rencontrer le même problème. J’ai toujours supprimé les chaînes générées par git, mais Xcode refusait toujours d’ouvrir le fichier .xcodeproj. Mais tout était correct, pas de parenthèses manquantes, etc. Finalement, j’ai essayé de quitter Xcode et d’ouvrir le projet quand Xcode était fermé . J’espère que ça aidera quelqu’un.

MODIFIER:

pour résoudre les conflits dans votre fichier .xcodeproj, vous pouvez utiliser ce script pratique:

  1. Créez un fichier .sh vide dans votre répertoire de projet (par exemple resolve_conflicts.sh)
  2. Voici le script:

    projectfile = find -d . -name 'project.pbxproj' find -d . -name 'project.pbxproj' projectdir = echo *.xcodeproj projectfile = “$ {projetdir} /project.pbxproj” tempfile = “$ {projetdir} /project.pbxproj.out” savefile = “$ {projetdir} /project.pbxproj .mergesave ”

    cat $ projectfile | grep -v “<<<<<<< HEAD" | grep -v "=======" | grep -v "^ >>>>>>>”> $ tempfile mv $ tempfile $ projectfile

  3. Exécutez-le depuis le terminal en utilisant la commande sh: sh resolve_conflicts.sh

Annuler le projet.pbxproj

svn revert –filename–

J’ai récemment rencontré le même problème en essayant de fusionner ma twig avec une twig distante. Cependant, aucune des solutions ci-dessus ne semblait convenir à mon problème.

Il n’y avait pas de conflits de fusion entre le fichier project.pbxproj de ma twig ou de la twig distante. Cependant, mon fichier nomProjet.xcodeproj refuse de s’ouvrir pour la même raison que celle indiquée dans la question posée.

Ma solution a été de parcourir le fichier project.pbxproj en utilisant un éditeur de texte et de trouver s’il y avait des irrégularités dans la syntaxe du fichier (par exemple, un crochet supplémentaire). J’ai accéléré ce processus en me concentrant sur les lignes qui ont été insérées ou supprimées dans l’ancien fichier par rapport au fichier fusionné. En examinant de plus près, j’ai trouvé que la cause de mon problème était la répétition de la ligne suivante:

 xxxxxxxxxxxxx /* [CP] Check Pods Manifest.lock */ = { 

dans mon fichier fusionné. Cela a conduit à un crochet non fermé et à la syntaxe pbxproj non valide. La suppression de la ligne ci-dessus a résolu mon problème.

Il semblerait que vous deviez créer un nouveau projet dans Xcode, aller dans l’ancien répertoire et faire glisser tous vos fichiers source, vos nibs et vos ressources dans la barre latérale des fichiers Xcode du nouveau projet. Cela ne devrait pas prendre plus de quelques minutes, à moins que vous ayez vraiment travaillé avec des parameters ou des cibles de génération personnalisés. Soit cela, soit revenir au dernier enregistrement dans votre contrôle de code source et append manuellement tous les fichiers de code qui ont changé entre maintenant et maintenant.

Et une fois que vous obtenez des choses à nouveau fonctionnant, vous devriez envisager d’utiliser quelque chose comme subversion ou mercurial pour le contrôle de sauvegarde et de révision. Rappelez-vous que les électrons ne vont pas toujours où ils sont censés, sauvegardez tôt et souvent!

changez le nom de votre dossier de projet et le module d’extraction du même projet. Ajoutez ensuite les modifications de fichier en cours.

Il suffit de vérifier le fichier project.pbproject et de faire un diff avec une version de travail du fichier de projet.

Souvent, cela se produit lorsque vous avez des conflits avec un système de contrôle de version tel que posté ici: le fichier utilisateur ne peut pas être analysé en subversion dans MAC iphone SDK

Essayez de trouver HEAD et _HEAD entre les lignes et supprimez ces mots dans project.pbxproj. Sauvegardez ce fichier avant de le faire.

Aller à PhoneGapTest >> plate-forme Ensuite, supprimez le dossier ios après que aller au terminal puis tapez: sudo phonegap construire ios après que vous pouvez exécuter le projet

Analysez la syntaxe de votre fichier de projet. Vérifiez-le dans votre projet dans le terminal:

plutil -lint project.pbxproj

Cela vous montrera les erreurs de l’parsingur.

Problème possible : certains projets définissent l’ union stratégie de fusion git pour les fichiers de projet. Cela fonctionne la plupart du temps, mais tuera silencieusement votre fichier de projet s’il échoue. Cette stratégie est définie dans le fichier .gitatsortingbutes de votre référentiel.

C’est parce que les noms de projet ne sont pas supposés avoir des espaces vides entre eux

subversion va corrompre mon fichier de projet après une opération presque hebdomadaire. J’essaie de comprendre pourquoi cela se passe tout de suite et j’ai rencontré ce problème.