14 Stimmen

Deaktivieren einiger Dateien in Xcode-Projekt von der Kompilierung

Ich habe ein neues Projekt in Xcode begonnen, indem ich einen bestehenden Ordner dupliziert habe, da meine neue Anwendung viele gemeinsame Funktionen mit der alten haben wird.

Das Problem ist, dass die neue Anwendung ein Framework, das ich in der alten Anwendung verwendet habe, nicht mehr nutzt. Als ich das Framework gelöscht habe, haben natürlich alle Dateien, einschließlich des Frameworks, Fehler ausgelöst.

Grundsätzlich möchte ich alle Syntaxprüfungen, Abhängigkeitsüberprüfungen, etc. auf viele Dateien zu deaktivieren. Ich möchte, dass Xcode diese Dateien ignoriert, obwohl sie sich im Projektbaum befinden. Wenn ich sie später überarbeite, werde ich sie manuell wieder aktivieren. Auf diese Weise kann ich meine kleinen Änderungen kompilieren und auf Fehler testen, ohne alle Fehler zu beheben, die in den "nicht überarbeiteten" Dateien auftreten, die ich in der Zukunft ohnehin beheben werde.

Ich könnte sie aus dem Projektbaum löschen und sie dann einzeln wieder hinzufügen, wenn ich mit meiner Arbeit fertig bin, aber das möchte ich nicht tun, weil mein Projektbaum dadurch durcheinander geraten könnte, und es sollte eigentlich eine andere Möglichkeit geben, dies zu erreichen.

Ich habe versucht, diese Dateien aus allen Zielmitgliedschaften zu entfernen, aber das hat nicht geholfen.

22voto

newah Punkte 341

Wenn Sie viele Dateien entfernen müssen, können Sie eine benutzerdefinierte Build-Einstellung erstellen, die EXCLUDED_SOURCE_FILE_NAMES heißen sollte. Und fügen Sie Dateinamen oder Muster hinzu.

In meinem Fall wählte ich das Ziel aus, bei dem ich einige Dateien auslassen wollte, Editor -> Build-Einstellung hinzufügen -> Benutzerdefinierte Einstellung hinzufügen (zunächst ist dies irgendwie ausgegraut. Ich wählte die Projektdatei aus (direkt über TARGETS), wählte dann die Zieldatei erneut aus und konnte die benutzerdefinierte Einstellung erstellen) -> nenne sie EXCLUDED_SOURCE_FILE_NAMES -> Wert wie PREFIX*

Natürlich können Sie eine benutzerdefinierte Einstellung für das gesamte Projekt erstellen, so dass alle Ziele diese Einstellung haben werden.

Beispiel, wie es aussehen kann: enter image description here

Ursprüngliche Antwort: http://lists.apple.com/archives/xcode-users/2009/Jun/msg00153.html

21voto

Stefan Vasiljevic Punkte 4028

In Xcode 9, bei älteren Versionen bin ich mir nicht sicher, gehen Sie zu:

Build-Einstellungen -> Build-Optionen -> Ausgeschlossene Quelldatei-Namen

Fügen Sie alle Dateinamen hinzu, die Sie ausschließen möchten. Sie können sogar einen Platzhalter verwenden.

Nachfolgend ein Beispiel, wie ich alle Dateien ausgeschlossen habe, die mit dev- und endet mit .cc für alle Schemata mit Ausnahme des Debug-Schemas, das für den Simulator erstellt wird. Alle Debug-Simulator-Builds schließen Dateien aus, die mit release- und endet mit .cc

enter image description here

Hoffentlich hilft das!!

UPDATE

Ich hatte ein ähnliches Problem mit Frameworks, und auch hier kann man ausschließen, dass Frameworks in die App eingebettet werden!

Mein Problem war, dass ich 2 Frameworks hatte, eines für den Simulator und das andere für ARM. iTunes Connect beschwerte sich, dass ich das Simulator-Framework in die App integriert hatte.

Wenn Sie viele Frameworks haben, hilft dies auch bei der Reduzierung der Größe der App.

0voto

Des Punkte 315

Die Antwort finden Sie hier

Xcode: Gibt es einen Ort/Flag, um zu verhindern, dass eine Klasse kompiliert?

Kurz gesagt, entfernen Sie die Datei(en) aus dem Projektziel.

0voto

aknew Punkte 1101

Als "dirty hack" können Sie versuchen, nicht Dateien, sondern den Code auszuschließen, indem Sie #ifdef NotCompile + #endif wie es in C gemacht wird \C ++ mit .h mit Hinzufügen \removing #define NotCompile in YOURPROJECT-prefix.pch

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X