2016-04-26 11 views
1

Ich habe ein Swift-Framework nach this Guide erstellt. Dies funktioniert in Client-Apps und kann auch getestet werden.Wie verwende ich ein Framework in einem Framework mit Carthage?

So weit, so gut.

Wenn ich meinem Framework ein Framework hinzufüge, z. JASON, kann ich nicht in meinen Code importieren, weil er nicht angezeigt wird.

error: no such module 'JASON' 
import JASON 
    ^

Interessanterweise kann ich das Framework in meine Einheit Testziel importieren. Welches ist nicht wo ich es will oder brauche.

Ich habe auch Robot's advice zusätzlich zu Carthage advice gefolgt.

Irgendwelche Ideen?

Antwort

1

Das Hinzufügen eines Frameworks zu einem anderen Framework-Projekt als Abhängigkeit ist in Ordnung mit Karthago. Ich habe es bei meinen eigenen Projekten zu Hause (Objective-C) und bei der Arbeit (Swift) gemacht.

Der Trick ist, wenn Sie die Projekte zu Ihrer App hinzufügen. Die beste Methode, die ich gefunden habe, ist ein flaches Modell zu verwenden. dh. Versuchen Sie nicht, Frameworks einzubetten oder sie irgendwie zu verschachteln. Lassen Sie Carthage Ihre Top-Level-Frameworks und alle Frameworks, auf die sie angewiesen sind, auf ein und derselben Ebene bringen. Ziehen Sie dann ihre * .framework-Dateien in Ihr App-Projekt und fügen Sie sie in einem separaten Build-Schritt mit dem Befehl carthage copy-frameworks hinzu.

+0

Ich denke, die Tatsache, dass Karthago Sie ein Cartfile.private angeben können, müssen Sie in der Lage sein, die besten Frameworks. Es sei denn, das ist nur zum Testen von Frameworks, aber die Docs sagen es nicht. –

+0

@drekka Ihr Kakaotouch-Framework sollte also den Befehl 'carthage copy-frameworks' haben? Oder vielleicht App, mit der Sie Ihr Framework eingebettet haben? – Kuba