我在我的Xcode项目中添加了一个新的测试目标。我的项目包含Swift代码和Objective-C代码,并且有一个桥接头文件。在UnitTesting的构建设置中添加桥接头文件,或者执行import MyTarget
时,我得到了错误:
无法导入桥接标头
我试过了:
- 正在将桥接信头加入至项目、公寓测试和主要目的的组建设定。
- 将
defines modules
变更为Yes
。 - 将桥接头文件移动到根文件夹。
我也试着做了一个示例项目,它构建和运行得很好。把我所有的东西都放到一个干净的新项目中是不可能的。
6条答案
按热度按时间gj3fmq9x1#
如果你使用CocoaPods作为软件包管理器,必须设置搜索路径等给予一个简单的方法,
尝试将此添加到您的播客文件中:
和
pod install
对我有用。
如果上述解决方案不适用于您,请尝试手动设置:
1.单击测试目标-〉构建设置-〉选项卡:所有组合(& C)-〉Swift编译器-代码生成-〉Objective-C桥接头:添加您的xxx桥接头
1.勾选“搜索路径”,根据您的主要目标设置
Framework Search Path
、Header Search Paths
、Library Search Path
的值。可能某些搜索路径在此处丢失,请重新手动添加。sigwle7e2#
@维克托Choy解决方案对我很有效,但我不得不将测试目标移动到产品目标内,如下所示:
这对我不起作用:
vq8itlhq3#
我也遇到了同样的问题。我做了以下操作,“无法导入桥接头”的问题就解决了。
操作步骤:
1.选择您的项目-〉构建设置-〉搜索'定义模块' -〉给予'YES'
1.复制Objective-C桥接标头路径
1.选择你的测试目标-〉构建设置-〉Swift编译器-〉通用-〉Objective-C桥接头-〉给予Bridging头路径。
1.请确保测试目标的'标头搜索路径'包含ios目标中的所有标头。如果缺少任何标头,请添加它们。
1.建立。
参考:Refer this link.
zzwlnbp84#
这可能对某些人有用:如果将单元测试目标添加到已经包含CocoaPods和一些Objective-C库pod的现有项目中。
以下步骤解决了***无法导入桥接标题***问题。
1.选择您的项目-〉构建设置-〉搜索“定义模块”-〉给予“是”
1.从'YourProduct'目标复制Objective-C桥接标头路径,并将其粘贴到'YourProductTests'目标的桥接标头路径中。
...
1.然后从项目的根文件夹执行“pod install”。这将填充“YourProductTests”的 * 标头搜索路径 *。
1.最后一步,请验证“YourProduct”和“YourProductTests”目标的 * 标头搜索路径 * 是否相似。
lb3vh1jj5#
在这一点上,我从来没有需要
import MyTarget
来让单元测试在Swift中工作。通用解决方案
$(SRCROOT)
引用桥接头路径,请确保将其评估为正确路径.xcodeproj
文件与你的工作项目文件进行比较,并匹配任何可能不同的相关值。桥接头系统并不完美,但这里有几个问题,我已经遇到。
nukf8bse6#
对我来说,在一个没有Cocoapods的项目中,我有一个地方,与其他类似的测试没有区别,在那里这个警告不会消失。
我清除它的方法是进入测试目标〉构建设置〉Objective-C桥接头,然后点击删除键(应该清除到头文件的链接)。