iOS 使用 OCMock 静态库进行单元测试(-ObjC 标志问题)

iOS unit test with OCMock static library (the -ObjC flag issue)

我的项目是用 Objective-C 开发的。我有一个第三方框架在使用(我这里命名为thirdparty,抱歉,我不知道第三方的名字)。

现在,我想为我的项目编写单元测试代码。我使用 OCMock static library & I followed its instruction 将这个静态库设置到我的 iOS 项目中。正如您在他们的说明中看到的,它要求我在 Build Settings -> Other Linker Flags 中添加 -ObjC linker flag。

但是当我构建我的项目时,我得到 以下错误:

ld: warning: Auto-Linking supplied '../thirdparty.framework/thirdparty', 
missing required architecture i386 in file ../thirdparty.framework/thirdparty (2 slices)

但是,如果我从 Build Settings -> Other Linker Flags 中删除添加的 -ObjC linker flag,上面的错误就消失了,我的项目就可以成功构建了(但是当 运行 我的单元测试时,OCMock 库抛出错误,要求我添加 -ObjC 链接器标志)

关于错误,我假设您的第 3 个库不支持 i386 架构。我猜你在模拟器上 运行 时遇到过这个问题。您应该再次检查您的库是否支持目标架构。这是要检查的脚本

xcrun -sdk iphoneos lipo -info $(FILENAME)

结果是这样的

所以我认为问题可能不是来自 OCMock 静态库,只要它支持 i386 架构。您应该再次检查您的配置或其他库。