Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/99.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 构建失败:没有这样的模块';基夫';_Ios_Cocoapods_Kif - Fatal编程技术网

Ios 构建失败:没有这样的模块';基夫';

Ios 构建失败:没有这样的模块';基夫';,ios,cocoapods,kif,Ios,Cocoapods,Kif,在我的Swift项目中尝试引用KIF时,我遇到了一个零星的问题 我的项目在我完成“清理”后停止编译,并一直给我错误:没有这样的模块“KIF” 以下是KIF的cocoapods文件条目: target 'MyProjectTests', :exclusive => true do pod 'KIF', '~> 3.0', :configurations => ['Debug','QA'] end (这是推荐的cocoapods配置。) 我可以通过将cocoapods条目

在我的Swift项目中尝试引用KIF时,我遇到了一个零星的问题

我的项目在我完成“清理”后停止编译,并一直给我错误:
没有这样的模块“KIF”

以下是KIF的cocoapods文件条目:

target 'MyProjectTests', :exclusive => true do
    pod 'KIF', '~> 3.0', :configurations => ['Debug','QA']
end
(这是推荐的cocoapods配置。)

我可以通过将cocoapods条目从上面更改为:

pod 'KIF', '~> 3.0'
但项目在尝试运行时崩溃:

dyld: Library not loaded: @rpath/XCTest.framework/XCTest
  Referenced from: /Users/albertbori/Library/Developer/CoreSimulator/Devices/29008343-5A97-47FB-B0E6-66D18A331BDA/data/Containers/Bundle/Application/C0E16F80-9A08-4228-96F7-8A24F08AB066/MyProject.app/Frameworks/KIF.framework/KIF
  Reason: image not found
然后,如果我将其切换回原始配置,并执行
pod安装
,使用KIF进行测试将再次生效

如何正确引用KIF以确保使用该框架进行稳定的构建和开发?

在CocoaPods问题跟踪器上发布后,帮助我意识到我无意中双重链接了POD

下面是我在一个示例项目中解决的问题

总之,如果您希望同时链接根项目和测试项目,但有条件地向测试目标添加一个额外的pod,则pod文件应该如下所示:

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'

use_frameworks!

pod 'MBProgressHUD', '~> 0.8'
pod 'Locksmith'

target 'catch22Tests' do
  pod 'KIF', '~> 3.0'
end

在这种情况下,您不想使用:
link_与'catch22','catch22Tests'
或者它将链接
catch22Tests
两次。

查看KIF的pod规范,这似乎是因为它们将
框架搜索路径
覆盖为自定义值。我认为其中不包括XTest。是的,我假设这是因为他们预期您将使用
target'MyProjectTests',:exclusive=>true do
条件将其排除在部署之外。我就是不能用那个条件编译它。