Swift错误消息:在终端中执行swift run命令时,出现“error:no executable product named 'App'”

klh5stk1  于 2024-01-05  发布在  Swift
关注(0)|答案(2)|浏览(121)

我试图在Vapor/Fluent应用上运行一个swift命令,在过去没有问题。我正在运行swift run App migrate,它通常会更新任何迁移。但它会抛出标题中的错误。
我看了一下包文件,它有:

targets: [
        .target(
            name: "App",
            dependencies: [
                .product(name: "Vapor", package: "vapor"),
                .product(name: "FluentPostgresDriver", package: "fluent-postgres-driver"),
                .product(name: "Fluent", package: "fluent"),
                .product(name: "Leaf", package: "leaf"),
//                .product(name: "SendGrid", package: "sendgrid"),
            ],
            swiftSettings: [
                // Enable better optimizations when building in Release configuration. -- Despite the use of
                // the `.unsafeFlags` construct required by SwiftPM, this flag is recommended for Release
                // builds. See <https://github.com/swift-server/guides#building-for-production> for details.
                .unsafeFlags(["-cross-module-optimization"], .when(configuration: .release))
            ]
        ),
       
        .target(name: "Run", dependencies: [.target(name: "App")]), // comment what follows
        .testTarget(name: "AppTests", dependencies: [
            .target(name: "App"),
            .product(name: "XCTVapor", package: "vapor"),
        ])
        // to here
    ]

字符串
而顶部的名称是不同的东西。我已经尝试重新输入命令与名称设置在包部分,这并没有什么区别。
我已经尝试了同样的事情与多个其他项目是类似的,包括那些没有被改变了几个月,和工作之前,我得到了同样的错误。试图安装命令行工具说,一切都是最新的。和重置Xcode的标准路径(它从来没有被改变)没有做任何事情.
我在这一点上有点迷失...任何答案非常感谢。

6psbrbz9

6psbrbz91#

在某种程度上,似乎swift工具改变了,期望executableTargetName(“运行”)而不是targetName(“应用程序”)。
因此,对于您的示例(以及我的vapor项目,我是如何解决这个问题的),您现在需要运行swift run Run migrate,而不是运行swift run App migrate

f0brbegy

f0brbegy2#

我在使用GitHub操作时遇到了这个问题。我想出了一个方法,通过运行swift run,省略可执行文件的名称。
我只有一个可执行目标。如果你有多个,这可能不起作用。

相关问题