ios - 删除 DerivedData 文件夹后,单元测试无法编译,出现 'Apple Mach-O Linker' 错误

标签 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,并且项目文件已恢复,没有其他任何可能影响此的情况)

非常感谢

最佳答案

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

如果您想测试应用程序的多个方面,您可以设置“单元测试目标”。这将构建应用程序可执行文件,然后构建仅包含单元测试代码的测试包。在测试过程中,“测试代码”将被“注入(inject)”到应用程序可执行文件中。请注意,这种测试将启动您的应用程序。

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

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

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

  1. 打开方案编辑器:选择“项目”,然后命令“产品”->“方案”->“YourProject”。

    然后,选择“Build”方案,检查“Targets”列表中是否包含相应的Unit Test目标。还要检查是否为单元测试的目标设置了复选标记“测试”。

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

关于ios - 删除 DerivedData 文件夹后,单元测试无法编译,出现 'Apple Mach-O Linker' 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19764818/

相关文章:

ios - 模态视图 Controller - 如何显示和关闭

ios - Xcode "no such file or directory"如果文件名包含 $$ 符号?

ios - 'downloadURL( )' is deprecated: Use ` StorageReference.downloadURLWithCompletion()` 获取当前下载 URL。

objective-c - iOS7 SpriteKit 如何在恢复方法执行之前等待动画完成?

ios - 为 iOS8 移除 "heightForRowAtIndexPath"

ios - iPhone标签栏图标未对齐 - iOS 7

ios - 添加一个@property似乎给@interface的@implementation一个错误

ios - iPad 2 指南针?

ios - 设置 Windows Root View Controller 不起作用

ios - 当所有文本字段都填入uitableviewcell(SWIFT)时如何启用按钮