Swift 包无法为 watchOS 编译

Tru*_*an1 10 xctest swift watchos swift-package-manager

选择 watchOS 目标时,我的 Swift 包无法编译。

在此处输入图片说明

错误消息是Failed to load module 'XCTest',构建错误详细信息是:

/Applications/Xcode-beta.app/Contents/Developer/Platforms/WatchSimulator.platform/Developer/SDKs/WatchSimulator6.0.sdk/usr/lib/swift/XCTest.swiftmodule/i386.swiftinterface:6:19: XCTest is not available when building for watchOS Simulator. Consider using#if targetEnvironment(macCatalyst)to conditionally import this framework when building for Mac Catalyst.

watchOS 中没有 XCTest,所以我要让我的 Swift 包为 watchOS 编译吗?

Nei*_*ith 1

这完全是一种黑客行为,但我在开发过程中解决这个问题的一种方法是暂时注释掉.testTarget(name:dependencies:)Package.swift 文件中的类型方法。之后,清理构建文件夹,然后构建并运行 watchOS。

我还#warning为自己留下了一个注释,以确保在对 Swift 包进行任何提交之前取消注释。

(值得补充的是,这是将所有测试代码包装在#if !os(watchOS)条件语句中的补充。)