我在为我的项目创建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
答案 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平台构建所需的信息。