2017-11-13 4 views
0

Ich versuche den Paketmanager von Swift zu verwenden, um externe Module in mein Projekt zu importieren. Mein erstes Modul kommt von der Vapor project. Ich kann es nicht funktionieren lassen. Ich beginne mitImportieren von Modulen mit dem Swift-Paketmanager

swift package init 
swift package generate-xcodeproj 

Mein Package.swift sieht wie folgt aus:

import PackageDescription 

let package = Package(
    name: "OpenTools", 
    products: [ 
     .library(
      name: "OpenTools", 
      targets: ["OpenTools"]), 
    ], 
    dependencies: [ 
     .package(url: "https://github.com/vapor/json.git", from: "2.0.0") 
    ], 
    targets: [ 
     .target(name: "OpenTools", dependencies: ["JSON"]), 
    ] 
) 

Ich laufe dann

swift package update 
swift package generate-xcodeproj # to regenerate with dependencies 

und dann versuchen, das JSON-Paket in meinem Haupt-Datei zu importieren

import JSON 

Die Module sind die wie unten gezeigt, aber der Import wird mit einem No such module 'JSON' Fehler zurück.

enter image description here

Irgendwelche Gedanken?

Antwort

3

Wenn ich genug Ruf hatte, würde ich dies als Kommentar formulieren. ;)
Wahrscheinlich liegt das Problem innerhalb von Xcode, da es noch nicht bekannt ist, dass JSON existiert, weil es noch nicht gebaut wurde. Dies kann leicht gelöst werden, indem Sie einfach Ihr Projekt erstellen (mit cmd-B). Mit dem generierten xcodeproj sollte Xcode wissen, dass es zuerst JSON und dann den Rest erstellen muss, da JSON als eine Abhängigkeit für Ihr Ziel markiert ist.
Dies können Sie überprüfen, indem Sie in Xcode zu Ihrem Ziel navigieren (wenn Sie auf die Projektbeschreibungsdatei klicken) und danach zu "Build Phases". Unter Target Dependencies sollten Sie Ihr JSON Modul finden.

Zusätzlich sollten Sie ein JSON Modul unter Ihren Zielen finden, das die von github gesammelten Quellen zusammenstellt.

Ihr Projekt sollte auch beim Ausführen von swift build in Ihrem Projektstamm erstellt werden.

+0

Das ist richtig. Es ist nur eine Xcode-Eigenart. '⌘ + B' zu bauen oder' ⌘ + U' zu testen und du bist gut zu gehen. Starten Sie Xcode neu, wenn der Fehler "hängen bleibt" und Sie gehen können. –

+0

Ja, ich stimme zu, dass diese Antwort mit ziemlicher Sicherheit die richtige ist. Also, kein Kommentar – JeremyP

+1

Ich habe das versucht, aber es wird immer noch nicht für mich arbeiten, es hat sogar etwas in den Ziel-Abhängigkeiten und Link mit verknüpften Binaries Abschnitte der Build-Phasen. Was soll ich machen? – RufusV

Verwandte Themen