搜索
您的当前位置:首页正文

cocoapods swift库静态库之旅

来源:哗拓教育

在cocoapods1.4 之前 对于pods库集成swift库 都是需要我们设置 !use_framework ,这样设置之后所有的pods库都必须使用动态库,但这就带来一个问题,如果我需要集成一个静态库怎么办?
水平有限,我们之前只有两种方案:

  • 静态库放入主工程中,然后用protocol 包住静态库的方法再发布一个不包含该静态库的协议库,这样各个组件可以调用
  • 包装静态库为动态库。
  • pods 1.4 有了实验性质的打包静态库,但是坑非常多

正好这时候cocoapods 1.5发布 文章发布时为1.5.3 大问题基本已经解决。遂采取社区的pods方案。
其实很简单
1 升级pods
gem install cocoapods
2 自己组件库的podsepc 添加s.static_framework = true
这里有个问题说下,显然 很多第三方你发不了podspec,所以需要对主工程的podfile 做些改造。

pre_install do |installer|

Pod::PodTarget.send(:define_method, :static_framework?) { return true }
end

添加这个代码 我们可以把所有的pods库都设为静态库。

3 podfile 里添加 use_modular_headers!
或者你可以增对单独的库使用 :modular_headers => true

Top