Ios7 链接器错误发生在通过cocoapods更新KIF框架后运行和测试Xcode工作区时
我有一个Xcode工作区,我在其中更新到KIF 2.0(通过pod文件中的终端和pod'KIF'进行pod更新),之后我按照Cocoapods部分提供的说明配置了工作区)。但是当我尝试执行项目并运行测试目标时,它抛出了一个错误Ios7 链接器错误发生在通过cocoapods更新KIF框架后运行和测试Xcode工作区时,ios7,xcode5,cocoapods,kif-framework,kif,Ios7,Xcode5,Cocoapods,Kif Framework,Kif,我有一个Xcode工作区,我在其中更新到KIF 2.0(通过pod文件中的终端和pod'KIF'进行pod更新),之后我按照Cocoapods部分提供的说明配置了工作区)。但是当我尝试执行项目并运行测试目标时,它抛出了一个错误 ld: building for iOS Simulator, but linking against dylib built for MacOSX file '/Applications/Xcode.app/Contents/Developer/Library/Fram
ld: building for iOS Simulator, but linking against dylib built for MacOSX file '/Applications/Xcode.app/Contents/Developer/Library/Frameworks/SenTestingKit.framework/SenTestingKit' for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
我还检查了此链接:。但问题依然存在
我怎样才能纠正它?下面提供了屏幕截图
当我尝试使用iPhone5运行它时,它显示了5个链接器错误,例如
ld: warning: ignoring file /Applications/Xcode.app/Contents/Developer/Library/Frameworks/SenTestingKit.framework/SenTestingKit, missing required architecture armv7s in file /Applications/Xcode.app/Contents/Developer/Library/Frameworks/SenTestingKit.framework/SenTestingKit (2 slices)
Undefined symbols for architecture armv7s:
"_OBJC_METACLASS_$_SenTestCase", referenced from:
_OBJC_METACLASS_$_KIFTestCase in libPods.a(KIFTestCase.o)
"_OBJC_CLASS_$_SenTestCase", referenced from:
_OBJC_CLASS_$_KIFTestCase in libPods.a(KIFTestCase.o)
l_OBJC_$_CATEGORY_SenTestCase_$_KIFAdditions in libPods.a(SenTestCase-KIFAdditions.o)
"_SenTestToolKey", referenced from:
+[KIFTestActor load] in libPods.a(KIFTestActor.o)
"_SenSelfTestMain", referenced from:
+[KIFTestActor load] in libPods.a(KIFTestActor.o)
ld: symbol(s) not found for architecture armv7s
clang: error: linker command failed with exit code 1 (use -v to see invocation)
转到您的目标设置,添加SentTestingKit以将二进制文件链接到库。最新的cocoa pods版本也有同样的问题 您可以通过以下步骤解决此问题:
- 选择Pods项目
- 点击构建设置
- 仅将构建活动体系结构更改为“否”
- 我在同事的帮助下解决了这个问题。
两个步骤:
1、 只需将cocoapods更新为0.29.0,因为0.29.0刚刚修复了一个bug,更多详细信息,请参阅:
使用命令:
sudogem安装cocoapod
吊舱安装
吊舱更新
2、 如果您想在ios设备上运行应用程序,只需将构建设置->体系结构,其值更改为(标准体系结构(armv7,armv7s)),删除XCTest框架对我来说很有效。我知道这可能是您不想做的事情。将SenTestingKit框架添加到库中不会有任何区别(好的,然后转到项目目标上“信息”选项卡下的“配置”,公开调试配置,然后选择KIF Bundle测试目标并将其指向右侧的KIF pod配置文件。它应该类似于,
Pods Pods.config
。在我的项目目标上的“信息”选项卡上的“自定义iOS目标属性”下,我可以看到一个配置文件。)y,并将其设置为${CONFIGURATION}。这就是您指定的吗?我在测试目标上添加了一个“libPods MyProjectTests KIF.a”到链接二进制文件与库
,它解决了问题。我做了与您提到的相同的事情。但它仍然显示相同的问题。我已重新启动Xcode 5并尝试再次运行它。但问题仍然存在:(在我所有目标的项目中,build_activ_arch_only debug部分设置为Yes。奇怪,你确定你设置了Pods项目的键而不是你的Nexercise_iPhone项目吗?是的。我已经将Nexercise_iPhone项目build_active_arch_only设置为No,将Pods项目设置为Yes。你应该只从Pods项目更改build active Architecture)t改为“否”而不是“是”