使用 Swift 5.1 将另一个包作为 SPM 中的依赖项导入另一个包
Posted
技术标签:
【中文标题】使用 Swift 5.1 将另一个包作为 SPM 中的依赖项导入另一个包【英文标题】:Importing another Package as a Dependency in SPM into another Package, with Swift 5.1 【发布时间】:2019-11-15 21:36:20 【问题描述】:所以我使用 SPM(Swift 包管理器)来创建我自己的包库。我想在我的包中导入另一个包,以使用,如下图:
// swift-tools-version:5.1
// The swift-tools-version declares the minimum version of Swift required to build this package.
import PackageDescription
let package = Package(
name: "SwiftRecommendations",
platforms: [
.ios(.v13),
.macOS(.v10_13),
.tvOS(.v13)
],
products: [
// Products define the executables and libraries produced by a package, and make them visible to other packages.
.library(
name: "SwiftRecommendations",
targets: ["SwiftRecommendations"]),
],
dependencies: [
.package(
url: "https://github.com/apple/swift-log.git",
.branch("master")
)
],
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: "SwiftRecommendations",
dependencies: ["Logging"]),
.testTarget(
name: "SwiftRecommendationsTests",
dependencies: ["SwiftRecommendations", "Logging"]),
]
)
我试图在我的测试文件中导入和运行 Logger,但在我添加导入语句后它抱怨 No such module Logger。我可以在我的 Xcode 中看到 Swift Package Dependencies 显示 swift-log
,所以不确定发生了什么。
我的测试类如下:
import XCTest
import Logger
@testable import SwiftRecommendations
final class SwiftRecommendationsTests: XCTestCase
static var tokenService: TokenService?
var logger: Logger?
override func setUp()
super.setUp()
self.logger = Logger(label: "com.samba.tv.recommendations")
【问题讨论】:
你能展示你的导入吗?导入不应该称为 Logging 吗? @Robin 我更新了代码以显示我的导入语句。 根据library instructions from Apple 应该是Logging。一个有趣的事实是,在我的正常目标(不是测试)中它不会抱怨。 其实@robin 很尴尬,但你是对的,import 语句是错误的。抱歉在屏幕前太长了。尴尬:) 【参考方案1】:哦,天哪,我确实有错误的导入语句。真的很抱歉... :( 应该是import Logging
而不是import Logger
。
【讨论】:
以上是关于使用 Swift 5.1 将另一个包作为 SPM 中的依赖项导入另一个包的主要内容,如果未能解决你的问题,请参考以下文章
使用 Swift 5.1 编译的模块不能被 Swift 5.1.2 编译器导入
Swift 包显示错误为 No such module for added dependency