首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >蒸汽项目不使用Swift 4和Xcode 9建立/运行

问蒸汽项目不使用Swift 4和Xcode 9建立/运行
EN

Stack Overflow用户
提问于 2017-11-11 23:14:49
回答 1查看 3.2K关注 0票数 6

我已经安装了最新版本的Xcode 9,并且已经用brew重新安装了几次,但是每当我试图构建/运行/更新项目时,我仍然会收到以下错误。

下面是我的工作

代码语言:javascript
复制
1.) Vapor Toolbox: 3.1.2

2.) Apple Swift version 4.0 (swiftlang-900.0.43 clang-900.0.22.8)
    Target: x86_64-apple-macosx10.9

3.) Xcode 9.0
    Build version 9M136h
代码语言:javascript
复制
Error: Could not generate Xcode project: error: manifest parse error(s):
/var/folder/60/n3ldjzgs5vsg06v17_1yy44h0000gn/T/TemporaryFile.VwrbJo.swift:41:5
: error: argument 'targets' must preceed argument 'dependencies'
    targets" [
    ^
error: The product dependency 'Vapor' was not found.
error: The product dependency 'FluentProvider' was not found.
error: The product dependency 'Testing' was not found.

这是我的Package.swift文件。看看我最初的错误,我确实尝试了切换文件中“目标”和“依赖关系”的顺序。这没有解决任何问题,并产生了以下错误消息:error: argument 'dependencies' must precede argument 'targets'

Package.swift

代码语言:javascript
复制
let package = Package(
    name: "test",
    products: [
        .library(name: "App", targets: ["App"]),
        .executable(name: "Run", targets: ["Run"])
    ],
    dependencies: [
        .package(url: "https://github.com/vapor/vapor.git", .upToNextMajor(from: "2.1.0")),
        .package(url: "https://github.com/vapor/fluent-provider.git", .upToNextMajor(from: "1.2.0")),
    ],
    targets: [
        .target(
            name: "App",
            dependencies: ["Vapor", "FluentProvider"],
            exclude: [
                    "Config",
                    "Public",
                    "Resources",
                    ]
        ),
        .target(name: "Run", dependencies: ["App"]),
        .testTarget(name: "AppTests", dependencies: ["App", "Testing"])
    ]
)
EN

回答 1

Stack Overflow用户

发布于 2017-11-15 00:33:52

Xcode 12 /SWIFT5.3更新

vapor现在是homebrew/core的一部分。资料来源: github 自制-核心/公式/蒸气.。

代码语言:javascript
复制
##### If applicable, remove the obsolete 'vapor/tap' #####
## List current taps:
brew tap
# homebrew/core
# vapor/tap
## Remove tap:
brew untap vapor/tap

#### Install current version of vapor #####
brew install vapor
brew upgrade vapor

Xcode 9/ Swift 4

  1. 复核版本:“最新版本”至少是Xcode 9.1 (9B55)和苹果Swift 4.0.2 (迅捷-900.69.1 clang-900.0.38)
  2. 验证Packages.swift中的第一行是// swift-tools-version:4.0。如果没有swift-tools-version行,Packages.swift可以作为快速工具-version 3进行处理,这将导致错误。
代码语言:javascript
复制
cd _PROJECT_PATH_
swift package tools-version
# if not 4.0.0, then …
swift package tools-version --set-current

下面是一个例子,Package.swift。有关其他信息,请参阅Swift软件包管理器清单API重新设计和快速包管理器使用文档。

代码语言:javascript
复制
// swift-tools-version:4.0
// The swift-tools-version declares the minimum version of Swift
// required to build this package. 
// Syntax: '// swift-tools-version:<specifier>' on the 1st line

import PackageDescription

let package = Package(
    name: "test",
    products: [
        .library(name: "App", targets: ["App"]),
        .executable(name: "Run", targets: ["Run"])
    ],
    dependencies: [
        .package(url: "https://github.com/vapor/vapor.git", .upToNextMajor(from: "2.3.0")),
        .package(url: "https://github.com/vapor/fluent-provider.git", .upToNextMajor(from: "1.3.0")),
    ],
    targets: [
        .target(
            name: "App",
            dependencies: ["Vapor", "FluentProvider"],
            exclude: [
                    "Config",
                    "Public",
                    "Resources",
                    ]
        ),
        .target(name: "Run", dependencies: ["App"]),
        .testTarget(name: "AppTests", dependencies: ["App", "Testing"])
    ]
)
  1. 复核
代码语言:javascript
复制
cd _PROJECT_PATH_
swift package tools-version
# should be 4.0.0

vapor clean
vapor update
vapor --version

# Vapor Toolbox: 3.1.2
# Vapor Framework: 2.3.0
  1. 再建一次。

StackOverflow 这里上有更多关于使用Xcode 9和Swift 4与Vapor 2的注释。

GitHub存储库蒸气示例实验室有几个已迁移到Vapor 2和Swift 4的示例项目。

票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47243815

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档