Xcode:运行 XC 单元测试时,模块名称“”不是有效标识符
Posted
技术标签:
【中文标题】Xcode:运行 XC 单元测试时,模块名称“”不是有效标识符【英文标题】:Xcode : module name "" is not a valid identifier while running XC unit test 【发布时间】:2017-07-24 20:49:07 【问题描述】:尝试使用SDWebImage
设置我的 CocoaPods 运行 XCTest,我只能看到如下错误。有什么建议吗?
:0: 错误:模块名称“”不是有效的标识符 命令 /Applications/Xcode8.3.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc 失败,退出代码为 1
但一旦我编辑方案并取消选中构建中的测试,我就可以在模拟器上运行应用程序,但无法运行测试。
【问题讨论】:
您是否尝试过清理构建文件夹?在选项下 是否进行了干净的构建,如果测试目标缺少产品模块名称,它将无法工作 【参考方案1】:始终确保您的所有测试目标都将PRODUCT_MODULE_NAME
设置为$(PRODUCT_NAME)
【讨论】:
我可以将 PRODUCT_MODULE_NAME 添加到测试目标吗?我得到 There are already PRODUCT_MODULE_NAME 所以我无法将其添加到测试目标。 并确保 PRODUCT_NAME 不包含破折号之类的字符。【参考方案2】:在从 Xcode 11 迁移到 11.2 时,我可以按照以下步骤解决问题:
-
选择目标
转到构建设置。
然后向下滚动到包装
产品模块名称
如果模块名称中有空格,请将其替换为下划线
【讨论】:
【参考方案3】:在这种情况下,您需要$(PRODUCT_NAME:c99extidentifier)
为PRODUCT_MODULE_NAME
。
c99extidentifier
允许在PRODUCT_NAME
中使用破折号。
这也是可以在每个目标中继承的默认项目值。
【讨论】:
以上是关于Xcode:运行 XC 单元测试时,模块名称“”不是有效标识符的主要内容,如果未能解决你的问题,请参考以下文章
在 Xcode 单元测试中使用 @testable 时“没有这样的模块”
在 Xcode 中运行 iOS 单元测试时引用 _main 的链接器错误
如何修复 @testable 导入无法在 xcode 单元测试中加载模块