web-dev-qa-db-fra.com

Impossible d'importer des packages à l'aide de Swift 4 Gestionnaire de packages

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:

  • Projet lancé à l'aide de Swift package init --type executable
  • Modifié 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: []),
    ]
)
  • Courir Swift build && Swift package generate-xcodeproj
  • Lorsque j'ouvre un projet dans Xcode-beta (v9) et que j'essaie d'importer Kitura ou Alamofire, je reçois No such module Kitura/Alamofire Message d'erreur
  • Fonctionnement Swift 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?

27
Timka

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.

50
Timka

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

0
Krishnadas PC