由于某些Swift版本问题,构建XCTest模块失败?

11

我认为这是最近一次XCode更新时发生的。我已经尝试了清理和重建,但都没有效果...

Failed to build module 'XCTest' from its module interface; 
the compiler that produced it, 
'Apple Swift version 5.3 (swiftlang-1200.2.26.4 clang-1200.0.29.4)',
may have used features that aren't supported by this compiler, 
'Apple Swift version 5.3 (swiftlang-1200.0.29.2 clang-1200.0.30.1)'

你解决了吗?请通过回答问题来帮助其他人。 - akshay bhange
你是怎么解决这个问题的?我在为Fastlane快照构建文件后收到了相同的消息,但我不知道该如何修复它。 - Eamonn
请看我在 @Eamonn 下面的回答。 - Maximilian Litteral
很遗憾,这个问题仍然没有被解决,至今为止下面的回复都没有起作用。 - saigafreak
7个回答

9

点击文件,打开右侧的检查器,确保该文件已包括在测试目标中。


我无法实现这个答案,因为一开始我没有 单元测试目标。 要创建一个单元测试目标,在 Xcode 中转到下面显示的(1)和(2)。 点击“新建单元测试目标”。 现在,您可以点击文件,在右侧打开检查器,并确保该文件包含在测试目标中。 - user3211306

3

看起来您已经创建了一个普通的Swift文件作为测试用例类(File->New->Swift File)。我已经通过使用 "File->New->Unit Test Case Class" 创建测试类来解决了问题。


1
今天早上我创建了一个新的单元测试文件时遇到了相同的错误。该文件被创建在项目导航树的某个地方 - 可能是在我想要测试的结构旁边。我将其删除了。
今晚我再次尝试,但是通过在Tests文件夹中使用“文件 - > 新建 - > ...”创建了单元测试文件 - 现在它可以工作了!

0

选择指定的文件并在文件检查器中检查目标成员身份。您应该选择正确的目标或模块。


0
当我手动添加了AppNameTests文件夹及其包括Info.plist在内的文件时,我遇到了相同的问题。
解决方案是删除所有这些手动创建的文件。然后进入AppName.xcodeproj,选择General并通过点击“+”添加一个新的单元测试包到TARGETS中。然后,文件夹AppNameTests(或者你命名的文件夹)将出现在文件夹结构中,包括一个测试文件和Info.plist。由于我无法访问这些新文件,所以我不得不重新启动Xcode,然后一切都按预期工作。

-1
我通过更改我的测试目标的一些构建选项来解决了这个问题。
ENABLE_TESTING_SEARCH_PATHS = YES;
EXCLUDED_ARCHS = "x86_64-apple-ios-simulator";
BUILD_LIBRARY_FOR_DISTRIBUTION = NO;
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(EMBEDDED_CONTENT_CONTAINS_SWIFT)

-2

我假设你正在使用Xcode 12。你应该尝试使用Xcode 11。并确保在测试中使用iOS目标版本9.0。这对我有效。


欢迎来到SO!您为何建议使用Xcode 11?现在Xcode 12已经不再是BETA版本,应该用于最终用户的兼容性和稳定性。 - Harry J
你好,因为我已经解决了这个问题... 我使用的是Xcode 12。其次,Swift语言版本与Xcode 12相匹配。 - Cedric N

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接