Essayer de tester Swift 4 en utilisant Xcode-beta (v9) sur ma machine et avoir des problèmes avec l'importation de packages dans un projet de test:
Swift package init --type executable
Package.Swift
et ajouté 2 projets à essayer:Package.Swift
// Swift-tools-version:4.0
// The Swift-tools-version declares the minimum version of Swift required to build this package.
import PackageDescription
let package = Package(
name: "sampleproject",
dependencies: [
// Dependencies declare other packages that this package depends on.
// .package(url: /* package url */, from: "1.0.0"),
.package(url: "https://github.com/IBM-Swift/Kitura.git", from: "1.7.6"),
.package(url: "https://github.com/Alamofire/Alamofire.git", from: "4.5.0")
],
targets: [
// Targets are the basic building blocks of a package. A target can define a module or a test suite.
// Targets can depend on other targets in this package, and on products in packages which this package depends on.
.target(
name: "sampleproject",
dependencies: []),
]
)
Swift build && Swift package generate-xcodeproj
No such module Kitura/Alamofire
Message d'erreurSwift build
dans le terminal produit l'erreur suivante:Compiler Swift Module 'investprosto' (1 sources) /Users/username/Projects/sampleproject/Sources/sampleproject/main.Swift:1:8: erreur: aucun module de ce type 'Kitura' importe Kitura ^ erreur: terminée (1):/Applications/Xcode- beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/Swift- build-tool -f /Users/username/Projects/sampleproject/.build/ debug.yaml
Dépendances le dossier virtuel contient les répertoires avec les mêmes noms de package, mais ils sont vides. Toutefois, .build\checkouts
et .build\repositories
contient les dossiers des packages et les fichiers correspondants.
Y a-t-il quelque chose qui me manque dans la configuration de mon système?
Il s'est avéré que je devais également inclure les dépendances dans le .target
du Package.Swift:
.target(named: "sampleproject", dependencies: ["Kitura", "Alamofire"])
et reconstruisez le projet.
Même si vous devez ajouter le target
dans le Package.Swift
parfois ce n'est pas suffisant. J'ai résolu le problème en supprimant le .build
dir et le fichier Package.resolved
, puis exécutez Swift build
ou construire à partir de Xcode. La commande Build ne récupérait pas les packages car elle se trouvait déjà dans le fichier resolved
mais si vous supprimez le .build
dir ça devient vide de sens. Vous pouvez le vérifier en vérifiant le répertoire Dependencies
de Xcode il sera vide s'il y a une erreur comme No such package/module