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

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

先介绍借助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管理三方比起手动管理会方便很多

到此为止整个打包静态库的过程就结束了,希望能对大家有所帮助!
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值