一种针对iOSSDK静态库的私有化方法技术

技术编号:34411077 阅读:55 留言:0更新日期:2022-08-03 22:03
本发明专利技术公开了一种针对iOS SDK静态库的私有化方法,包括:针对第三方合作方的框架结构,提取出核心文件作为多架构文档包,保留info.plist表及Modules文件夹及内部文件;使用lipo命令拆分多架构文档包的所有架构;重组拆分后的单架构文档包,重新生成新多架构文档包并重新命名;根据新定义商务名对上表等通过文本编辑器统一修改命名;删除第三方合作方头文件,SDK在编译链接阶段具有仅需多架构文档包的特性;根据新定义商务名对合作方的框架结构文件夹重命名;完全私有化合作方的SDK静态库,重组后的SDK直接提供给客户。本发明专利技术解决商务署名带来的不必要问题,无需第三方合作方提供协助配合进并行按需处理。供协助配合进并行按需处理。供协助配合进并行按需处理。

【技术实现步骤摘要】
一种针对iOS SDK静态库的私有化方法


[0001]本专利技术涉及互联网开发
,尤其涉及到一种针对iOS SDK静态库的私有化方法。

技术介绍

[0002]众多在生态化合作日益盛行的现代商务中,各厂商之间针对SDK能力的合作,也日益频繁。在这一类SDK合作中,需要同时引入两家厂商的SDK,以完成一个目标功能,并最终对外提供一个SDK产品。因为存在两家甚至两家以上的供应商,当SDK产品去到用户手上时,将产生不必要的供应商误会。当用户需要限制供应商的时候,该问题尤为凸显。
[0003]为了解决SDK的商务署名问题,常见的解决方案是,提供SDK时候,当中合作方的SDK尽可能地包裹在更深层级的文件夹内部。目的是让使用方尽可能少地发现合作方SDK,以减少不必要的商务误会。
[0004]但该法案存在明显的缺点,因为本质上并未把合作方的SDK进行隐藏。只是尽可能的减少降低被发现的可能性,仍然可能带来不必要的商务麻烦。

技术实现思路

[0005]针对上述技术问题,本专利技术的目的在于提供需要一种可提供自己SDK能力、第三方SDK能力,但同时能将第三方静态库形式SDK隐藏的私有化方案。本专利技术的第三方合作方SDK的静态库,不再直接提供。而是先进行拆分,并定义合适的商务名,然后再进行重组。本专利技术还提供拆分重组后的重命名SDK,同时保持SDK内部.o文件不变,以确保第三方合作方SDK能力不受影响。
[0006]本专利技术的技术方案如下:一种针对iOS SDK静态库的私有化方法,包括以下步骤:S1:针对第三方合作方的framework,提取出framework的核心文件作为多架构文档包,同时保留info.plist表及Modules文件夹及内部文件;S2:使用lipo命令拆分多架构文档包的所有架构;S3:重组拆分后的单架构文档包,并重新生成新的多架构文档包并进行重新命名;S4:根据新定义的商务名对info.plist及Modules文件夹及其内部文件通过文本编辑器进行统一的修改命名;S5:删除第三方合作方的头文件,SDK在编译链接阶段具有仅需多架构文档包的特性;S6:根据新定义的商务名对第三方合作方的framework文件夹进行重命名,保证framework后缀文件夹的命名和多架构文档包的命名保持统一以确保Xcode正常寻找及链接;S7:完全私有化第三方合作方的iOS SDK静态库,此时重组后的SDK直接提供给客户。
[0007]更进一步地,步骤S2包括:S201:剥离多架构文档包的所有单个架构,其中,通过语句lipo以及输入路径参数输入多架构文档包路径,通过语句

thin以及架构名参数剥离本次单架构文档包的架构,通过语句

output以及输出路径参数输出单架构文档包的输出路径;S202:使用同样命令进行重复操作直至剥离所有多架构文档包的所有架构。
[0008]更进一步地,步骤S3包括:S301:定义合适的商务名;S302:使用 lipo命令重组iOS SDK的多架构文档包;S303:以合适的商务名对重组后的SDK多架构文档包进行重新生成及重命名。
[0009]更进一步地,步骤S302包括如下步骤:S3021:通过语句

