iPhone单元测试链接问题,can';找不到DevToolsBundleInjection.framework

iPhone单元测试链接问题,can';找不到DevToolsBundleInjection.framework,iphone,unit-testing,Iphone,Unit Testing,我正在尝试为我的iphone应用程序设置应用程序单元测试。因此,我制作了一个应用程序目标的副本,以及一个单元测试包目标,如苹果的文档中所述() 按照苹果的指示,我无法在单元测试中引用我的类,因此我使用“bundle Loader”构建设置将应用程序链接到单元测试包中,并将主要目标设置为导出符号。这解决了编译时错误,在我更改它之后,它立即工作并执行了我的测试。但是,一旦我再次清理和构建,当我尝试在设备上运行时,我开始出现以下错误: Unable to read symbols for "/Deve

我正在尝试为我的iphone应用程序设置应用程序单元测试。因此,我制作了一个应用程序目标的副本,以及一个单元测试包目标,如苹果的文档中所述()

按照苹果的指示,我无法在单元测试中引用我的类,因此我使用“bundle Loader”构建设置将应用程序链接到单元测试包中,并将主要目标设置为导出符号。这解决了编译时错误,在我更改它之后,它立即工作并执行了我的测试。但是,一旦我再次清理和构建,当我尝试在设备上运行时,我开始出现以下错误:

Unable to read symbols for "/Developer/Platforms/iPhoneOS.platform/DeviceSupport/3.1 (7C144)/Symbols/Developer/Library/PrivateFrameworks/DevToolsBundleInjection.framework/DevToolsBundleInjection" (file not found).
文件确实不存在。我在下面找到了.framework文件: /Xcode3.1.4/Library/privateframes privateframes

并作了象征性的联系。然后运行应用程序时表示无法链接应用程序的文件:

010-01-25 20:19:22.330 SmokeyTheBear[5808:207] Error loading /private/var/mobile/Applications/26E1F8F4-6444-415B-84CB-BB161DBA29E9/SmokeyTheBear.app/LogicTests.octest/LogicTests:  dlopen(/private/var/mobile/Applications/26E1F8F4-6444-415B-84CB-BB161DBA29E9/SmokeyTheBear.app/LogicTests.octest/LogicTests, 262): Symbol not found: _OBJC_CLASS_$_AppDelegate
  Referenced from: /private/var/mobile/Applications/26E1F8F4-6444-415B-84CB-BB161DBA29E9/SmokeyTheBear.app/LogicTests.octest/LogicTests
  Expected in: /var/mobile/Applications/26E1F8F4-6444-415B-84CB-BB161DBA29E9/SmokeyTheBear.app/UDorse
 in /private/var/mobile/Applications/26E1F8F4-6444-415B-84CB-BB161DBA29E9/SmokeyTheBear.app/LogicTests.octest/LogicTests
DevToolsBundleInjection: Error loading bundle '/private/var/mobile/Applications/26E1F8F4-6444-415B-84CB-BB161DBA29E9/SmokeyTheBear.app/LogicTests.octest'

然后,我切换回运行应用程序的正常目标,它运行了我所有的单元测试并退出!我再次清理并构建,然后正常目标正常运行。单元测试目标仍然不起作用

您首先是如何链接框架的?您不必创建符号链接才能使其正常工作。切换到测试包目标并打开Project->编辑活动目标。确保库位于“常规”选项卡的“链接库”部分。如果是,请删除/重新添加它。这为我解决了类似的库链接问题。

嘿,斯莫奇熊,你检查过我在这个问题上的经历了吗:


我必须指定捆绑加载程序以使内容正确链接。

检查项目目标的生成设置

查找“默认情况下隐藏的符号”设置

确保至少在调试版本中将其设置为NO,您应该使用该版本进行测试


如果没有此设置(可能来自旧的Xcode项目),测试代码将无法自动链接到项目代码。

您的具体程度不够,我无法理解您的意思。当你说框架时,你是指senstesting还是devtoolsbundleinjection?所有文档都没有特别提到链接devtoolsbundleinjection,而且它在错误的文件夹中,而且它短暂地起作用,这似乎很奇怪。无论如何,我已经尝试在单元测试包和应用程序目标以及所有可能的组合中链接sentesting和devtools。如果它编译,我会得到与上面相同的结果,这取决于符号链接是否存在。(看起来它只是另一个框架,您将其包含在目标的链接库中)您是否检查了您的DYLD_INSERT_库和DYLD_FALLBACK_framework_PATH环境变量?从这里开始:是的,这是在xcode包含应用程序单元测试框架之前编写的,所以它现在自动生成它们。但我试着按照他的建议调整它们,并给出绝对路径。同样的结果。那就没办法了,抱歉。我会从一开始就再次尝试,创建一个新的目标,确保它使用的是正确的iPhone OS版本,等等。但你可能已经尝试过了。是的,我已经反复尝试过了,也尝试过使用GTM单元测试包装器。一直被卡住。谢谢你的尝试。嗨,Ohhorob。正如我在问题中所说,我指定了Bundle加载程序,它允许编译。但在运行时,调试控制台报告它找不到应用程序委托和测试使用的其他文件。