【问题标题】:iOS test target build breaks, library not getting built for right architectureiOS 测试目标构建中断,没有为正确的架构构建库
【发布时间】: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
  • 感谢您的回复,但不幸的是,这不是问题。

标签: objective-c linker-errors


【解决方案1】:

所以事实证明,事情没有建立的原因是(我不知道)我的团队手动管理标题搜索路径。我鼓励任何在团队中工作的人检查主要目标内的标题搜索路径,看看它们是否都是单独添加的。如果是,您同样需要在测试目标中手动添加任何特定于测试的标头。

【讨论】:

  • 你好,需要在测试用例中添加libj2objc_main.a的所有头文件吗?
猜你喜欢
  • 2014-09-24
  • 1970-01-01
  • 1970-01-01
  • 2014-05-24
  • 2016-02-08
  • 1970-01-01
  • 2021-12-25
  • 1970-01-01
  • 2017-11-29
相关资源
最近更新 更多