Die App funktioniert gut im Simulator, erstellt und läuft.
Wenn ich mein Gerät anschließe (iPhone 3GS mit iOS 4.3) und auf das iPhone ziele, lautet das Ergebnis "Build fehlgeschlagen" mit "Keine Probleme".
Wenn Sie das Fenster mit den Build-Ergebnissen betrachten, ist alles grün und mit einem Häkchen versehen, einschließlich der Meldung "Build fehlgeschlagen" .
Das Erweitern der Transkripte zeigt keine Fehler.
Ich kann die Möglichkeit eines Signatur- oder Bereitstellungsfehlers nicht ausschließen, aber es hat mir diese Fehler gegeben, ich habe sie ausgebügelt, und jetzt gibt es mir keine Fehler oder Probleme, nur "Build fehlgeschlagen; keine Probleme".
- Auf welche Weise kann der Build ohne Probleme fehlschlagen?
- Gibt es eine Möglichkeit, die Build-Ausgabe zu überwachen, um festzustellen, ob der Grund für einen Fehler ohne Probleme gefunden wurde?
- Wird eine Build-Ausgabe erstellt, die über die Problemliste hinausgeht?
- Ich sehe im Build-Fenster nicht, wo versucht wird, die App auf mein Gerät zu laden - ist diese Ausgabe woanders?
Antworten:
Ich habe "Build Failed" ohne Fehler im Issue-Navigator erhalten (nur Warnungen). Der Berichtsnavigator zeigte Fehler jedoch korrekt an.
quelle
Verwenden Sie "Unterstrich" und "Leerzeichen" usw. für die Bundle-ID?
Verwenden Sie bei einem Ihrer Importe .m anstelle von .h? #import "Photo.h"
quelle
Das erste, was ich versuchen würde, ist, alles zu reinigen (Menü Produkt / Reinigen) und es erneut zu erstellen. Sie haben es vielleicht schon versucht.
Sie finden die vollständige Build-Ausgabe im Log Navigator (und können sie während des Builds beobachten). Dies ist das Symbol ganz rechts unter den kleinen Symbolen direkt unter den Schaltflächen Ausführen und Erstellen.
Die Build- (und Debug-) Protokolldateien befinden sich im Verzeichnis / Users / you / Library / Developer / XCode / DerviedData / YourProject-abcdefg / Logs / Build (bzw. ../Debug).
Ich glaube nicht, dass es eine Ausgabe für die Installation Ihrer App auf dem Gerät gibt.
quelle
Gibt es ein Leerzeichen im Produktnamen Ihres Ziels?
Ich weiß, dass dies in früheren Versionen von Xcode kein Problem war, aber es scheint, dass sie etwas in Xcode 4 kaputt gemacht haben, sodass es nicht mehr funktioniert (ich vermute, es hat etwas mit dem DerivedData-Pfad-Unsinn zu tun). Sie können dem Namen Ihrer App ein Leerzeichen hinzufügen, wie es auf dem Launchpad Ihres iDevice angezeigt wird, indem Sie den
CFBundleDisplayName
Schlüssel inInfo.plist
auf etwas anderes als setzen${PRODUCT_NAME}
.quelle
Auf einer der lokalen Cocoa Heads-Mailinglisten wurde ich aufgefordert, ein kleines Standard-Beispielprojekt zu versuchen - etwas, das ich am Anfang hätte tun sollen, um sicherzustellen, dass meine Bereitstellung und Signierung funktionierten. Es wurde ohne Probleme auf meinem Gerät erstellt und ausgeführt, sodass alle Anzeichen auf ein Problem mit meinem Code oder dem Projekt hinweisen.
Ich werde Dinge aus dem vorhandenen Projekt in das neue Beispielprojekt werfen, und wenn es auf ähnliche Weise fehlschlägt, sollte ich in der Lage sein, das Problem auf einen kleineren interessierenden Bereich einzugrenzen.
Ich habe die Hauptfunktionalität der App in ein neues Projekt aufgenommen und sie läuft einwandfrei. Das einzige, was ich diesmal anders gemacht habe, war, dass ich keine universelle Binärdatei eingerichtet habe (iPhone derzeit nur) und alle außer der Hochformatausrichtung deaktiviert habe. Soweit ich das beurteilen kann, ist alles andere gleich. Wenn ich mich jedoch dazu entscheide, es später weiter zu untersuchen, werde ich die Projektdateien unterscheiden und sehen, was sonst noch anders sein könnte.
Die Lösung für mich bestand also darin, ein neues Projekt zu starten und alle Funktionen des alten Projekts in das neue Projekt zu portieren.
Es könnte sein, dass das Neuerstellen des Ziels, wie Paul in einer anderen Antwort vorschlägt, es ebenfalls beheben würde, aber mit einem so einfachen Projekt war es für mich einfach, von Grund auf neu zu starten.
quelle
Ich hatte das gleiche Problem und wie jemand anderes vorschlug, hatte es mit der Bundle-ID zu tun. Ich hatte es kürzlich als Test geändert und ein Sternchen eingefügt. Ich habe das behoben und musste das Ziel reinigen, und dann hat es funktioniert.
quelle
Dies geschah mir nach dem Löschen eines nicht verwendeten Ziels. Es scheint, dass Xcode ein Leerzeichen in den CFBundleIdentifier meines verbleibenden Ziels (com.company.etc) eingefügt hat. Ich musste Info.plist mit einem externen Texteditor bearbeiten, um es zu entfernen, und dann funktionierte es einwandfrei.
quelle
Ich habe nur mit dem Hinzufügen mehrerer Projekte in einem Arbeitsbereich gespielt und dieses Problem festgestellt. Ich habe eine einfache Bibliothek in einem der Projekte und ich habe ein iOS-Fenster-basiertes Ziel hinzugefügt, um es zu testen. Ich habe das erste Ziel gelöscht, das ich dafür gemacht habe, um es umzubenennen. Nachdem ich dies gelesen hatte, habe ich versucht , xcuserdata aus dem .xcodeproj-Paket zu entfernen, und das hat mein Problem behoben. Ich hoffe das hilft jemand anderem. Ausführen von Xcode 4.1 unter OS X 10.7.1.
quelle
Nachdem ich all diese Antworten durchgesehen hatte, hatte ich genau das gleiche Problem, aber etwas anderes löste es für mich.
Das Problem:
Die Erstellung ist nach dem Refactoring ohne Probleme fehlgeschlagen. (Eine Klasse wurde mit Bearbeiten -> Refactor -> Umbenennen umbenannt.)
Die dümmste Lösung aller Zeiten:
Gehen Sie zu Refactor (benennen Sie um) etwas anderes (-_- "). Danach war der Fehler, dass Xcode nicht alle entsprechenden Dateien umbenennen konnte und keine Fehler zeigte. Nach einem anderen Refactor wurden die Fehler des vorherigen Refactors angezeigt .
quelle
Ich hatte das gleiche Problem. Ich habe versucht, das Problem zu beheben. Ein xcode ist abgestürzt. Ich habe es wieder geöffnet und es hat gut funktioniert. Vielleicht hatte ich Glück oder so? Wie auch immer, es ist mir egal, was daran falsch war, solange es jetzt funktioniert
quelle
Wenn Sie die Bundle-ID geändert und das Projekt bereinigt haben, es aber auch nicht funktioniert hat, versuchen Sie, das Verzeichnis / Users / YOUR_USERNAME / Library / Developer / Xcode / DerivedData zu leeren.
Für mich geht das.
quelle
Für mich ist der Build fehlgeschlagen, ohne dass Fehler im Issue Navigator angezeigt wurden. Im Protokollnavigator konnte ich in dieser Erstellungssitzung jedoch den Fehler sehen. In meinem Fall war der Fehler eine nicht deklarierte Konstante. Ich habe die erforderliche Header-Datei importiert und das Problem wurde behoben. Ich bin nicht sicher, warum dieser Fehler nicht im Issue Navigator angezeigt wurde.
Ich habe versucht, dieses Verhalten zu reproduzieren, indem ich den Namen einer anderen Variablen absichtlich geändert habe. Dieses Mal wurde der Fehler im Issue Navigator angezeigt. Daher bin ich mir immer noch nicht sicher, warum der frühere Fehler nicht im Issue Navigator angezeigt wird.
Hoffe das hilft.
quelle
Die oben genannten Lösungen funktionieren bei mir nicht.
Meine Lösung besteht darin, das Projekt in einen anderen Ordner zu verschieben.
Die Erstellungsfehler werden dann wie gewohnt angezeigt.
quelle
Haben Sie Ihren Build-Ordner bereinigt? Gehen Sie zum Menü Produkt, halten Sie die Wahltaste gedrückt und wählen Sie "Build-Ordner bereinigen ...".
quelle
Ich weiß, was das Problem ist: In Info.plist -> Bundle Identifier: Sie können '_' nicht verwenden. Beispielsweise ist com.mycompany.My_app nicht gültig, com.mycompany.My-app jedoch OK.
quelle
Ich hatte genau das gleiche Problem beim Versuch, ein vorhandenes Projekt in xcode 4 zu kompilieren, und hatte fast die Mühe, das Projekt neu zu erstellen.
Bei einem letzten Versuch habe ich jedoch die Datei info.plist durch eine neu erstellte Datei ersetzt, die die zusätzlichen Tags für "Dokumenttypen", "URL-Typen", "Exportierte Typ-UTIs" und "Importierte Typ-UTIs" enthielt.
Dies schien zu funktionieren und war eine überraschend einfache Lösung für mein Projekt.
quelle
Dies ist mir mit meinem UnitTest-Ziel passiert. Arbeitete und hörte dann auf. Ich hatte vergessen, dass ich gerade eine .h / .m im Dateisystem gelöscht und nicht aus der Projektdatei entfernt hatte, aber XCode hat sie nicht gemeldet.
Ich habe es herausgefunden, indem ich das Projekt in der Befehlszeile ausgeführt habe, was mir den Fehler gemeldet hat:
Führen Sie dies in dem Ordner aus, in dem Sie Ihre Projektdatei haben, und ersetzen Sie UnitTest durch Ihr Ziel - oder übergeben Sie einfach kein Ziel, um das Standardziel zu erstellen.
quelle
Ich hatte auch dieses Problem, aber die Ursache war eine andere:
Ich habe einen Arbeitsbereich mit einem Projekt. In diesem Projekt verwende ich ein Framework, das durch Hinzufügen des Xcode-Projekts zu meinem Projekt enthalten ist. Ich habe die Header-Datei des Frameworks in meinen Präfix-Header (.pch) importiert. Das war dumm.
Die Lösung bestand darin, den #import der Framework-Header-Datei aus meiner Präfix-Header-Datei zu entfernen und nur bei Bedarf hinzuzufügen.
quelle
Gleiches Problem hier beim Bauen für Gerät. Build fehlgeschlagen, aber mein Protokoll enthält nur grüne Häkchen. Das Bereinigen / Löschen des Build-Ordners behebt das Problem nicht. Ich habe an anderer Stelle gelesen, dass jemand dieses Problem durch Löschen und Neuerstellen des Ziels gelöst hat, aber ich habe in XCode 4 noch nicht vollständig herausgefunden, wie das geht.
Meine vorübergehende Lösung bestand darin, XCode 3.2.6 mit iOS 4.3 herunterzuladen und zu installieren. Ich habe nicht bemerkt, dass Apple auch eine Version von XCode 3 veröffentlicht hat, die iOS 4.3 enthält, sodass Sie das Upgrade auf XCode 4 verschieben können. Ich habe bei Apple einen Fehlerbericht über das Problem "Build Failed" eingereicht.
udpate von Apple:
Ich habe von einem Unterstrich zu einem Bindestrich gewechselt und das Problem wurde behoben.
quelle
Das Gleiche ist mir gerade mit einer anderen Ursache passiert.
Ich habe get-task-allow aus meiner Datei Entitlements.plist entfernt und eine leere Liste hinterlassen. In den Build-Einstellungen wurde weiterhin die Datei Entitlements.plist als meine Entitlements-Datei angegeben. Ich habe mich für die Ausführung mit meinen Ad-Hoc-Build-Einstellungen auf einem iOS-Gerät mit angeschlossenem iPhone entschieden und das in diesem Fehler beschriebene Verhalten festgestellt. Das Hinzufügen von get-task-allow back hat das Problem behoben.
quelle
Es scheint, dass es viele mögliche Ursachen für dieses Problem gibt. Meins stellte sich als das heraus
Mein Ziel war es, ein nicht vorhandenes Bereitstellungsprofil zu verwenden.
Ich habe mein Projekt so eingestellt, dass es ein neues Profil verwendet, und das alte gelöscht. Es wurde nicht erkannt, dass das Ziel über eine eigene Einstellung für das Bereitstellungsprofil verfügt, die immer noch auf das alte (jetzt gelöschte) Profil festgelegt ist.
quelle
Nur um eine weitere Antwort hinzuzufügen, nachdem ich ALLE oben genannten erfolglos ausprobiert hatte: Ich musste das MacBook neu starten, nicht nur XCode schließen, und das funktionierte für mich. Am Ende zeigte XCode einige Fehler in den Localizable.strings an, die zuvor nicht angezeigt wurden.
hoffentlich hilft das
quelle
Ich lösche alle Leerzeichen in Projektschemata in xcschemes und dies behebt dieses Problem. F *** ing Apple :( AppCode ROCKS!
quelle
Siehe: http://developer.apple.com/library/ios/#DOCUMENTATION/FileManagement/Conceptual/understanding_utis/understand_utis_conc/understand_utis_conc.html
quelle
Ich hatte kein Problem mit dem Namen des Bundles, daher funktionierten Lösungsvorschläge für mich nicht. Schließlich habe ich das Vorzeichen "Nicht codieren" für den Build festgelegt, dann das Projekt geschlossen, die Bereitstellung im Organizer entfernt, die neue Bereitstellung heruntergeladen und zum Organizer hinzugefügt und sie dann für den Build festgelegt. Es funktionierte.
quelle
Dies ist keine technische Antwort, sondern eine "Benutzerfehler" -Antwort, die wahrscheinlich nicht auf Ihre Situation zutrifft. Es ist mir passiert und meine Suche hat mich vergeblich zu diesen Fragen und Antworten geführt - bis ich meinen Fehler bemerkte. Ich hatte im Issue Navigator einen Filter eingestellt, der mit nichts übereinstimmte, was als Problem gemeldet wurde. Als ich den Filter löschte, wurden die Probleme angezeigt.
Beachten Sie, dass die Symptome dieselben waren, nach denen Sie gefragt haben, und ich habe keine Ahnung, wann ich diesen Filter eingestellt habe (er muss von den anderen Navigationsansichten geerbt werden), da ich keine Filterung in der Auswahlliste benötigt hätte.
quelle
Ich hatte gerade ein ähnliches Problem. Es konnte nirgendwo ein Fehler gefunden werden. Alle meine Bereitstellungsprofile gelöscht und neue hinzugefügt.
Dann habe ich versucht, eine andere Test-App auf meinem Gerät zu erstellen, und ich habe folgende Fehlermeldung erhalten:
Code Sign-Fehler: Die Zertifikatidentität 'iPhone Developer: xxxxxx' wird mehrmals im Schlüsselbund angezeigt. Für das Codesign-Tool muss nur eines vorhanden sein.
Also ging ich in den Schlüsselbund, fand ein paar abgelaufene Zertifikate mit demselben Namen und löschte sie, und das war der Trick.
Ziemlich zufällig, aber wenn Sie versuchen, wie ich eine andere App auf dem Gerät zu erstellen, haben Sie möglicherweise das Glück, wie ich eine Fehlermeldung zu erhalten, um das Problem zu diagnostizieren.
quelle
Gehen Sie in xcode zu Organizer. Löschen Sie das Projekt auf der Registerkarte Projekt. Lassen Sie xcode die abgeleiteten Daten erneut erstellen, um mein Problem zu beheben.
quelle
Ich hatte ein ähnliches Problem in XCode4.5 und während der Arbeit an meiner Anwendung stürzte XCode plötzlich ab.
Nachdem ich stundenlang gesucht hatte, stellte ich fest, dass eine meiner Dateien in meiner Anwendung gelöscht wurde, als xcode abstürzte.
Ich habe die Datei aus dem Papierkorb wiederhergestellt und das Problem wurde behoben.
quelle
Ich habe eine Mac OS X-Anwendung ohne Codesignierung programmiert . Wenn ich Sandboxing im Abschnitt "Berechtigung" aktiviert habe, wurde die Codesignierung automatisch aktiviert und ich konnte keinen neuen Build erstellen.
quelle