删除DerivedData文件夹后,单元测试无法使用“Apple Mach-O Linker”错误进行编译

时间:2013-11-04 09:31:29

标签: ios xcode ios7 xcode5

我在下面的链接中尝试过每一个建议,没有任何解决方案。 (XCODE 5.0.1)

Solution 1

Solution 2

d: file not found: /Users/hooman/Library/Developer/Xcode/DerivedData/F11i-erlvxsqudsegbmckzxfxnvnxxumb/Build/Products/Debug-iphonesimulator/F11i.app/F11i
clang: error: linker command failed with exit code 1 (use -v to see invocation)

奇怪的是,当我看到这条道路时:

/Users/hooman/Library/Developer/Xcode/DerivedData/F11i-erlvxsqudsegbmckzxfxnvnxxumb/Build/Products/Debug-iphonesimulator/

我看到两个具有不同项目名称的文件(我相信它是以前的名字):

  

F09.app

     

F09.app.dSYM

但是XCODE似乎正在照顾

  

F11i.app

     

F11i.app.dSYM

在XCODE中我可以设置这些名称以便再次编译吗? (我检查了git,项目文件被还原,没有任何其他可能影响这个)

非常感谢

1 个答案:

答案 0 :(得分:3)

如果你想构建一个纯单元测试,它只是独立于使用它的应用程序测试一个类,你通常不会设置一个“单元测试”目标。为了正确构建单元测试包,您需要包含要测试的模块,并可能链接到所需的任何其他框架或库。此类测试将独立于您的应用运行。

如果要测试应用程序的多个方面,可以设置“单元测试目标”。这将构建应用程序可执行文件,然后构建仅包含单元测试代码的测试包。在测试期间,“测试代码”将“注入”应用程序可执行文件。请注意,此类测试将启动您的应用程序。

您可以在目标编辑器的“常规”选项卡中设置单元测试包的“目标”:

在左侧导航区域中选择项目,在目标编辑器中选择单元测试目标,选择“常规”选项卡,从弹出窗口中选择目标,或“无”。

如果您想将单元测试代码注入正在运行的应用程序,您可能还需要调整这些设置(注意:Xcode会将其设置为默认值):

  1. 打开Scheme Editor:选择Project,然后命令Product - >方案 - > “YourProject”。

    然后,选择“构建”方案,检查相应的单元测试目标是否包含在“目标”列表中。还要检查单元测试目标的复选标记“测试”。

  2. 在目标编辑器中,选择单元测试,选择“构建阶段”选项卡。检查您是否已将Unit Test的目标添加为“目标依赖项”。