Xcode 4.2 Wie kann ein Projekt in ein anderes aufgenommen werden?


75

Ich suche weiter, kann aber keine klare und einfache Erklärung finden, wie ein XCode-Projekt zusammen mit allen Unterklassen in ein anderes Projekt aufgenommen werden kann. Ich sehe solche Dinge routinemäßig in Beispielprojekten, die ich aus dem Internet herunterlade, weiß aber nicht, wie ich das selbst machen soll.

In XCode gibt es zusammen mit .h- und .m-Dateien und -Ordnern ein ganz neues Projekt, beginnend mit einem blauen Xcode-Projektsymbol, das erweiterbar ist und alles im Projekt enthält.

Kann mir bitte jemand Schritt für Schritt erklären, was ich tun muss, um ein XCode-Projekt zu einem anderen hinzuzufügen? Ich habe eine Menge Einzeiler wie "Header-Suchpfade" gesehen, aber das sagt mir nicht viel.

UPDATE: Nach dem erneuten Lesen der Dokumentation wurde mir klar, dass das einzuschließende Projekt auf das BLAUE Projektsymbol des übergeordneten Projekts gezogen werden muss. Normale Quellen können überall hin gezogen werden, ein Projekt muss jedoch auf ein Projekt gezogen werden.

Vielen Dank!

Antworten:


140

Dies ist sehr sinnvoll, wenn Sie versuchen, Ihren xcode-Projekten eine statische Bibliothek hinzuzufügen. Dazu sind einige Schritte erforderlich. Stellen Sie zunächst sicher, dass das statische Bibliotheksprojekt in XCode nicht geöffnet ist.

Ziehen Sie anschließend die xcodeproj-Datei der statischen Bibliothek (aus dem Finder) auf das xcode-Projekt Ihrer App und legen Sie sie dort ab. StaticLib

Danach müssen Sie diese Bibliothek zu den Erstellungsphasen Ihrer App hinzufügen. Klicken Sie auf das Hauptprojekt und wählen Sie die Registerkarte BuildPhases des Ziels.

Phasen erstellen

Sie möchten das andere Projekt zu den Zielabhängigkeiten und zu Ihrem Abschnitt "Binär mit Bibliotheken verknüpfen" hinzufügen.

Schließlich muss die App Ihre Header kennen. Daher müssen Sie den Pfad zu Ihren statischen Bibliotheksklassen zu Ihren Benutzerkopfsuchpfaden hinzufügen. Gehen Sie zu den Build-Einstellungen des Hauptziels und suchen Sie nach dem Header-Suchpfad.

Header-Suchpfad

Dadurch wird Ihre App auf die neue statische Bibliothek aufmerksam.

Manchmal müssen Sie einige andere Linker-Flags hinzufügen. Suchen Sie in den Build-Einstellungen nach anderen Linker-Flags und fügen Sie -all_loadund hinzu-ObjC

Andere Linker Flags

Ich hoffe, das hilft, ich weiß, als ich das erste Mal versuchte, schlug ich eine Weile mit dem Kopf gegen die Wand.


Wenn dieser Beitrag hilfreich war, markieren Sie ihn bitte als Antwort. :) Lass es mich wissen, wenn du fragen hast.
MobileOverlord

23
Wichtiges Detail, Leute: Das Projekt, das Sie ziehen, sollte nicht in Xcode geöffnet sein. Für den Fall, dass jemand das gleiche Problem hat wie ich. :)
inket

1
@MobileOverlord Könntest du diesen Beitrag aktualisieren? Ihre Anweisungen sind sehr hilfreich, scheinen aber für XCode 6 nicht korrekt zu sein. Wenn ich in den Build-Einstellungen nach Benutzerkopf-Suchpfaden suche, kann ich nur "Immer Benutzerpfade suchen" finden
sonnig

@sunny Sie müssen sicherstellen, dass in den Build-Einstellungen "Alle" Optionen angezeigt werden und nicht nur "Basic". Möglicherweise sind Sie auf Basic eingestellt. Ich werde die Screenshots aktualisieren.
MobileOverlord

1
@MobileOverlord Wie würden Sie die Header-Pfade relativ halten, wenn Sie dies auf einem Repo mit anderen Entwicklern teilen würden?
NYC Tech Engineer

5

Stellen Sie sicher, dass das Projekt, das Sie als Teilprojekt hinzufügen möchten, nicht geöffnet ist, bevor Sie es hinzufügen oder löschen.


1
Vielen Dank! Dies war ein Lebensretter für mich.
Vibhor Goyal

@VibhorGoyal Gern geschehen, ich hatte auch vor einiger Zeit damit zu kämpfen :).
JP Illanes

4

Sie können einfach eine beliebige xcode-Projektdatei (* .xcodeproj) in den Projektnavigationsbereich Ihres gewünschten übergeordneten Projekts ziehen und dort ablegen.

Abhängig von Ihren Anforderungen müssen Sie dann möglicherweise Zielabhängigkeiten hinzufügen.

Meinst Du das?


Ein Grund, warum ich frage, ist, dass ich versucht habe, die .xcodeproj-Datei zu ziehen, und nicht alle Unterordner kopiert wurden. Schlimmer noch, als ich versuchte, die .xcodeproj zu entfernen, um sie erneut zu ziehen, habe ich die .xcodeproj versehentlich von der Festplatte gelöscht! Das war ein lustiger Tag ... nicht
Alex Stone

Dies liegt daran, dass in einem XCode-Projekt Verweise auf Dateien und nicht auf tatsächliche Kopien gespeichert werden. Aus diesem Grund wurde beim Löschen Ihrer Datei tatsächlich die Originaldatei von der Festplatte gelöscht. Und da nur Referenzen gespeichert werden, werden Unterordner nicht unbedingt kopiert (nur wenn sie im Projekt referenziert werden).
JiaYow

Alex, benutze Github oder einen SVN-Dienst. Auf diese Weise verlieren Sie nicht und können herumspielen.
Matthew Ferguson

4

Stellen Sie sicher, dass Sie " Gruppen erstellen " anstelle von "Ordnerreferenzen erstellen " auswählen . Wenn Ihr Ordner blau statt gelb ist, haben Sie eine Ordnerreferenz. Der Ordner sollte gelb sein.


1

Ziehen Sie die Xcode-Datei per Drag & Drop aus dem Finder in eine andere Xcode-Datei. Sie werden aufgefordert, die Datei zu kopieren, dann das Kontrollkästchen zu aktivieren und in Ihr Projekt zu kopieren.


0

Sie haben zwei Varianten, um Ihrem Projekt Quellcode hinzuzufügen:

  1. Explicit dependency[Info] durch Erstellentarget dependencymit einemcross-project reference [Info]
  2. Implicit dependency[Info] wenn der Quellcode Teil desselben istWorkspace [Info]
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.