2012-09-07 6 views
8

Ich versuche, eine private framework (letzter Absatz) in meinem Anwendungspaket mit XCode 4 und nach Apples (scheinbar) veraltetem instructions einzubetten. In meinem Fall bin ich Verwenden von separaten Xcode-Projekten für jedes Ziel. Dies ist der letzte Schritt:Wie fügt man privaten Framework zu Zielabhängigkeiten hinzu?

Fügen Sie auf der Registerkarte Allgemein des Inspektorfensters Ihr Framework als Abhängigkeit für die Anwendung hinzu. Das Hinzufügen dieser Abhängigkeit führt dazu, dass Xcode das Framework-Ziel vor dem Erstellen des Anwendungsziels erstellt.

Die Build-Abhängigkeit, die Sie im Anwendungsziel einrichten, bewirkt, dass das Framework vor der Anwendung erstellt wird. Dies ist wichtig, da es garantiert, dass eine gebaute Version Ihres Frameworks verfügbar ist, die mit der Anwendung verknüpft und in die Anwendung eingebettet wird. Aufgrund dieser Abhängigkeit können Sie das aktive Ziel Ihres Xcode-Projekts für Ihre Anwendung festlegen und dort belassen. Durch das Erstellen der Anwendung wird nun das Framework erstellt und in das Anwendungsbundleverzeichnis kopiert, wodurch die erforderliche Verknüpfung zwischen den beiden erstellt wird.

Doch wenn in Klick auf den Button + in Ziel Abhängigkeiten den Rahmen nicht zu sehen. Wie kann ich eine Build-Abhängigkeit zwischen dem privaten Framework und dem Anwendungsziel in Xcode 4 herstellen?

Bearbeiten: Ich sollte klarstellen, dass ich bereits das private Framework funktioniert. Ich möchte nur vermeiden, das Projekt bei jeder Änderung des Frameworks zu bereinigen und sicherzustellen, dass das Framework vor dem Anwendungsziel erstellt wird.

+0

Haben Sie ein Ziel für das Framework im Projekt? Wenn nicht, müssen Sie einen hinzufügen. Zielabhängigkeiten gelten für Ziele. Sie können ein einzelnes Framework nicht zu einer Zielabhängigkeit machen. –

+0

Nein, ich habe kein Ziel (siehe Verwenden von separaten Xcode-Projekten für jedes Ziel in der Verknüpfung). Wollen Sie damit sagen, dass es nicht mehr möglich ist, das zu tun, was in der Dokumentation beschrieben wird? – hpique

+0

Die Dokumentation hat nie gesagt, dass Sie aus einem Framework eine Zielabhängigkeit machen können. Es besagt, dass Sie ein Framework-Ziel zu einer Zielabhängigkeit machen können. Der irreführende Teil dessen, was Sie zitiert haben, ist im ersten Satz, wenn es heißt: "Fügen Sie Ihr Framework als Abhängigkeit hinzu". Es wäre klarer, wenn es heißt "füge dein Framework-Ziel als Abhängigkeit hinzu". Verknüpfen Sie Ihr Framework mit dem App-Projekt, wie in srinaidus Antwort erläutert. –

Antwort

9

Verwaltet, um dies zu lösen, indem Sie das private Framework-Projekt als Teilprojekt hinzufügen und dann das Framework-Ziel in Target Dependencies hinzufügen.

Allerdings wurde das Framework-Ziel in Target-Abhängigkeiten nicht als Option angezeigt, bis ich DerivedData gelöscht. Dieser fiese kleine Käfer hat mich verrückt gemacht.

+0

Ich habe gerade den Arbeitsbereich geschlossen und ihn wieder geöffnet und war dann in der Lage, das Ziel als Abhängigkeit hinzuzufügen. Hier ist ein gutes Tutorial zum Prozess: http://pymatics.com/2011/12/23/tutorial-develop-a-private-framework-for-your-mac-app-using-xcode-4s-workspace-feature – GTAE86

+0

Sie brauchen beide. Obwohl Xcode in diesen Tagen automatisch Abhängigkeiten löst, ist es gut für andere, die Ihr Projekt durchsuchen, zu wissen, dass Ihre App von ihrem privaten Framework abhängt. –

1

Wählen Sie Ihr Projekt im Xcode und dann finden Sie das Projekt und das Ziel auf der rechten Seite. Dann Select Target und gehe zu LinkBinary with Libraries und dann kommt ein Fenster und dort unten links gibt es eine Option namens Add Other.

+0

Das ist ein vorheriger Schritt und ohne es würde das Framework nicht funktionieren. Ich habe bereits das Framework funktioniert. Jetzt möchte ich sicherstellen, dass das Framework vor dem Anwendungsziel erstellt wird. – hpique

0

Wenn Sie Ihren privaten Rahmen hinzufügen möchten, ohne sie als Unterprojekt einschließlich, müssen Sie für eine Dateien kopieren Aufgabe hinzufügen:

Copy Files task

Wählen Sie ein Rahmen mit der + und wählen Sie Frameworks für Destination.

Sie müssen nichts hinzufügen in Target Abhängigkeiten.

Auch für diese zu arbeiten, stellen Sie sicher, RUNPATH Suchpfade Wert @executable_path/Frameworks im Registerkarte Build-Einstellungen ist.

Verwandte Themen