目录
- 出现的问题
- 解决方法
- 延伸
1. 出现的问题
由于公司是组件化开发,每个组件都是以 CocoaPod 的形式来依赖的,所以每次开发完成都要进行 pod 的本地校验,这次整合了一个静态库,但是在校验的时候无法通过,原因如下:
Undefined symbols for architecture i386:
"_sp_font_create_base_font", referenced from:
_KGPDFPDFAddWaterMarkToPage in libiAppPDF.a(KGPDFPage.o)
_KGPDFPDFAddWaterMarkToDocument in libiAppPDF.a(KGPDFPage.o)
(此处省略一大堆报错)
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
** BUILD FAILED **
但是通过 lipo -info
命令发现其实该 SDK 是支持 i386 架构的,因此陷入困境。
2. 解决方法
我通过在 podspec 里面设置来绕过 i386
模拟器架构的编译。在 podspec 文件内加入以下代码:
s.pod_target_xcconfig = { 'VALID_ARCHS' => 'arm64 armv7 armv7s x86_64' }
网友评论