在iOS逻辑测试中使用CocoaPods时未找到库

我正在尝试针对我的项目中的类使用我的podspec中的一些库中的功能编写一些iOS逻辑测试。 我使用Xcode提供的标准单元测试包(尽管不是应用程序测试,只是单元测试)。

例如,我使用魔法记录,并且在我的podspec中链接了该库。 它存在于我工作区中的Pods项目中,并且在应用程序在模拟器或设备上运行时按预期工作。 当我尝试链接到使用魔法记录的对象时,我得到一个链接器错误,指出它无法从魔法记录中找到选择器。 我尝试更新我的逻辑测试包中的HEADER_SEARCH_PATH,甚至将其编码到由CocoaPods创建的头文件目录中,但没有运气。

我可以针对没有使用CocoaPods库的类运行单元测试。

我是否在谈论这个错误? 我应该做些别的事情让编译器看到CocoaPods库吗?


CocoaPods 1.0改变了这个语法。 现在看起来像这样:

def shared_pods
    pod 'SSKeychain', '~> 0.1.4'
    ...
end

target 'Sail' do
    shared_pods
end

target 'Sail-iOS' do
    shared_pods
end

Pre CocoaPods 1.0回答

你想用什么link_withPodfile 。 就像是:

link_with 'MainTarget', 'MainTargetTests'

然后再次运行pod install


我想通过查看我的应用程序的主要目标是如何从CocoaPods库接收设置来了解这一点。 CocoaPods包含一个名为Pods.xcconfig的.xcconfig文件。 该文件包含所有标题搜索路径。

如果您在项目导航器中查看项目并单击“信息”选项卡,则会在顶部显示您的构建配置。 如果您为不同的配置打开显示三角形,则会在您的主要目标下列出豆荚。 我不得不单击下拉菜单并将Pod添加到逻辑测试目标。

配置快照

我还必须从我的主目标中复制$(inherited)${PODS_HEADERS_SEARCH_PATHS}的设置,并将它们复制到Build Settings / HEADER_SEARCH_PATHS下的逻辑测试目标中。

最后,我必须在链接二进制与库生成阶段为我的逻辑测试目标添加libPods.a。

希望这能够帮助别人。


我在这里找到了一个解决方案使用CocoaPods进行单元测试:

在Xcode中打开项目文件,然后选择Project(不是目标),在右侧面板中有一个名为Configurations的部分。 在“基于配置文件”列中为您的测试目标选择豆荚。

在这里输入图像描述

链接地址: http://www.djcxy.com/p/89631.html

上一篇: Libraries not found when using CocoaPods with iOS logic tests

下一篇: Setting a custom background color on Actionbar ShareActionProvider dropdownlist