加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

objective-c – iOS UnitTests:无法链接到我的Application目标

发布时间:2020-12-14 19:23:00 所属栏目:百科 来源:网络整理
导读:建立: Xcode 4.5.2(4G2008a) OS X 10.7.5 我有一个Xcode项目,具有正常的iOS应用程序目标.我正在尝试将ApplicationTests单元测试包(不是LogicTests包)添加为described by Apple’s documentation. 我已仔细按照文档中提供的步骤进行操作,并重新检查了几次.但
建立:
Xcode 4.5.2(4G2008a)
OS X 10.7.5

我有一个Xcode项目,具有正常的iOS应用程序目标.我正在尝试将ApplicationTests单元测试包(不是LogicTests包)添加为described by Apple’s documentation.

我已仔细按照文档中提供的步骤进行操作,并重新检查了几次.但是,我无法构建ApplicationTests目标…当尝试链接到我的Appliation类之一时,它失败并出现链接器错误.似乎设置ApplicationTests目标的Bundle Loader构建设置不起作用.但正如Apple的文档所描述的那样,AFAICT,我已经正确设置了它.

我的再生步骤:

>按照Apple’s documentation for setting up an ApplicationTests bundle.
>在ApplicationTests目标中编写单元测试方法,该目标从Application目标(例如MyAppClass)导入并练习一个类.
>在Scheme弹出窗口中选择Application Target,在运行目标弹出窗口中选择iPhone 6.0模拟器
>产品>测试

预期:
模拟器应该启动,我的ApplicationTests应该运行.

实际:
ApplicationTests目标无法构建,并出现以下错误:

Undefined symbols for architecture i386:
  "_OBJC_CLASS_$_MyAppClass",referenced from:
      objc-class-ref in ApplicationTests.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

如果我在单元测试中删除对MyAppClass的引用,ApplicationTests包将构建并成功运行.

再次,似乎我没有在我的ApplicationTests目标中正确设置Bundle Loader构建设置,但我已经重新检查了,我似乎正确地遵循了Apple的指令.

如果我的ApplicationTests目标无法链接到我的Application目标中的符号,我可能做错了什么?

更新:我还尝试使用Application和ApplicationTests目标从头开始创建新的虚拟项目.在虚拟项目中,我将一个MyAppClass类添加到Application目标,并且能够链接到它并成功运行使用虚拟ApplicationTests目标中的MyAppClass的单??元测试.

因此,我的虚拟项目中的应用程序测试工作.但它们在我的真实项目中不起作用.我已经比较了虚拟和真实项目中的目标,并且找不到会导致我的真实项目出现此问题的显着差异.

我真正的项目已经很老了(但也非常复杂,所以很难重新开始).我想知道该项目的旧版是否阻止这个相对较新的功能工作?

在我看来,我的实际项目中的一个目标中存在构建设置问题.但我找不到它.

解决方法

你能尝试用Xcode 5.0打开项目吗?在项目/目标设置中选择单元测试目标,打开“常规”选项卡,检查所选的“目标”是否是您的主应用目标.

这就是Xcode获取链接到单元测试包加载器的信息的地方.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读