Swift软件包管理器-语音相关性未加载

时间:2019-01-03 10:30:36

标签: swift swift4 swift4.2 swift-package-manager

我在为我的项目创建Swift软件包时遇到问题。我正在运行CocoaPods和Travis CI,并且都在畅快地工作,但是我现在也打算通过Swift Package Manager提供该项目。这是我遇到问题的地方。我的软件包文件如下所示:

// swift-tools-version:4.2
// The swift-tools-version declares the minimum version of Swift required to build this package.

import PackageDescription

let package = Package(
    name: "Voxosonus",
    products: [
        // Products define the executables and libraries produced by a package, and make them visible to other packages.
        .library(
            name: "Voxosonus",
            targets: ["Voxosonus"]),
    ],
    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: "Voxosonus",
            path: "Voxosonus"),
        .testTarget(
            name: "VoxosonusTests",
            dependencies: ["Voxosonus"],
            path: "VoxosonusTests"),
    ]
)

但是,当我运行swift build时,会遇到以下情况:

/Users/<hidden>/Documents/Projecten/Voxosonus/Voxosonus/SpeechRecognizer.swift:8:8: error: no such module 'Speech'
import Speech

我的问题是-为什么找不到“语音”模块?这是Apple本身的核心功能,到目前为止,互联网使我更加明智。有关该项目的一些细节:

构建目标:iOS 12.x

macOS:10.14

快速版本:4.2.1

1 个答案:

答案 0 :(得分:1)

Swift Package Manager Github中所述,您还不能定义 Swift软件包的目标平台:

  

目前,对于依赖UIKit尚无明确支持,   AppKit等,尽管如果导入这些模块应该可以   存在于正确的系统位置。我们将添加明确的支持   用于将来的系统依赖性。请注意,此时   软件包管理器不支持iOS,watchOS或tvOS平台。

因此,当您尝试使用 Xcode (或使用swift build命令)构建库时,编译器找不到 Speech 模块,因为它仅在iOS 10+上可用。

您可以检查此github project(swift-package-manager-ios),它提供了一个ruby脚本,可通过添加 Swift Package Manager 修改xcodeproj生成的{ tags: [ { type: mongoose.Schema.Types.ObjectId, ref: "Tag" } ], body: String } 。以便为iOS平台构建所需的信息。