iOS测试目标构建中断,库未能构建为正确的架构。

19 浏览
0 Comments

iOS测试目标构建中断,库未能构建为正确的架构。

我的项目包含两个目标,一个是主应用程序,另一个是用于测试的独立目标。主目标没有问题地构建,但测试目标出现以下链接器警告:

"ld: warning: ignoring file .../libj2objc_main.a, file was built for archive which is not the architecture being linked (i386)"

看起来这是一个常见的问题,有几篇文章提供了解决方案,从将“仅构建活动架构”标志设置为No(或Yes?)到使用Shell脚本强制Xcode构建一个fat二进制文件。(使用lipo我确认编译的.a文件只包含了x86_64二进制文件。)真奇怪的是,当我创建一个新的测试目标并运行默认的XCTest套件时,一切都构建得很好,但如果我尝试将Pods配置文件添加到测试目标的Info -> Configurations中,并再次运行测试,一切都会崩溃。在其他项目中从未出现过这个问题。

我的问题是为什么只有测试目标失败?我在常规和测试构建中使用相同的架构,所以为什么.a只在后者的情况下成为问题?

0
0 Comments

原因:主要原因是团队成员手动管理了头文件搜索路径,导致构建失败。

解决方法:建议团队成员检查主要目标中的头文件搜索路径,并确保它们都被逐个添加。如果是这种情况,同样需要在测试目标中手动添加任何特定于测试的头文件。

代码示例:

// 添加主要目标的头文件搜索路径

import UIKit

// 添加测试目标的特定头文件

@testable import YourApp

class YourAppTests: XCTestCase {

// 测试用例

}

0