CocoaPod 本地校验出现 i386 错误

目录

  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编译&只能真机运行的库

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容