iOS 测试目标构建中断,没有为正确的架构构建库
Posted
技术标签:
【中文标题】iOS 测试目标构建中断,没有为正确的架构构建库【英文标题】:iOS test target build breaks, library not getting built for right architecture 【发布时间】:2014-04-07 16:58:42 【问题描述】:我的项目包含两个目标,主应用程序和一个单独的测试目标。主目标构建没有问题,但测试目标失败并出现以下链接器警告:
"ld: warning: ignoring file .../libj2objc_main.a, file was built for archive which is not the architecture being linked (i386)"
这似乎是一个常见问题,并且有几篇文章讨论了解决方案,从将“仅构建活动架构”标志设置为否(或者是吗?)到使用 shell 脚本强制 Xcode 构建一个胖二进制文件。 (使用lipo
我已经确认编译后的 .a 文件只包含 x86_64 二进制文件。)当我创建一个新的测试目标并运行默认的 XCTest 套件时,一切都构建得很好,但如果我尝试添加Pods 配置文件到 Info -> Configurations 中的测试目标,然后再次运行测试,一切都失败了。这在其他项目中从来都不是问题。
我的问题是为什么这只对测试目标失败?我在常规版本和测试版本中都使用相同的架构,那么为什么 .a
在后一种情况下只是一个问题?
【问题讨论】:
查看answer 感谢您的回复,但不幸的是,这不是问题。 【参考方案1】:所以事实证明,事情没有建立的原因是(我不知道)我的团队手动管理标题搜索路径。我鼓励任何在团队中工作的人检查主要目标内的标题搜索路径,看看它们是否都是单独添加的。如果是,您同样需要在测试目标中手动添加任何特定于测试的标头。
【讨论】:
你好,需要在测试用例中添加libj2objc_main.a的所有头文件吗?以上是关于iOS 测试目标构建中断,没有为正确的架构构建库的主要内容,如果未能解决你的问题,请参考以下文章
从目标文件列表 (*.o) 构建库 (lib.a) 的 makefile