【问题标题】:Swift Package fails to compile for watchOSSwift 包无法为 watchOS 编译
【发布时间】:2019-12-27 08:10:15
【问题描述】:

选择 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 编译吗?

【问题讨论】:

  • 你好@TruMan1,你找到解决办法了吗?
  • 不,这仍然是一个问题,不幸的是,我用#if !os(watchOS) 包装了我所有的测试。

标签: swift xctest watchos swift-package-manager


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-10
    • 2014-08-15
    • 1970-01-01
    • 1970-01-01
    • 2020-01-27
    • 2019-08-17
    • 2019-02-24
    相关资源
    最近更新 更多