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 架构。您应该再次检查您的配置或其他库。
我的项目是用 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 架构。您应该再次检查您的配置或其他库。