我正在尝试为我的iphone应用程序设置应用程序单元测试。因此,我复制了应用程序目标,并按照苹果文档(http://developer.apple.com/iphone/library/documentation/Xcode/Conceptual/iphone_development/135-Unit_Testing_Applications/unit_testing_applications.html)中的描述创建了单元测试包目标。
在遵循Apple的指导之后,我无法在单元测试中引用我的类,所以我使用"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/PrivateFrameworks PrivateFrameworks
并做了一个符号链接。然后运行应用程序说它不能链接应用程序的文件:
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'然后,我切换回运行应用程序的正常目标,它运行了我的所有单元测试并退出!我再次清理并构建,然后正常的目标运行正常。单元测试目标仍然不起作用。
发布于 2013-09-25 03:21:16
检查项目目标的生成设置。
查找"Symbols Hidden by Default“设置。
确保将其设置为NO,至少对于调试版本是这样,您应该将其用于测试。
如果没有此设置(可能来自较旧的Xcode项目),测试代码将不会自动链接到项目代码。
发布于 2010-02-05 23:36:17
首先,你是如何链接框架的?你不应该为了让它工作而创建一个符号链接。切换到您的测试包目标并打开Project->Edit Active Target。确保该库位于“常规”选项卡的“链接库”部分。如果是,请删除/重新添加它。这为我修复了类似的库链接问题。
发布于 2010-02-06 11:06:14
嘿,smokey_the_bear,你有没有检查过我的问题:
Linker Error: iPhone Unit Test Bundle referencing App classes
我必须指定捆绑包加载器才能正确链接。
https://stackoverflow.com/questions/2137521
复制相似问题