在我创build一个新的scheme之后,xcode 4无法启动unit testing(带有链接器错误)

我的unit testing在xcode4中工作得很好,直到我不得不创build一个新的模式来编译一个包在我的设备上运行以进行testing。

我所做的只是创build一个新的目标和一个新的计划,现在我尝试运行unit testing,并得到以下错误:

Tests.octest的testing包无法加载,因为发生链接错误。 dyld很可能找不到与testing包链接的框架或库,可能是因为框架或库在链接时有不正确的安装path。

我打破了什么?

在将目标添加到现有项目之后,我也碰到了Xcode 4的问题。 我最终发现项目的Xcode DerivedData已经损坏。 通过删除这些数据,我导致Xcode重build数据,项目恢复正常。 我在我的家库文件夹(〜/ Library / Developer / Xcode / DerivedData /)中find了数据。

像@Haoest和@Peter DeWeese上面的评论回答1 – 当我改变产品名称时,我有完全相同的问题。

要解决这个问题,您需要转到testing目标的Build Settings选项卡,然后更改Linking部分 – Debug and Release软件包加载器设置。 如果您已重命名产品 – 应用程序的目录和名称可能都不正确。

感谢他们两人指出了这一点 – 但我认为这种情况下的替代解决scheme值得高于评论。

我尝试了一切(包括其他答案和那些http://twobitlabs.com/2011/06/adding-ocunit-to-an-existing-ios-project-with-xcode-4/ ),但终于find了不同的scheme:

将debugging目标的部署后处理(在“生成设置”的“部署”部分中)设置为NO。

在我这样做之前,可执行文件被剥离,链接将失败

Undefined symbols for architecture i386: "_OBJC_CLASS_$_SomeClassUnderTest", referenced from: objc-class-ref in SomeTest.o 

不pipeStrip Linked Product和Copy Debug Symbols在拷贝过程中是否设置为NO,都没有区别,只是改变了Deployment Postprocessing设置,最后确保这些符号没有被剥离。

相同的错误消息,在我的情况下,我没有链接在testing过程中需要的类之一。

我发现我的问题是我的debugging版本上启用了“链接时间优化”。 设置它没有解决问题。