2017-01-24 2 views
1

Ich erstelle eine neue App MyApp, wo ich beschlossen, einige Teile der App in einem separaten Rahmen MyFramework statt der App selbst zu machen, um sie in anderen Projekten wiederverwendbar zu machen. Das Framework hat ein eigenes Projekt (MyFramework.xcodeproj), das ein Teilprojekt des Haupt-App-Projekts ist (MyApp.xcodeproj). Das Haupt-App-Projekt hat natürlich eine Abhängigkeit (macht das Verknüpfen von & Kopieren) auf dem Framework (MyFramework.framework). Dieser Teil funktioniert soweit gut.Wie verknüpfe ich ein (Teilprojekt-) Framework mit einem Pod?

Jetzt, MyFramework braucht eine Kakaokapsel (Alamofire), um zu arbeiten. Soweit ich das verstanden habe, möchte ich keine Kakaoschoten für das MyFramework.xcodeproj Projekt direkt einrichten, also habe ich es nur für die Hauptanwendung MyApp.xcodeproj (jetzt MyApp.xcworkspace wegen Pods) eingerichtet und auch die Alamofire Pod dort. Ich verlinkte dann MyFramework.xcodeproj gegen die Alamofire.framework (nicht die), aber nicht Alamofire zum Kopieren gesetzt. Die MyApp.xcodeproj macht die üblichen Cocoapods zum Verknüpfen/Kopieren/Bündeln von Sachen, also beinhaltet auch das Alamofire.framework im Endprodukt. Dies funktionierte teilweise gut.

(Anmerkung: Ich sage ‚teilweise fein‘ hier, weil ich in den MyFramework Quellen gelegentlich Fehler hatte nicht die Suche nach der Alamofire Modul beim Kompilieren, die durch eine erneute Verknüpfung der Alamofire.framework im MyFramework.xcodeproj behoben werden können Abgesehen davon. Erstellen und Ausführen der App funktioniert gut.)

Das Problem ist jetzt, wenn ich versuche, die App zu archivieren, das Alamofire Modul ist wieder nicht in den MyFramework Quellen gefunden. Der Fehler tritt sowohl bei der Archivierung der MyApp (die auch MyFramework baut), als auch bei der Archivierung von MyFramework direkt auf. Der Fehler tritt nicht in der Verknüpfungsphase auf, sondern in der Kompilierungsphase einer Swift-Quelldatei mit einer import Alamofire-Anweisung.

Ich vermute etwas wie die Verknüpfung der Alamofire.framework, um einen falschen relativen Pfad zu verwenden, der während des Aufbaus gefunden werden kann, aber bei der Archivierung oder dergleichen anders ist. Ich habe bereits versucht, den Alamofire.framework Pfad auf Relative to build products zu setzen, aber konnte nicht das zum Funktionieren bringen, nicht einmal für reguläres Bauen (nicht archivieren).

Ich bin jetzt fest und frage mich, ob meine ganze Einrichtung mit der Verknüpfung von MyFramework.xcodeproj Projekt an die Alamofire.framework und Alamofire als Pod enthalten ist korrekt.

Kann jemand mir einen Hinweis geben, was hier falsch sein könnte? Entweder in den Pfaden oder im gesamten Setup?

Antwort

0

Das wird das Problem selbst nicht angehen, würde aber eine Lösung bieten, die Ihren Bedarf dient:

Trans MyFramework in einer Hülse. Host es in Ihrem private spec repo oder - noch einfacher - verwenden Sie den Parameter git in der Pod-Datei, um darauf zuzugreifen.

pod 'MyFramework', :git => 'https://gitsever/maxscompany/MyFramework.git' 
+0

und? Hast du eine Lösung gefunden? – vikingosegundo

Verwandte Themen