create以及每个单架构文档包的路径参数,建立新的多架构文档包;S3022:通过语句

output 以及输出路径参数输出以定义的商务名命名的多架构文档包路径;S3023:将重组后的SDK放入第三方合作方的framework。
[0010]与现有技术相比,本专利技术的具体实施例具有以下有益效果:本专利技术属于真正的静态库SDK的私有化方案,可有效解决商务署名带来的不必要问题。其次,本专利技术的私有化方法的协作成本低,无需第三方合作方提供协助或配合,可自己进行按需处理。
附图说明
[0011]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
[0012]图1为本专利技术的针对iOS SDK静态库的私有化方法示意图。
具体实施方式
[0013]为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。
[0014]首先针对存在的技术术语进行描述或定义,其中:iOS:iphone的操作系统; SDK:软件开发工具包。
[0015]如图1所示,根据本专利技术的具体实施方式,本专利技术提出了一种针对iOS SDK静态库的私有化方法,包括以下步骤:S1:针对第三方合作方的framework,提取出framework的核心文件作为多架构文档包,同时保留info.plist表及Modules文件夹及内部文件。
[0016]在本申请中,framework是指iOS平台上 SDK的一种存在形式,一般以.framework 后缀结尾。framework内部包含头文件、配置表、多架构文档包,包括有动态库、静态库两种
类型。本申请针对静态库进行私有化操作。
[0017]多架构文档包是目标文件的集合。一个架构对应一个集合,多架构文档包中一般包含多个架构的目标文件集合。即静态库的原身,是静态库的核心文件。
[0018]其中,头文件是指对外暴露需要公开的类文件,每个framework都需要有一个头文件;而类文件是指声明了类的文件,在iOS开发上,通常情况下有.h和.m两个文件,来共同声明描述一个类。其中类是指一种实现信息封装的基础,包含数据说明和一组操作数据或传递消息的函数。
[0019]应该知道,一个静态库又是由若干个目标文件(.o文件)压缩组成。目标文件即.o后缀文件,是代码经过编译后的一种存在形态。目标文件是可执行代码的二进制形式,可以被操作系统载入内存执行。
[0020]当应用需要支持多个CPU架构(如arm64/armv7/x86_64)编译时,多架构(Fat)静态库是由多个单架构(Thin)静态库打包组成。因此如果存在若干子静态库,需要对每个子静态库分别提取Thin静态库,不同CPU架构下的Thin静态库在代码实现上可能存在差异,需要分开单CPU架构处理符号表。
[0021]本申请的技术方案在Mac OS环境下实现,当第三方合作方提出SDK合作时,第三方合作方会给出相应的framework,本申请的私有化方法首先要对第三方合作方的framework进行核心文件的提取,并将所提取的核心文件作为多架构文档包,本申请首先要对多架构文档包进行架构剥离。此外,iOS中很多功能需要配置info.plist才能实现,如设置后台运行、支持打开的文件类型等。本申请的技术方案要对info.plist表及Modules文件夹以及内部文件本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种针对iOS SDK静态库的私有化方法,其特征在于,包括以下步骤:S1:针对第三方合作方的framework,提取出framework的核心文件作为多架构文档包,同时保留info.plist表及Modules文件夹及内部文件;S2:使用lipo命令拆分多架构文档包的所有架构;S3:重组拆分后的单架构文档包,并重新生成新的多架构文档包并进行重新命名;S4:根据新定义的商务名对info.plist及Modules文件夹及其内部文件通过文本编辑器进行统一的修改命名;S5:删除第三方合作方的头文件,SDK在编译链接阶段具有仅需多架构文档包的特性;S6:根据新定义的商务名对第三方合作方的framework文件夹进行重命名,保证framework后缀文件夹的命名和多架构文档包的命名保持统一以确保Xcode正常寻找及链接;S7:完全私有化第三方合作方的iOS SDK静态库,此时重组后的SDK直接提供给客户。2.根据权利要求1所述的私有化方法,其特征在于,步骤S2包括:S201:剥离多架构文档包的所有单个架构,其中,通过...

【专利技术属性】
技术研发人员:骆林昊白剑黄海亮梁瑛玮张海林鲁和平李长杰陈焕然李乐王浩洪行健冷冬丁一
申请(专利权)人:广州易方信息科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1