2015-12-14 7 views
6

Quando si cerca di includere una dipendenza bersaglio ottengo l'errore: The manifest describes a target that cannot be found in your source tree: parserErrore durante l'aggiunta delle dipendenze bersaglio con Gestione Swift pacchetto

Qui è il mio file Package.swift:

import PackageDescription 

let package = Package(
    name: "Phoenix", 
      targets: [ 
      Target(
       name: "Phoenix", 
       dependencies: [.Target(name: "parser")]), 
      Target(
       name: "parser") 
    ] 
) 

sto seguendo il formato descritto qui : https://github.com/apple/swift-package-manager/blob/master/Documentation/Package.swift.md

risposta

2

Mentre siete entrambi ragione, il mio vero problema era che il mio sottodirectory non contiene alcun codice swift quindi un modulo non è stato generato

+0

Ahh. OK questo è un bug. Lo aggiusterò oggi. – mxcl

+0

Non riesco a far funzionare tutto questo mentre i miei "moduli" non riescono ad importarli. Uno dei miei moduli esporta le librerie native come "sottomoduli" ma tutte quelle importazioni falliscono. –

0

la documentazione Swift Package manager si collega a stati The targets are named how your subdirectories are named. Se il bersaglio parser non può essere trovato, presumibilmente non si dispone di una sottodirectory denominata parser situato nella directory in cui si trova il file Package.swift.

È necessario chiarire la struttura della directory in modo che possa essere confrontata con il contenuto dello Package.swift.

Modifica

Max ha fornito un buon esempio. Nota che la cartella "Sorgenti" potrebbe anche essere "Fonte", "src" o "srcs"

5

Hai una directory parser?

si dovrebbe avere un qualcosa di layout simile:

 . 
    └── Sources 
     └── Phoenix 
     │ └── File1.swift 
     └── parser 
      └── File2.swift 

Oppure:

 . 
    └── Phoenix 
    │ └── File1.swift 
    └── parser 
     └── File2.swift 

Ciò indica SwiftPM per creare due moduli, uno chiamato Phoenix e uno chiamato "parser".