如何打包一个依赖第三方framework(如支付宝的framework)的静态framework

这篇文章我们主要来探讨一下,如何让一个静态framework 依赖其他的静态framework,本文以活体检测的framework为例来一步步说明是如何实现的。

如何打包一个依赖AFNetworking的静态framework

至于如何打包一个静态库的问题,请查看本人上一篇文章:

这篇文章我们基于上一篇文章中的例子继续讲解。

第一步,我们将需要的三方framework 以及 bundle 导入到CLNetStaticFramework里面的Libs文件夹下,注意!导入的时候Add to targets 这一项一定不要勾选,只需要导入即可如图(1)。之所以这样是因为,静态库是相对独立的,不能一个静态库包含另外一个静态库,只能是依赖,这样不会造成重复引用。
image

图1

这里需要说明的是,这里不添加到target自然不会自动生成framework path,所以需要在工程的Framework Search Paths 里面手动配置一下framework 路径如图(2),如果不配置的话,引用的三方库头文件时会报找不到头文件错误。

image

图2

然后是添加第三方framework需要的系统库,这里活体检测framework需要的有CoreMedia.framework,CoreMotion.framework,在Build Phases -> Link Binary With Libraries 里面依次添加。另外,还需要将工程中的Enable Bitcode 设置为NO, 此时cmd+b编译一下应该可以通过了。

然后新建一个CLLiveDetect类,这里面会写一些关于活体检测的代码,并调起活体检测SDK.写一些测试代码如图(3)
image

图3

接下来把CLLiveDetect.h暴露出来,暴露方法同上一篇文章中的方法,这里不再赘述。到这里我们就可以cmd+b来build我们的framework 了。

第二步,如何使用刚才构建好的framework?

将我们刚才build的framework 导入到ABSDKDemo工程中,重点来了!!同时也需要将活体检测的framework以及bundle 导入到该工程中。并且也要加上编译需要依赖的framework:CoreMedia.framework,CoreMotion.framework,Enable Bitcode 设置为NO, 否则的话不能通过编译。

导入完成以后cmd+b 一下你会发现工程编译成功了,然后我们运行起来看看效果。结果我们还是以Xcode控制台的日志为准(图(4))。

image

图4

到这里,打包一个依赖第三方framework的静态库已经聊完了,欢迎大家勘误。

需要demo的朋友可以到这里去下载:

CLNetStaticFramework 静态库源码

静态库测试工程 源码

欢迎star ^.^,欢迎吐槽。

谢谢您的支持!