2010-06-11 1 views
12

Ich versuche nur ein einfaches Update (was ich schon getan habe) für eine iPhone-App zu bauen, aber jetzt aus irgendeinem Grund bekomme ich diesen Fehler. Kann mir jemand sagen, was es bedeutet?iphone build error das macht mich wollen eine Nagelpistole kaufen

Command/Developer/Library/Xcode/Plug-ins/CoreBuildTasks.xcplugin/Contents/Resources/copyplist failed with exit code 127 
sh: plutil: command not found 

Hier sind die Build-Ergebnisse:

CopyPNGFile /Users/me/path/build/Dist-iphoneos/MyApp.app/img_000.png images/img_000.png 
    cd /Users/me/ 
    setenv COPY_COMMAND /Developer/Library/PrivateFrameworks/DevToolsCore.framework/Resources/pbxcp 
    setenv PATH "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Developer/usr/bin:/System/Library/Frameworks/JavaVM.frameworK/Versions/1.6/Home/" 
    "/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Plug-ins/iPhoneOS Build System Support.xcplugin/Contents/Resources/copypng" -compress "" /Users/path/images/img_000.png /Users/me/path/build/Dist-iphoneos/MyApp.app/img_000.png 
sh: dirname: command not found 

CopyPlistFile /Users/me/path/build/Dist-iphoneos/MyApp.app/Entitlements.plist Entitlements.plist 
    cd /Users/me/ 
    setenv PATH "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Developer/usr/bin:/System/Library/Frameworks/JavaVM.frameworK/Versions/1.6/Home/" 
    /Developer/Library/Xcode/Plug-ins/CoreBuildTasks.xcplugin/Contents/Resources/copyplist --convert binary1 Entitlements.plist --outdir /Users/me/path/build/Dist-iphoneos/MyApp.app 
sh: plutil: command not found 
+4

+1 für Nagelpistole Bilder ... Haben Sie alle Ihre Ziel, Build-Einstellungen überprüft? Das letzte Mal, als ich ein ähnliches Problem hatte, wurde es durch Leerzeichen am Anfang eines der Einstellungsfelder verursacht. –

+0

Ja, ich habe die schon mehrmals angeschaut. Interessant, dass es für den Exit-Code 127 kein einziges Google-Suchergebnis gibt. – sol

+0

habe versucht, diese Befehle in das Terminal zu kopieren/einzufügen? Könnte auch einfach etwas borked sein und braucht einen Neustart. –

Antwort

0

plutil befindet sich in der Regel in /usr/bin. Stellen Sie sicher, dass es da ist. Wenn dies nicht der Fall ist, haben Sie möglicherweise Ihre Developer Tools installiert, ohne das Kontrollkästchen System Tools zu deaktivieren (oder das Häkchen zu entfernen), mit dem die grundlegenden Mac OS X-Programmierwerkzeuge in/usr abgelegt werden.

+0

/usr/bin relativ zu welchem ​​Verzeichnis? Bei der Suche nach Ordnern mit dem Namen "usr" werden ungefähr 30 Ordner angezeigt. Wenn dies das Problem ist, wie kann ich es beheben? – sol

+0

Wenn es mit einem Schrägstrich beginnt, ist es ein absoluter Pfad, nicht relativ. Es gibt ein Verzeichnis/usr/bin auf Ihrem Betriebssystem Boot-Laufwerk, und das ist, wo Werkzeuge wie Plutil sind. (Es wird nicht im Finder angezeigt. Sie müssen den Befehl Gehe zu Ordner verwenden, um dorthin zu gelangen, oder die Terminal-Befehlszeile verwenden.) Wenn sie nicht vorhanden sind, installieren Sie die Xcode-Tools neu und überprüfen Sie die Systemprogramme Kontrollkästchen. – cdespinosa

+0

ok, ich habe verifiziert, dass plutil existiert. Ich habe auch das ganze Xcode/iphone-Paket neu installiert, mit System-Tools überprüft. Jetzt bekomme ich den gleichen Fehler, auch wenn ich nur versuche, mit Simulator/Debug zu bauen. Genial. – sol

0

Versucht, das SDK neu zu installieren?

+0

Ich wollte das versuchen, aber als ich das SDK heruntergeladen habe, habe ich festgestellt, dass Snow Leopard jetzt erforderlich ist. Wir haben Snow Leopard heruntergeladen und festgestellt, dass es sich um einen "Nur-Box" -Kauf handelt. Jedes Mal, wenn ich denke, dass ich Apple nicht mehr abschrecken kann, finden sie einen anderen Weg ... Warum können sie keine Downloads früherer Versionen anbieten? – sol

+1

Vielleicht, weil Snow Leopard * nicht * eine vorherige Version ist, sondern tatsächlich die * aktuelle * Version zum jetzigen Zeitpunkt. Auf der anderen Seite stimme ich zu, dass alle ihre Betriebssysteme als (kostenpflichtiger) Download zur Verfügung stehen sollten. –

+0

Ich denke, Sol sucht nach älteren Versionen des SDK. Klicke auf "Mac Dev Center", "Entwickler-Downloads", "Entwickler-Tools" und lade Xcode 3.1.4 herunter. Es hat nicht das iPhone SDK, aber es sollte es auch nicht überschreiben (halten Sie eine Sicherungskopie von/Entwickler/Plattformen, nur für den Fall). Ich lade alles sofort herunter und archiviere es für Momente wie diese. –

1

Ist es möglich, dass Ihre Pfadumgebungsvariable nicht irgendwie festgelegt ist?

Sie haben:

