cocoaPods 进行SDK二次包装(cocoapods-packager完成 framework静态库打包,避免第三方库冲突)

本文介绍了如何使用cocoapods-packager将购买的高价SDK进行二次打包,以创建一个面向商户的人脸识别SDK。过程中详细阐述了.a与.framework的区别,以及打包静态库的步骤,包括解决在打包过程中遇到的第三方库冲突问题,如AFN等。最终提出了在打包静态库时需要注意的事项,如资源文件的处理和动态库静态库的混用问题。
摘要由CSDN通过智能技术生成

[需求及问题点]

有一天,产品提了个需求:最近,我们买了XXX的人脸识别SDK,但是很贵.所以我们想这样搞,把我们买的xxxSDK结合后端接口包装包装,再搞成一个给商户App们用的人脸识别SDK出来,同时,这个界面要美观大气….
-=-=-=-=-=-=-=
往往这种时候,把xxx的SDK用起来不难.但是对于SDK(.a或则.framework)中的静态库,我们不清楚里面用了哪些东西,而同时,我们在二次包装这个SDK的同时,如果使用了AFN等三方库,有可能导致使用这个二次SDK的小伙伴的App工程不能使用AFN等.
-=-=-=-=-=-=
解决的方法是, 使用CocoaPods打包成静态库,结合cocoapods-packager这个插件完成.framework静态库的打包(.a也可以)

1 首先了解.a与.framework的区别

一、库:
库是共享程序代码的方式,一般分为静态库和动态库

二、静态库与动态库的区别:
静态库:连接时完整地拷贝至可执行文件中,被多次使用就有多份冗余拷贝。
动态库:连接时不复制,程序运行时由系统动态加载到内存,供程序调用,系统只加载一次,多个程序共用,节省内存。

三、iOS静态库形式和动态库形式:
静态库:.a和.framework
动态库:.dylib和.framework

四、framework静态库和动态库的区分:
系统的.framework是动态库,我们自己建立的.framework是静态库

五、.a和.framwork的区别:
.a是一个纯二进制文件,.framework中除了有二进制文件外还有资源文件。
.a文件不能直接使用,至少要有.h文件配合,.framework文件可以直接使用。
.a + .h + sourceFile = .framework

2 具体操作(前提安装好cocoapods)

1. 使用cocoaPods开发静态库

为什么要使用cocoaPods的命令行工具来开发静态库?
其实主要不是真的用于开发本文中这个二次包装的SDK,这个二次SDK完全可以由你自己通过Xcode创建一个demo工程,在里面完成这个二次SDK的所有功能.
那么为什么要使用 pod lib create xxxLib 来创建呢, 主要是为了得到这个
这里写图片描述
这是一个 SOCR 文件夹的全部内容 , 有个这个文件夹及文件,我们才可以接着操作

2.打开SOCR.podspec文件,修改类库配置信息,结果像这样。

#
# Be sure to run `pod lib lint SOCRLib.podspec' to ensure this is a
# valid spec before submitting.
#
# Any lines starting with a # are optional, but their use is encouraged
# To learn more about a Podspec see https://guides.cocoapods.org/syntax/podspec.html
#

Pod::Spec.new do |s|
# 名字要一致
  s.name             = 'SOCRLib'
# 版本要和git的tag版本一致
  s.version          = '0.2.0'
# 描述
  s.summary          = '活体识别SDK二次封装'

# This description is used to generate tags and improve search results.
#   * Think: What does it do? Why did you write it? What is the focus?
#   * Try to keep it short, snappy and to the point.
#   * Write the descripti
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值