打包静态库--包含三方依赖

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/YangT_T/article/details/76998741

最近公司有个新需求,要将已经写好的一个项目打包成静态库,供本公司及其他公司使用。我们的静态库可能会依赖很多三方库,把这些依赖都一并打包进静态库,包会变得很大、很笨重,同时别人在用你的静态库可能会出现三方依赖重名的冲突。显然将依赖一起打包进静态库不是一个好方式,下面给大家介绍一个不把依赖一同打入包的方式,使用静态库的工程中导入我们静态库中的依赖就可以了:

先介绍借助Pod的方式

1. 用Xcode新建一个工程,注意,选择 Cocoa Touch Framework





2. 点击 TARGETS -> Build Settings -> Mach-o Type,将 Dynamic Library(动态库) 改为 Static Library(静态库)



3. 该.h文件是自动生成的文件,可以删除



4. 然后在这个文件夹下拖入准备打包的文件



拖入后工程目录



5. 用cocoaPods导入工程的三方依赖(怎么导入这里就不作详细介绍了,相信大家都已经很熟悉了),导入依赖后的工程目录如下,



6. 配置静态库的头文件




7. 接下来就是编译打包静态库了,打包的静态库有两种类型,Debug版和Release版,

    Debug版



command + B 编辑一下,然后点击Products文件夹下的.framework,show in Finder



Release版



command + B 编辑一下,然后点击Products文件夹下的.framework,show in Finder,这时候此处就多了个文件夹




8. 最后就是合并Debug版和Release版为一个静态库,供模拟器和真机都可以使用 

    打开终端使用合并命令:  lipo -create 静态库1路径 静态库2路径 -output 合并的静态库

  这样在桌面就生成一个TestAdHocLib文件,用这个文件替换图中Debug或者Release文件夹中的TestAdHocLib文件即可



以后就可以将 TestAdhocLibSDK 这个文件夹拖进工程使用




此种方式打包的静态库并没有将三方依赖一起打入库,用到该静态库的工程导入其的所有依赖,即可使用,然后在用到的地方import一下头文件

#import <TestAdhocLib/xxxxx.h>


下面介绍不借助Pod,传统的打包方式


这种方式只能将静态库中的三方依赖先下载下来,手动导入要打包静态库的工程中,如果这样直接编译,就会把依赖一同打包进静态库,显然这不是我们要的方式。当我们手动导入依赖后,TARGETS -> Build Phases -> Linker Binary With Libraries 下就会有这些依赖,在编译前清空这里的选项,就不会将依赖打包进去。

还是建议大家使用上面借助Pod的方式哦~ 原因你懂的~毕竟用Pod管理三方比起手动管理会方便很多

到此为止整个打包静态库的过程就结束了,希望能对大家有所帮助!
展开阅读全文

没有更多推荐了,返回首页