Je travaille depuis un moment pour créer une application iPhone. Aujourd'hui, quand ma batterie était faible, je travaillais et sauvegardais constamment mes fichiers sources puis le courant s'est éteint ...
Maintenant, lorsque j'ai rebranché mon ordinateur et qu'il est bien alimenté, j'essaye d'ouvrir mon fichier de projet et j'obtiens une erreur:
Impossible d'ouvrir le projet
Projet ... ne peut pas être ouvert car le fichier projet ne peut pas être analysé.
Y a-t-il un moyen dont les gens savent que je peux m'en remettre? J'ai essayé d'utiliser un fichier de projet plus ancien et de le réinsérer, puis de le compiler. Cela me donne une erreur géniale qui est probablement parce qu'il ne trouve pas tous les fichiers qu'il veut ...
Je ne veux vraiment pas reconstruire mon projet à partir de zéro si possible.
ÉDITER
Ok, j'ai fait une différence entre cela et un fichier de projet légèrement plus ancien qui a fonctionné et j'ai vu qu'il y avait une corruption dans le fichier. Après les avoir fusionnés (les bonnes et les plus récentes parties), cela fonctionne maintenant.
Grands points sur le SVN. J'en ai un, mais il y a eu un peu de funkiness essayant de synchroniser XCode avec lui. Je vais certainement passer plus de temps avec ça maintenant ... ;-)
La réponse de Muhammad a été très utile (et a contribué à ma solution). Cependant, la simple suppression de >>>>>>> ======= <<<<<<<< n'a pas suffi à résoudre le problème d'analyse dans le projet.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 celui-ci: / * Begin PBXGroup section * /) du fichier project.pbxproj. Cependant, le problème que j'ai rencontré peut également se produire à d'autres endroits dans le fichier project.pbxproj.
Voici une simplification du conflit de fusion que j'ai rencontré:
Lorsque j'ai supprimé les marqueurs de conflit de fusion, voici ce qui me restait:
Normalement, la suppression des marqueurs de conflit de fusion résoudrait le problème d'analyse dans le fichier project.pbxproj et restaurerait l'intégrité de l'espace de travail. Cette fois, non.
Voici ce que j'ai fait pour résoudre le problème:
J'ai en fait dû ajouter 2 lignes à la fin du premier PBXGroup.
Vous pouvez voir que si j'avais choisi d'annuler les modifications de Head ou de la branche fusionnante, il n'y aurait pas eu de problème d'analyse! Cependant, dans mon cas, je voulais conserver les deux groupes que j'ai ajoutés à partir de chaque branche et supprimer simplement les marqueurs de fusion n'était pas suffisant; J'ai dû ajouter des lignes supplémentaires au fichier project.pbxproj afin de maintenir un formatage correct.
Donc, si vous rencontrez des problèmes d'analyse après avoir pensé avoir résolu tous vos conflits de fusion, vous voudrez peut-être examiner de plus près le .pbxproj et vous assurer qu'il n'y a pas de problèmes de formatage!
la source
J'ai eu exactement la même erreur parce que Cordova vous permettra de créer un projet avec des espaces, et Xcode ne sait pas comment gérer.
la source
J'ai eu un problème similaire.
Voici les étapes pour le résoudre:
Accédez au dossier dans lequel votre fichier
projectName.xcodeproj
.Faites un clic droit et sélectionnez '
Show Package Contents
'. Vous pourrez voir la liste des fichiers avec l'.pbxproj
extension.Sélectionnez
project.pbxproj
. Cliquez avec le bouton droit de la souris et ouvrez ce fichier en utilisant 'Text Edit
'.Vous pourrez voir
<<<<<< .mine
,============
et>>>>>>>>>> .r123
. Ce sont généralement des conflits qui surviennent lorsque vous prenez la mise à jour de SVN. Supprimez-les et enregistrez le fichier.Maintenant, vous pourrez ouvrir le projet sans aucun message d'erreur .
la source
L'analyse visuelle du fichier de projet Xcode ne m'a pas aidé à localiser l'erreur après la fusion. Après avoir regardé syslog a trouvé une telle ligne lorsque Xcode essayait d'analyser le fichier:
Après avoir corrigé ce projet peut être ouvert ok.
la source
Analysez la syntaxe de votre fichier projet. Vérifiez-le dans votre projet dans le terminal:
plutil -lint project.pbxproj
Cela vous montrera les erreurs de l'analyseur.
Problème possible : certains projets définissent une stratégie de fusion git
union
pour les fichiers de projet. Cela fonctionne la plupart du temps, mais tuera silencieusement votre fichier projet en cas d'échec. Cette stratégie est définie dans le.gitattributes
fichier de votre référentiel.la source
J'ai récemment rencontré le même problème en essayant de fusionner ma branche avec une branche distante. Cependant, aucune des solutions ci-dessus ne semblait appropriée à mon problème.
Il n'y a eu aucun conflit de fusion entre le fichier project.pbxproj dans ma branche ou la branche distante. Cependant, mon fichier projectName.xcodeproj refuserait de s'ouvrir pour la même raison que celle indiquée dans la question posée.
Ma solution était de regarder à travers le 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 bouclé 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 y regardant de plus près, j'ai découvert que la cause de mon problème était la répétition de la ligne suivante:
dans mon fichier fusionné. Cela a conduit à une parenthèse non fermée et à une syntaxe pbxproj invalide par conséquent. La suppression de la ligne ci-dessus a résolu mon problème.
la source
Je viens de rencontrer le même problème. J'ai supprimé les chaînes générées par git comme toujours mais Xcode a toujours refusé 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é .. puis cela a fonctionné. J'espère que ça aidera quelqu'un.
ÉDITER:
pour résoudre les conflits dans votre fichier .xcodeproj, vous pouvez utiliser ce script pratique:
Voici le script:
projectfile =
find -d . -name 'project.pbxproj'
projectdir =echo *.xcodeproj
projectfile = "$ {projectdir} /project.pbxproj" tempfile = "$ {projectdir} /project.pbxproj.out" savefile = "$ {projectdir} /project.pbxproj.mergesave"cat $ projectfile | grep -v "<<<<<<< HEAD" | grep -v "=======" | grep -v "^ >>>>>>>"> $ tempfile mv $ tempfile $ projectfile
Exécutez-le à partir du terminal à l'aide de la commande sh: sh resolution_conflicts.sh
la source
resolve_conflicts.sh: line 1: -d: command not found resolve_conflicts.sh: line 3: $tempfile: ambiguous redirect
Rétablissez le project.pbxproj
svn revert --filename--
la source
Étapes à suivre: - 1.Accédez au dossier où se trouve votre projectName.xcodeproj 2.Cliquez droit et sélectionnez «Afficher le contenu du paquet». Vous pourrez voir la liste des fichiers avec l'extension .pbxproj. 3.Sélectionnez project.pbxproj. Cliquez avec le bouton droit de la souris et ouvrez ce fichier en utilisant 'Text Edit'. 4.Vous pourrez voir <<<<<<, ============ et >>>>>>>>>>. Ce sont généralement des conflits qui surviennent lorsque vous effectuez une mise à jour depuis Sourcetree / SVN / GITLAB. Supprimez-les et enregistrez le fichier. 5.Maintenant, vous pourrez ouvrir le projet sans aucun message d'erreur.
la source
On dirait que vous allez devoir créer un nouveau projet dans Xcode, aller dans l'ancien répertoire et faire glisser tous vos fichiers source, nibs et ressources dans la barre latérale des fichiers Xcode du nouveau projet. Cela ne devrait pas prendre plus de quelques minutes, à moins que vous n'ayez vraiment travaillé avec des paramètres ou des cibles de build personnalisés. Soit cela, soit revenez au dernier archivage dans votre contrôle de code source et ajoutez manuellement tous les fichiers de code qui ont changé entre maintenant.
la source
Et une fois que les choses fonctionnent à nouveau, vous devriez envisager d'utiliser quelque chose comme subversion ou mercurial pour le contrôle de la sauvegarde et des révisions. Rappelez-vous que les électrons ne vont pas toujours là où ils sont censés aller, sauvegardez tôt et souvent!
la source
modifiez le nom de votre dossier de projet actuel et le module d'extraction du même projet, puis ajoutez les modifications de fichier en cours.
la source
Vérifiez simplement le fichier project.pbproject et effectuez une comparaison avec une version fonctionnelle du fichier projet.
Cela se produit souvent lorsque vous avez des conflits à partir d'un système de contrôle de version comme publié ici: Le fichier utilisateur ne peut pas être analysé en subversion dans le SDK MAC iphone
la source
Essayez de trouver HEAD et _HEAD entre les lignes et supprimez ces mots dans project.pbxproj. Sauvegardez ce fichier avant de faire cela.
la source
Goto PhoneGapTest >> platform Ensuite, supprimez le dossier ios après cela, allez dans le terminal puis tapez: sudo phonegap build ios après cela, vous pouvez exécuter le projet
la source
En rétablissant, vous pouvez annuler le code extrait.
Si vous souhaitez annuler cette demande d'extraction, placez simplement cette commande sur le chemin du projet
->
git merge --abort
la source
Au cas où si vous ne trouviez pas dans Text === ou <<< ou >>>> comme c'était pour moi le problème était vraiment simple et amusant ... Je change le nom de l'application dans Xcode, mais je ne le change pas dans UnityProjectSettings avant la construction - c'était le problème ...
la source
subversion corrompra mon fichier de projet après un svn up presque chaque semaine. J'essaie de comprendre pourquoi il fait cela en ce moment et j'ai rencontré ce problème.
la source
C'est parce que les noms de projet ne sont pas supposés avoir des espaces vides entre eux
la source