it-swarm.com.de

Projekt kann nicht geöffnet werden ... kann nicht geöffnet werden, da die Projektdatei nicht analysiert werden kann

Ich habe eine Weile gearbeitet, um eine iPhone-App zu erstellen. Heute, als meine Batterie schwach war, arbeitete ich und speicherte ständig meine Quelldateien, dann ging der Strom aus ...

Wenn ich jetzt meinen Computer wieder an das Stromnetz anschliesse und die Stromversorgung hoch ist, versuche ich, meine Projektdatei zu öffnen, und es wird eine Fehlermeldung angezeigt:

Projekt kann nicht geöffnet werden

Projekt ... kann nicht geöffnet werden, da die Projektdatei nicht analysiert werden kann.

Gibt es eine Möglichkeit, wie die Leute wissen, dass ich mich davon erholen kann? Ich habe versucht, eine ältere Projektdatei zu verwenden, sie erneut einzufügen und dann zu kompilieren. Es gibt mir einen irren Fehler, der wahrscheinlich darauf zurückzuführen ist, dass nicht alle gewünschten Dateien gefunden wurden ...

Ich möchte mein Projekt wirklich nicht von Grund auf neu erstellen, wenn dies möglich ist.


BEARBEITEN

Ok, ich habe einen Unterschied zwischen dieser und einer etwas älteren Projektdatei gemacht, die funktioniert hat, und festgestellt, dass die Datei beschädigt ist. Nach dem Zusammenführen (der guten und der neuesten Teile) funktioniert es jetzt.

Tolle Punkte zum SVN. Ich habe eine, aber es hat ein bisschen komisch versucht, XCode damit zu synchronisieren. Ich werde jetzt definitiv mehr Zeit damit verbringen ... ;-)

enter image description here

91
Chris Butler

Ich stieß auf dieses Problem und mein Vorgesetzter erzählte mir von einer Lösung, d. H .:

Klicken Sie mit der rechten Maustaste auf Ihr projectname.xcodeproj file here projectname ist der Name Ihres Projekts. Nachdem Sie mit der rechten Maustaste geklickt haben, wählen Sie Show Packages Contents. Danach öffne dein projectname.pbxproj Datei in einem Texteditor. Suchen Sie nun nach der Zeile mit <<<<<<< .mine, ======= und >>>>>>> .r. Zum Beispiel sah es in meinem Fall so aus

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

Nun entferne diese <<<<<<< .mine, ======= und >>>>>>> .r Zeilen so würde es so aussehen

    9ADAAC6A15DCEF6A0019ACA8 /* BuyPriceBtn.png in Resources */,

    52FD7F3D15DCEAEF009E9322 /* discussionForm.Zip in Resources */,

Speichern und öffnen Sie nun Ihr Xcode-Projekt und erstellen Sie es. Alles wird gut.

222
Usuf

Mohammeds Antwort war sehr hilfreich (und hat zu meiner Lösung geführt). Das einfache Entfernen von >>>>>>> ======= <<<<<<< genügte jedoch nicht, um das Analyseproblem in der Datei project.pbxproj (für mich) zu beheben, wenn Änderungen aus beiden Zweigen übernommen wurden nach einer Fusion.