setenv PATH „/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Developer/usr/bin:/System/Library/Frameworks/JavaVM.frameworK/Versions /1.6/Home/ " /Developer/Library/Xcode/Plug-ins/CoreBuildTasks.xcplugin/Contents/Resources/copplist --convert binary1 Berechtigungen.plist --outdir/Users/me/pfad/build/Dist-iphoneos/MyApp.app

Während ich zeigen:

setenv PFAD "/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Developer/usr/bin:/opt/local/bin:/usr/local/bin:/bin:/sbin:/usr/ bin:/usr/sbin " eingebaute-infoPlatteUtility test34-Info.plist -genpkginfo /Users/gnd/Desktop/test34/build/Debug-iphonsimulator/test34.app/PkgInfo -expandbuildsettings -format binär -platform iphonesimulator -o/Benutzer /gnd/Desktop/test34/build/Debug-iphonesimulator/test34.app/Info.plist

ich sehe nicht,/usr/bin in Ihrem Pfad.

(in Terminal:
echo $ {PATH}

obwohl die meisten OS X GUI-Anwendungen ihren Weg erhalten aus ~/.MacOSX/environment.plist nicht zu 100% sicher Xcode obwohl


. Zusätzliche Information:

von der 'man bash' Seite:

Wenn bash als ein aufgerufen Interaktive Login-Shell oder als nicht-interaktive Shell mit der Option --login, liest und führt sie zuerst Befehle aus der Datei/etc/profile aus, falls diese Datei existiert. Nach dem Lesen dieser Datei sucht sie nach ~/.bash_profile, ~/.bash_login und ~/.profile in dieser Reihenfolge und liest und führt Befehle aus der ersten aus, die existiert und lesbar ist.

Wenn Sie es in .bash_login haben, aber .bash_profile existiert, wird Ihre Änderung nicht angezeigt.

Beachten Sie auch den Kommentar über die alternative PATH-Definition der GUI-Apps-Datei oben.

Möglicherweise müssen Sie sich abmelden und „nehmen“, um die Änderung zu bekommen dann zurück.

+0

Wie füge ich/usr/bin zum Pfad hinzu? – sol

2

Ihre PATH-Variable wird aus irgendeinem Grund vermasselt. Sie wollen herausfinden, wie genau das passiert ist. Dies ist dein (Doppelpunkt getrennte zur Betonung):

setenv PATH "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin 
    :/Developer/usr/bin 
    :/System/Library/Frameworks/JavaVM.frameworK/Versions/1.6/Home/" 

Dies ist, was eine Arbeits PATH wie folgt aussieht:

setenv PATH "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin 
    :/Developer/usr/bin 
    :/usr/bin 
    :/bin 
    :/usr/sbin 
    :/sbin" 

(Linientrennung zu klären ist, wie PATH-Variablen Pfade zu trennen)

Beachten Sie, dass meins/usr/bin:/bin:/usr/sbin:/sbin und deins nicht enthält? Das ist das Problem genau dort. Das Shell-Skript findet nur ausführbare Dateien in seinem Pfad, und während sich die Dateien in/usr/bin/befinden, findet es sie nicht.

Für eine SO Diskussion über Xcode PATH's, siehe z.B. where is $PATH set in xcode?

+0

Danke für die Info. Ich hoffe das funktioniert. Kannst du mir sagen, wie ich diese Gegenstände zum PATH hinzufügen kann? – sol

+0

Ich konnte den Pfad ändern, aber es funktioniert immer noch nicht. Bitte sehen Sie meine "Antwort" unten - würde nicht in das Kommentarfeld passen – sol

+0

Ah-hum, komisch. Es scheint, dass Xcode den PATH, den Sie festgelegt haben, immer noch nicht verwendet. Wenn du deine Zeile anschaust, geht es setenv PATH "/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Developer/usr/bin:/System/Library/Frameworks/JavaVM.frameworK/Versions/1.6/Home/"immer noch (aus Ihrer Antwort unten). – Kalle

1

ich gleiches Problem hatte .... das Problem ist, dass plutil nicht in eines der Verzeichnisse in PATH ist.

Meine Lösung war eine Kopie von/usr/bin/user/local/bin zu machen, die in der PATH ist.

Keine Ahnung, ob das Problem Xcode, OS X oder Apple ist.

0

Ich bin über die Antworten gegangen und keiner von ihnen arbeitete für mich. Das Problem blieb bestehen.

Ich schaute genau auf dem Fehler in Xcode und feststellen, dass es an der falschen Stelle für das Bild war auf der Suche. In meinem Fall hatte ich das Verzeichnis mit meinem Projekt kopiert und umbenannt. Keiner der Verweise auf meine Bilder wurde aktualisiert.

Ich reparierte mein Problem mit dem rechten der Projektdatei in Finder klicken und Paketinhalt zeigen klicken. Ich habe dann die * .pbxproj in xcode geöffnet. Ich habe eine Suche durchgeführt und die Datei ersetzt, um den Namen des alten Ordners durch den neuen zu ersetzen.

Nach dem Schließen und Öffnen von xcode löste das mein Problem.

Ich hoffe, das anderen hilft ...

0

dieser Fehler wird auch zeigen, wenn Sie eine Datei über Finder gelöscht (nicht in Xcode) dann zum Archiv versuchen. Stellen Sie also sicher, dass keine Ihrer Dateien rot markiert ist und entfernen Sie sie aus Ihrem Projekt.

0

Ich habe diesen Fehler schon einmal gesehen. Das Problem liegt in einer beschädigten .png-Datei. Der Fehler ist ziemlich trügerisch. Löschen Sie die betroffene PNG-Datei und ersetzen Sie sie in Ihrem Projekt durch eine Sicherungs- oder Bereinigungsversion dieser Datei. Das sollte die Build-Fehler beheben.