将单元测试目标添加到Xcode - 无法导入桥接头文件的问题不会消失。

12 浏览
0 Comments

将单元测试目标添加到Xcode - 无法导入桥接头文件的问题不会消失。

我向我的Xcode项目添加了一个新的测试目标。我的项目中有Swift代码和Objective-C代码,并且有一个桥接头文件。在将桥接头文件添加到UnitTesting的构建设置中或使用import MyTarget时,我收到以下错误信息:

无法导入桥接头文件

我尝试过:

  • 将桥接头文件添加到项目、单元测试和主目标的构建设置中。
  • defines modules更改为Yes
  • 将桥接头文件移动到根文件夹。

我还尝试过创建一个样本项目,它构建并正常工作。但是在这一点上,将我所拥有的一切移植到一个全新的干净项目中不是一个选择。

0
0 Comments

问题的原因是在Xcode中添加了单元测试目标后,导入桥接头文件失败。解决方法可以通过修改Podfile文件或手动设置搜索路径来解决。

如果使用CocoaPods作为包管理器,可以在Podfile文件中添加以下内容:

target 'YourProductTests' do
    inherit! :search_paths
    # Pods for testing
end

然后运行`pod install`命令。

如果以上方法不起作用,可以尝试手动设置搜索路径:

1. 点击测试目标(Test target)-> Build Setting -> 选项卡: All & Combined -> Swift Compiler -> Code Generation -> Objective-C Bridging Header : 添加你的xxx-bridging-header文件。

2. 检查"Search Path",根据你的主目标设置Framework Search PathHeader Search PathsLibrary Search Path的值。可能会有一些搜索路径丢失,需要手动添加。

这种方法对我有效,我没有使用CocoaPods。

这个方法有效。是否有关于这个问题的文档?我如何了解更多关于为什么需要使用inherit! : search_paths的信息?

非常感谢这个解决方法!非常好用!

0
0 Comments

问题出现的原因:

- 在Xcode中添加了单元测试目标后,可能会出现“Failed to import bridging header”的错误。

解决方法:

1. 在项目中选择“Build settings”。

2. 搜索“Defines module”并将其设置为“YES”。

3. 复制Objective-C bridging header的路径。

4. 选择测试目标,进入“Build setting”。

5. 在“Swift compiler - General - Objective-C bridging header”中设置Bridging header的路径。

6. 确保测试目标的“Header Search Paths”中包含了iOS目标中的所有头文件。如果有头文件缺失,添加它们。

7. 进行构建。

参考链接:点击此处查看链接(链接已过时)。

0
0 Comments

这里给出了一个解决方案,即将测试目标(test target)移动到产品目标(product target)内部。具体代码如下:

target 'YourProduct' do
   # 产品的 Pods
   target 'YourProductTests' do
      inherit! :search_paths
      # 产品测试的 Pods
   end
end

但是另一种方式并没有起作用:

target 'YourProduct' do
   # 产品的 Pods
end
target 'YourProductTests' do
   inherit! :search_paths
   # 产品测试的 Pods
end

最后,有人确认这个解决方案有效,并希望如果知道原因的话,请留言说明。

0