2017-11-07 3 views
1

Ich verwende ein Projekt namens "HAP" (https://github.com/Bouke/HAP), das mit SwiftPM erstellt wurde.Einbetten von Frameworks von SwiftPM in Cocoa-Anwendung (XCODE)

Das mitgelieferte Beispiel "HAP-Server", funktioniert super von Command Line und ich habe die Parameter "swift package generate-xcodeproj" verwendet, um ein XCODE-Projekt zu erstellen.

Ich kann auch die HAP in XCODE laden und den Ziel "HAP-Server" erstellen/debuggen.

Ich möchte dieses Framework in meiner Cocoa-Anwendung verwenden und habe die HAP.xcodeproj in mein Projekt hinzugefügt. Ich habe die produzierten Dateien als "Embedded Binaries" und "Linked Frameworks and Libraries" hinzugefügt.

Das erlaubt mir, "HAP importieren" in meine View-Controller-Klasse. enter image description here

Allerdings, wenn ich versuche, mein Cocoa Ziel zu bauen, erhalte ich die folgende Meldung - scheint die Abhängigkeit „Kitura-net“ aus dem HAP Vorhaben ...

„Missing benötigte Module: 'CCurl', 'CHTTPParser'“

enter image description here enter image description here

Was ist der beste Weg, Gerüste aus einem SwiftPM in meinem Projekt zu benutzen?

Ich nehme an, es hat etwas mit Search Headern zu tun ... jemand eine Idee haben?

UPDATE # 1:

ich meine Cocoa-Projekt versucht haben, hinzufügen, die die Bibliothek importiert, die Kitura von "Link-Binary mit Bibliotheken", libcurl.4.dylib aus usr/lib verwendet/aber es gibt mir immer noch den gleichen Fehler.

enter image description here

UPDATE # 2:

enter image description here

UPDATE # 3

beendet ich es mit dieser Methode Bezifferung nach oben aus: Importing CommonCrypto in a Swift framework

Ich musste eine Modulmap für jedes Element erstellen, über das es passend war, in meinem Fall: CCURL & CHTTPParser. Sobald ich das gemacht habe, konnte ich kompilieren.

Antwort

0

Sie können ein Beispiel für die Einbettung von Kitura in ein Xcode-Projekt in diesem Repo https://github.com/IBM-Swift/Kitura-HelloWorld-iOS sehen. Makefile in diesem Repository führt Build-Skripts aus, um ein Xcode-Projekt zu reparieren, um Kitura unter iOS auszuführen. Sie müssen curl für iOS kompilieren - siehe Anweisungen in der README.

Von dem, was ich mich erinnere, müssen Sie das Verzeichnis mit Curl-Header Header Search Paths, das Verzeichnis mit libcurl.a-Library Search Paths, und auch -lz Flagge zu Other Linker Flags hinzufügen hinzuzufügen.

+0

Probieren Sie es aus - ich gehe davon aus, dass dieser Prozess für eine MacOS Cocoa-App funktioniert - ich brauche es nicht für mein iOS-Projekt (ich habe ein Multi-Target-Projekt) - das ist nur für die MacOS App ... Ich sehe es erzeugt x64 Bits, also sollte ich in Ordnung sein. – Mavro

+0

Ich bin näher !! Es kompiliert die Bits für iOS - aber ich brauche MacOS - gibt es eine DoBuildCurl.sh mit MacOS-Plattformen? – Mavro

+0

Für MacOS sollte libcurl bereits installiert sein, keine Notwendigkeit, es zu bauen. Die Bibliothek sollte sich in '/ usr/lib/libcurl.dlyb' befinden, die Header in'/usr/include/curl'. –