CocoaPod 本地校验出现 i386 错误

2019-06-19  本文已影响0人  RadioHeadache

目录

  1. 出现的问题
  2. 解决方法
  3. 延伸

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' }

3. 延伸

iOS 中的 armv7,armv7s,arm64,i386,x86_64 都是什么

iOS开发之CocoaPods:进阶篇 搭建私有库

解决pod lib lint/repo push不支持i386编译&只能真机运行的库

上一篇下一篇

猜你喜欢

热点阅读