Ich hatte einen Zusammenführungskonflikt im Abschnitt PBXGroup (dessen Beginn durch einen Blockkommentar wie diesen angezeigt wird:/* PBXGroup-Abschnitt beginnen * /) der Datei project.pbxproj. Das aufgetretene Problem kann jedoch auch an anderen Stellen in der Datei project.pbxproj auftreten.

Nachfolgend finden Sie eine Vereinfachung des Zusammenführungskonflikts:

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

Als ich die Markierungen für Zusammenführungskonflikte entfernt habe, blieb mir Folgendes übrig:

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

Normalerweise würde das Entfernen der Markierungen für Zusammenführungskonflikte das Analyseproblem in der Datei project.pbxproj beheben und die Integrität des Arbeitsbereichs wiederherstellen. Diesmal war es nicht so.

Nachstehend habe ich das Problem behoben:

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

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

Ich musste eigentlich 2 Zeilen am Ende der ersten PBXGroup hinzufügen.

Sie können sehen, dass es kein Analyseproblem gegeben hätte, wenn ich mich dafür entschieden hätte, die Änderungen von Head oder dem zusammengeführten Zweig zu verwerfen! In meinem Fall wollte ich jedoch beide von mir hinzugefügten Gruppen aus jedem Zweig behalten, und das einfache Entfernen der Zusammenführungsmarkierungen war nicht genug. Ich musste der Datei project.pbxproj zusätzliche Zeilen hinzufügen, um die korrekte Formatierung beizubehalten.

Wenn Sie also auf Analyseprobleme stoßen, nachdem Sie dachten, Sie hätten alle Zusammenführungskonflikte gelöst, sollten Sie sich die .pbxproj-Datei genauer ansehen und sicherstellen, dass keine Formatierungsprobleme auftreten!

42
SnoopyProtocol

Ich habe genau den gleichen Fehler erhalten, weil Sie mit Cordova ein Projekt mit Leerzeichen erstellen können und Xcode nicht weiß, wie man damit umgeht.

28
bwags

Die visuelle Analyse der Xcode-Projektdatei hat mir nicht geholfen, den Fehler nach dem Zusammenführen zu lokalisieren. Nach der Suche nach Syslog gefunden solche Zeile, wenn Xcode versucht, die Datei zu analysieren:

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.

Nach dem Reparieren kann das Projekt in Ordnung geöffnet werden.

23
Oleksiy Ivanov

Ich hatte ein ähnliches Problem.

Screenshot 1

Im Folgenden finden Sie Schritte, um das Problem zu beheben:

  1. Navigieren Sie zu dem Ordner, in dem Ihr projectName.xcodeproj.

    Screenshot 2

  2. Rechtsklicke und wähle 'Show Package Contents '. Sie können die Liste der Dateien mit .pbxproj Erweiterung.

    Screenshot 3

  3. Wählen project.pbxproj. Rechtsklicke und öffne diese Datei mit 'Text Edit '.

    Screenshot 4

  4. Sie können <<<<<< .mine, ============ und >>>>>>>>>> .r123. Dies sind im Allgemeinen Konflikte, die auftreten, wenn Sie ein Update von SVN beziehen. Löschen Sie diese und speichern Sie die Datei.

    Screenshot 5

    Screenshot 6

  5. Jetzt können Sie Projekt ohne Fehlermeldung öffnen.

22

Analysieren Sie die Syntax Ihrer Projektdatei. Überprüfen Sie es in Ihrem Projekt im Terminal:

plutil -lint project.pbxproj

Dies zeigt Ihnen die Fehler aus dem Parser.

Mögliches Problem: Einige Projekte setzen die Git-Merge-Strategie union für Projektdateien. Dies funktioniert in den meisten Fällen, führt jedoch dazu, dass Ihre Projektdatei stillschweigend beendet wird, wenn sie fehlschlägt. Diese Strategie ist in der .gitattributes Datei in Ihrem Repository.

4
beseder

Ich hatte kürzlich das gleiche Problem, als ich versuchte, meinen Zweig mit einem entfernten Zweig zusammenzuführen. Keine der oben genannten Lösungen schien jedoch für mein Problem geeignet zu sein.

Es gab keine Zusammenführungskonflikte zwischen der Datei project.pbxproj in meinem Zweig oder dem Remote-Zweig. Meine Datei projectName.xcodeproj wird jedoch aus demselben Grund nicht geöffnet, wie in der gestellten Frage angegeben.

Meine Lösung bestand darin, in der Datei project.pbxproj mit einem Texteditor nach Unregelmäßigkeiten in der Dateisyntax zu suchen (z. B. nach einer zusätzlichen geschweiften Klammer). Ich habe diesen Prozess beschleunigt, indem ich mich auf die Zeilen konzentriert habe, die in der alten Datei im Vergleich zur zusammengeführten Datei eingefügt oder gelöscht wurden. Bei näherer Betrachtung stellte ich fest, dass die Ursache meines Problems die Wiederholung der folgenden Zeile war:

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

in meiner zusammengeführten Datei. Dies führte zu einer nicht geschlossenen geschweiften Klammer und der daraus resultierenden ungültigen pbxproj-Syntax. Das Löschen der obigen Zeile hat mein Problem behoben.

3
Abhi

Ich bin gerade auf das gleiche Problem gestoßen. Ich habe generierte Strings von Git wie immer entfernt, aber Xcode hat sich immer noch geweigert, die .xcodeproj-Datei zu öffnen. Aber alles war korrekt, keine fehlenden Klammern etc. Endlich habe ich es versucht beenden Sie Xcode und Projekt öffnen, wenn Xcode wurde geschlossen.. dann hat es geklappt. Ich hoffe das hilft jemandem.

BEARBEITEN:

zum Beheben von Konflikten in Ihrer .xcodeproj-Datei können Sie das folgende praktische Skript verwenden:

  1. Erstellen Sie eine leere SH-Datei in Ihrem Projektverzeichnis (z. B. resolve_conflicts.sh).
  2. Hier ist das Skript:

    projektdatei = 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

  3. Führen Sie es mit dem Befehl sh vom Terminal aus: sh resolve_conflicts.sh

2
Vojta

Setzen Sie die Datei project.pbxproj zurück

svn revert --filename--

1
mondousage

ändern Sie den Namen Ihres aktuellen Projektordners und das Checkout-Modul im selben Projekt. Fügen Sie dann die aktuellen Dateiänderungen hinzu.

0
suresh

Versuchen Sie, HEAD und _HEAD zwischen den Zeilen zu finden und löschen Sie diese Wörter in project.pbxproj. Sichern Sie diese Datei, bevor Sie dies tun.

0
Avi Shim.

Es hört sich so an, als müssten Sie ein neues Projekt in Xcode erstellen, in das alte Verzeichnis wechseln und all Ihre Quelldateien, Schreibfedern und Ressourcen in die Seitenleiste der Xcode-Dateien im neuen Projekt ziehen. Es sollte nicht länger als ein paar Minuten dauern, es sei denn, Sie haben wirklich viel mit benutzerdefinierten Build-Einstellungen oder Zielen gearbeitet. Entweder das, oder kehren Sie zum letzten Einchecken in Ihrer Quellcodeverwaltung zurück und fügen Sie alle zwischenzeitlich geänderten Codedateien manuell hinzu.

0

Durch Zurücksetzen können Sie den abgerufenen Code rückgängig machen.

Wenn Sie diese Pull-Anforderung rückgängig machen möchten, geben Sie diesen Befehl in den Projektpfad ein

-> git merge --abort

0
Subramani

Und wenn Sie die Arbeit wieder aufnehmen, sollten Sie sich mit Subversion oder Mercurial als Backup- und Revisionskontrolle befassen. Denken Sie daran, dass die Elektronen nicht immer dorthin wandern, wo sie sollen. Sichern Sie sie früh und oft!

0
Brian C. Lane

Überprüfen Sie einfach die Datei project.pbproject und vergleichen Sie eine funktionierende Version der Projektdatei.

Dies ist häufig der Fall, wenn Sie Konflikte mit einem Versionskontrollsystem wie dem hier angegebenen haben: Benutzerdatei kann in Subversion im MAC iphone SDK nicht analysiert werden

0
Atma

Gehe zu PhoneGapTest >> Plattform Dann lösche den Ordner ios, gehe zum Terminal und tippe: Sudo phonegap build ios, danach kannst du das Projekt ausführen

0
Ranch