Ich habe das Projekt AEXML gegabelt und versuche, Unterstützung Karthago. Ich habe ein Framework-Ziel hinzugefügt und ein neues Schema erstellt, das als freigegeben markiert ist (siehe Screenshots unten). Ich kann carthage build
ausführen und in meinem Carthage/Build/iOS
sehe ich:
Wenn ich die resultierende AEXML.framework
Datei in meine Beispielanwendung ziehe, wird das Projekt erstellt, aber beim Start bekomme ich:
Ich habe das Gefühl, dass ich irgendwo unterwegs versagt habe, aber ich bin mir nicht sicher, wie ich das beheben soll.
Sie sollten in der "Build Phase" Ihres Beispielprojekts ein Laufskript hinzufügen, beispielsweise:
Klicken Sie auf der Registerkarte "Build Phases" Ihrer Anwendungsziele auf das Symbol "+", und & gt; Wählen Sie "New Run Script Phase". Erstellen Sie ein Ausführungsskript mit dem folgenden Inhalt:
/ usr / local / bin / Carthage-Kopierrahmen Fügen Sie die Pfade zu den Frameworks hinzu, die Sie unter "Eingabedateien" verwenden möchten, z. B .:
$ (SRCROOT) /Carthage/Build/iOS/Box.framework $ (SRCROOT) /Carthage/Build/iOS/Result.framework $ (SRCROOT) /Carthage/Build/iOS/ReactiveCacoa.framework
Ich hatte dies selbst versucht, indem ich dem Skript hinzugefügt habe, um zu überprüfen, ob jedes Framework in BUILD_PRODUCTS_DIR gefunden wurde, und es dann rekursiv zu kopieren, wenn nicht. Als das nicht funktionierte, endete ich mit diesem Verknüpfungsproblem:
dyld: Bibliothek nicht geladen: @ rpath / XCTest.framework / XCTest Referenziert von: ... / build / Produkte / Debug-iphonesimulator / Specta.framework / Speta Grund: Bild nicht gefunden
Ich habe schließlich versucht, die Phase der Kopierdateien zu erstellen, meine Frameworks und dSYMs eingeschlossen, Gruppen erstellt und diese dann in Xcode 7.2 in die Frameworks-Gruppe verschoben. Meine Verbindungsprobleme waren komplett weg.
Der Fehler, auf den Sie hingewiesen haben, dass das Framework-Binary zur Laufzeit nicht gefunden wurde. Antwort von Abner Zhong wird in den meisten Fällen funktionieren, aber manchmal muss man sich etwas mehr anstrengen (für mich war es das Unit-Testziel) . Damit es funktioniert Karthago README schlägt vor:
In seltenen Fällen möchten Sie möglicherweise auch jede Abhängigkeit in das Build-Produkt kopieren (z. B. um Abhängigkeiten in das äußere Framework einzubetten oder sicherzustellen, dass Abhängigkeiten in einem Testpaket vorhanden sind). Erstellen Sie dazu eine neue Build-Phase "Copy Files" mit dem Ziel "Frameworks", und fügen Sie dort ebenfalls die Framework-Referenz hinzu.