掌桥专利:专业的专利平台
掌桥专利
首页

基于iOS的静态库调用方法、装置、设备及存储介质

文献发布时间:2023-06-19 11:08:20


基于iOS的静态库调用方法、装置、设备及存储介质

技术领域

本发明涉及数据处理领域,尤其涉及一种基于iOS的静态库调用方法、装置、设备及存储介质。

背景技术

随着App应用的迅速发展,市面上产品种类越来越丰富,市场竞争也愈发激烈,开发一款App从立项到上线平均需要1个月-6个月不等,甚至更长。其中开发的成本问题一直是中小企业、个人开发者要考虑的主要因素之一,现在的互联网企业也很难有只靠一款产品存活了,需要在多个产品中寻找下一个盈利点。这时候多个产品之间的基础能力、通用功能是需要得到复用的。

但是,在iOS系统开发中存在CocoaPods工具能较好的管理Xcode工程中的依赖,但是目前来说,一个系统中存储应用是有限的,不太可能所有的产品功能都能实现,遇到不同的功能的需求,都需要重新开发应用,这就需要一种能够更具有适应性地让应用支持这些基础能力的方法,减少开发成本和开发时间提高整个工程效率。

发明内容

本发明的主要目的在于解决开发App产品重复功能的时间过长的技术问题。

本发明第一方面提供了一种基于iOS的静态库调用方法,所述基于iOS的静态库调用方法包括:

接收调用指令,其中,所述调用指令包括:协议字符串、接口名称;

读取预置CocoaPods仓库中的静态库集,根据所述协议字符串,在所述静态库集中匹配所述协议字符串对应的静态库,得到目标静态库;

在预置接口管理表中匹配所述接口名称对应的接口配置数据;

根据所述接口配置数据,解析所述目标静态库,得到目标配置数据。

可选的,在本发明第一方面的第一种实现方式中,所述接收调用指令包括:

接收公网IP地址发送的调用指令;

读取预置许可IP地址表,判断所述公网IP地址是否属于所述许可IP地址表;

若是属于,则解析所述调用指令;

若不属于,则发送无许可的通知信息至所述公网IP地址。

可选的,在本发明第一方面的第二种实现方式中,在所述根据所述接口配置数据,解析所述目标静态库,得到目标配置数据之后,还包括:

将所述目标配置数据发送至所述公网IP地址。

可选的,在本发明第一方面的第三种实现方式中,在所述根据所述接口配置数据,解析所述目标静态库,得到目标配置数据之后,还包括:

基于预置ruby脚本和CocoaPods工具对所述目标配置数据进行编译处理,生成二进制数据;

将所述二进制数据传输至iOS应用商店的地址。

可选的,在本发明第一方面的第四种实现方式中,所述在预置接口管理表中匹配所述接口名称对应的接口配置数据包括:

访问预置云端数据库,获取更新接口管理表;

判断所述更新接口管理表与预置接口管理表的哈希值是否一致;

若不一致,则将所述更新接口管理表替换为所述接口管理表,以及在所述接口管理表中匹配所述接口名称对应的接口配置数据;

若一致,则在所述接口管理表中匹配所述接口名称对应的接口配置数据。

可选的,在本发明第一方面的第五种实现方式中,所述读取预置CocoaPods仓库中的静态库集,根据所述协议字符串,在所述静态库集中匹配所述协议字符串对应的静态库,得到目标静态库包括:

读取预置Podfile文件中的静态库集;

根据所述协议字符串,匹配所述静态库集中的静态库名称和静态库版本号,得到协议静态库名称和协议静态库版本号;

根据所述协议静态库名称和所述协议静态库版本号,查询出所述静态库集中的静态库源地址;

访问所述静态库源地址,获得目标静态库。

可选的,在本发明第一方面的第六种实现方式中,在所述根据所述接口配置数据,解析所述目标静态库,得到目标配置数据之后,还包括:

获取待静态库化的代码数据;

将所述代码数据转换为代码静态库,生成代码协议字符串和代码协议接口;

将所述代码协议字符串设置为所述代码静态库的标签数据,并将所述代码协议接口加入至所述接口管理表中;

将所述代码静态库复制进入所述静态库集中。

本发明第二方面提供了一种基于iOS的静态库调用装置,包括:

接收模块,用于接收调用指令,其中,所述调用指令包括:协议字符串、接口名称;

读取模块,用于读取预置CocoaPods仓库中的静态库集,根据所述协议字符串,在所述静态库集中匹配所述协议字符串对应的静态库,得到目标静态库;

匹配模块,用于在预置接口管理表中匹配所述接口名称对应的接口配置数据;

解析模块,用于根据所述接口配置数据,解析所述目标静态库,得到目标配置数据。

本发明第三方面提供了一种基于iOS的静态库调用设备,包括:存储器和至少一个处理器,所述存储器中存储有指令,所述存储器和所述至少一个处理器通过线路互连;所述至少一个处理器调用所述存储器中的所述指令,以使得所述基于iOS的静态库调用设备执行上述的基于iOS的静态库调用方法。

本发明的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述的基于iOS的静态库调用方法。

附图说明

图1为本发明实施例中基于iOS的静态库调用方法的第一个实施例示意图;

图2为本发明实施例中基于iOS的静态库调用方法的第二个实施例示意图;

图3为本发明实施例中基于iOS的静态库调用方法的第三个实施例示意图;

图4为本发明实施例中基于iOS的静态库调用装置的一个实施例示意图;

图5为本发明实施例中基于iOS的静态库调用装置的另一个实施例示意图;

图6为本发明实施例中基于iOS的静态库调用设备的一个实施例示意图。

具体实施方式

本发明实施例提供了一种基于iOS的静态库调用方法、装置、设备及存储介质。

本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,本发明实施例中基于iOS的静态库调用方法的第一个实施例包括:

101、接收调用指令,其中,所述调用指令包括:协议字符串、接口名称;

在本实施例中,调用指令是需要使用某个功能时,从容器仓库中调取已经封装好的静态库,而静态库具有名称、版本号、存储路径链接等一些信息,静态库既可以是本地存储还可以是互联网服务调用,例如从gitxxb上的网站中直接调用对外公开的静态库功能,使得开发速度加快,部分功能不需要重复开发。

102、读取预置CocoaPods仓库中的静态库集,根据所述协议字符串,在所述静态库集中匹配所述协议字符串对应的静态库,得到目标静态库;

在本实施例中,CocoaPods仓库存储的静态库集是一类中转集合,用来对接各个静态库的集合表格,不同的静态库存储链接地址,都可以集合在静态库集中进行关联记录,协议字符串中存在静态库名、版本号、库源地址链接,通过在静态库集的库名、版本号的匹配,找到库源地址中的静态库,可以直接在其他服务器运行静态库,也可以下载到本地并在本地运行目标静态库。

103、在预置接口管理表中匹配所述接口名称对应的接口配置数据;

在本实施例中,接口配置数据是目标静态库的key,协议类转化成字符串的形式作为key去获取对象、类,注入的步骤可以写在功能类中的+load方法中,+load方法会随着这个类被加载到内存中而自动执行,拥有一个较早的初始化时机,需要将获取到的对象转化成对应的协议类型,可以在程序的任意地方使用容器中的任何能力。

104、根据所述接口配置数据,解析所述目标静态库,得到目标配置数据。

在本实施例中,调用的功能时先获取容器对象。通过协议称作为入参传递给容器对象,找到实现这个功能的类或者是对象。受开发语言方式限制,如果是强类型开发语言的话,必要的话需要转化一下数据类型再调用。

本发明实施例中,通过指令调用CocoaPods仓库中存储的静态库,基于各类访问调用与key的验证,调用基础功能数据,未减少调用过程时间,而是通过减少重复开发App的基础功能的时间,实现了Xcode工程中使用功能的重复调用,减少了开发的时间。

请参阅图2,本发明实施例中基于iOS的静态库调用方法的第二个实施例包括:

201、接收公网IP地址发送的调用指令,其中,所述调用指令包括:协议字符串、接口名称;

在本实施例中,公网IP地址可以是笔记电脑移动终端也可以手机设备发出,调用指令中写明具体的协议字符串、接口名称,即抓取的对象。

202、读取预置许可IP地址表,判断所述公网IP地址是否属于所述许可IP地址表;

在本实施例中,许可IP地址表是预设的允许能发出调用IP地址的地址表,如果在许可表中,则可以进行调用指令的操作。如果不在许可表中,则不能进行调用指令的操作。

203、若是属于,则解析所述调用指令;

在本实施例中,公网IP地址是允许的公网地址,则解析所述调用指令中的协议字符串和接口名称。

204、若不属于,则发送无许可的通知信息至所述公网IP地址;

在本实施例中,不属于允许公网地址,则基于TCP/IP协议通知公网IP地址无法进行调取操作。

205、读取预置CocoaPods仓库中的静态库集,根据所述协议字符串,在所述静态库集中匹配所述协议字符串对应的静态库,得到目标静态库;

206、在预置接口管理表中匹配所述接口名称对应的接口配置数据;

207、根据所述接口配置数据,解析所述目标静态库,得到目标配置数据;

205-207实施例已在第一个实施例说明,在此不做赘述。

208、将所述目标配置数据发送至所述公网IP地址。

在本实施例中,将获得的静态库中的value值打包发送给需要调用的手机或者是笔记本电脑或者是异地的台式电脑等。

本发明实施例中,通过指令调用CocoaPods仓库中存储的静态库,基于各类访问调用与key的验证,调用基础功能数据,未减少调用过程时间,而是通过减少重复开发App的基础功能的时间,实现了Xcode工程中使用功能的重复调用,减少了开发的时间。

请参阅图3,本发明实施例中基于iOS的静态库调用方法的第三个实施例包括:

301、接收调用指令,其中,所述调用指令包括:协议字符串、接口名称;

本实施例类似于第一个实施例,请查看第一个实施例,在此不做赘述。

302、读取预置Podfile文件中的静态库集;

在本实施例中,调用CocoaPods仓库中Podfile文件中的静态库集。

303、根据所述协议字符串,匹配所述静态库集中的静态库名称和静态库版本号,得到协议静态库名称和协议静态库版本号;

在本实施例中,静态库集中的静态库名称和版本号是共同作为特征确定一个独立的静态库,而根据指令中的协议字符串的内容,匹配出对应的协议静态库名称和协议静态库版本号,在匹配中可以直接使用SQL数据库的查询功能实现。

304、根据所述协议静态库名称和所述协议静态库版本号,查询出所述静态库集中的静态库源地址;

在本实施例中,在静态库集中已经根据协议静态库名称和所述协议静态库版本号定位到需要的静态库位置,对应的静态库源地址已经被锁定,将查询的对象确定到静态库源地址上。

305、访问所述静态库源地址,获得目标静态库;

在本实施例中,访问静态库源地址,静态库源地址可以是网络地址如gitXXb网址,也可以是本地磁盘存储地址,从地址中下载得到目标静态库。

306、访问预置云端数据库,获取更新接口管理表;

在本实施例中,此时目标静态库还不能读取,需要接口配置,从指令中的接口名称匹配出接口配置数据。但是需要先在云端检测是否接口管理内容存在更新。

307、判断所述更新接口管理表与预置接口管理表的哈希值是否一致;

在本实施例中,采用哈希校验的方式来查看接口管理表格是否已经被修改。

308、若不一致,则将所述更新接口管理表替换为所述接口管理表,以及在所述接口管理表中匹配所述接口名称对应的接口配置数据;

在本实施例中,如果被更改,则替换云端最新的接口管理表,并从接口管理表中查询出需要的接口配置数据。

309、若一致,则在所述接口管理表中匹配所述接口名称对应的接口配置数据;

在本实施例中,哈希校验一致,则采用本地已经存储的接口管理表。

310、基于预置ruby脚本和CocoaPods工具对所述目标配置数据进行编译处理,生成二进制数据;

在本实施例中,根据iOS程序使用Xcode编译工具得出二进制数据。

311、将所述二进制数据传输至iOS应用商店的地址;

在本实施例中,将二进制数据发送至iOS应用商店中进行发布处理。

312、获取待静态库化的代码数据;

在本实施例中,获取一段需要静态库的代码数据。

313、将所述代码数据转换为代码静态库,生成代码协议字符串和代码协议接口;

在本实施例中,转换静态库时,对应生成代码的协议字符串和接口名称。

314、将所述代码协议字符串设置为所述代码静态库的标签数据,并将所述代码协议接口加入至所述接口管理表中;

在本实施例中,将协议字符串设定为静态库的标签内容,而将接口协议加入到管理表中,完成代码的静态化设置。

315、将所述代码静态库复制进入所述静态库集中。

在本实施例中,代码静态库存储在本地上,则将磁盘中关联地址复制进入静态库集中。

本发明实施例中,通过指令调用CocoaPods仓库中存储的静态库,基于各类访问调用与key的验证,调用基础功能数据,未减少调用过程时间,而是通过减少重复开发App的基础功能的时间,实现了Xcode工程中使用功能的重复调用,减少了开发的时间。

上面对本发明实施例中基于iOS的静态库调用方法进行了描述,下面对本发明实施例中基于iOS的静态库调用装置进行描述,请参阅图4,本发明实施例中基于iOS的静态库调用装置一个实施例包括:

接收模块401,用于接收调用指令,其中,所述调用指令包括:协议字符串、接口名称;

读取模块402,用于读取预置CocoaPods仓库中的静态库集,根据所述协议字符串,在所述静态库集中匹配所述协议字符串对应的静态库,得到目标静态库;

匹配模块403,用于在预置接口管理表中匹配所述接口名称对应的接口配置数据;

解析模块404,用于根据所述接口配置数据,解析所述目标静态库,得到目标配置数据。

本发明实施例中,通过指令调用CocoaPods仓库中存储的静态库,基于各类访问调用与key的验证,调用基础功能数据,未减少调用过程时间,而是通过减少重复开发App的基础功能的时间,实现了Xcode工程中使用功能的重复调用,减少了开发的时间。

请参阅图5,本发明实施例中基于iOS的静态库调用装置的另一个实施例包括:

接收模块401,用于接收调用指令,其中,所述调用指令包括:协议字符串、接口名称;

读取模块402,用于读取预置CocoaPods仓库中的静态库集,根据所述协议字符串,在所述静态库集中匹配所述协议字符串对应的静态库,得到目标静态库;

匹配模块403,用于在预置接口管理表中匹配所述接口名称对应的接口配置数据;

解析模块404,用于根据所述接口配置数据,解析所述目标静态库,得到目标配置数据。

其中,所述接收模块401具体用于:

接收公网IP地址发送的调用指令;

读取预置许可IP地址表,判断所述公网IP地址是否属于所述许可IP地址表;

若是属于,则解析所述调用指令;

若不属于,则发送无许可的通知信息至所述公网IP地址。

其中,所述基于iOS的静态库调用装置还包括通知模块405,所述通知模块405具体用于:

将所述目标配置数据发送至所述公网IP地址。

其中,所述基于iOS的静态库调用装置还包括编译模块406,所述编译模块406具体用于:

基于预置ruby脚本和CocoaPods工具对所述目标配置数据进行编译处理,生成二进制数据;

将所述二进制数据传输至iOS应用商店的地址。

其中,所述匹配模块403具体用于:

访问预置云端数据库,获取更新接口管理表;

判断所述更新接口管理表与预置接口管理表的哈希值是否一致;

若不一致,则将所述更新接口管理表替换为所述接口管理表,以及在所述接口管理表中匹配所述接口名称对应的接口配置数据;

若一致,则在所述接口管理表中匹配所述接口名称对应的接口配置数据。

其中,所述读取模块402具体用于:

读取预置Podfile文件中的静态库集;

根据所述协议字符串,匹配所述静态库集中的静态库名称和静态库版本号,得到协议静态库名称和协议静态库版本号;

根据所述协议静态库名称和所述协议静态库版本号,查询出所述静态库集中的静态库源地址;

访问所述静态库源地址,获得目标静态库。

其中,所述基于iOS的静态库调用装置还包括静态库新增模块407,所述静态库新增模块407具体用于:

获取待静态库化的代码数据;

将所述代码数据转换为代码静态库,生成代码协议字符串和代码协议接口;

将所述代码协议字符串设置为所述代码静态库的标签数据,并将所述代码协议接口加入至所述接口管理表中;

将所述代码静态库复制进入所述静态库集中。

本发明实施例中,通过指令调用CocoaPods仓库中存储的静态库,基于各类访问调用与key的验证,调用基础功能数据,未减少调用过程时间,而是通过减少重复开发App的基础功能的时间,实现了Xcode工程中使用功能的重复调用,减少了开发的时间。

上面图4和图5从模块化功能实体的角度对本发明实施例中的基于iOS的静态库调用装置进行详细描述,下面从硬件处理的角度对本发明实施例中基于iOS的静态库调用设备进行详细描述。

图6是本发明实施例提供的一种基于iOS的静态库调用设备的结构示意图,该基于iOS的静态库调用设备600可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)610(例如,一个或一个以上处理器)和存储器620,一个或一个以上存储应用程序633或数据632的存储介质630(例如一个或一个以上海量存储设备)。其中,存储器620和存储介质630可以是短暂存储或持久存储。存储在存储介质630的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对基于iOS的静态库调用设备600中的一系列指令操作。更进一步地,处理器610可以设置为与存储介质630通信,在基于iOS的静态库调用设备600上执行存储介质630中的一系列指令操作。

基于iOS的静态库调用设备600还可以包括一个或一个以上电源640,一个或一个以上有线或无线网络接口650,一个或一个以上输入输出接口660,和/或,一个或一个以上操作系统631,例如Windows Serve,Mac OS X,Unix,Linux,FreeBSD等等。本领域技术人员可以理解,图6示出的基于iOS的静态库调用设备结构并不构成对基于iOS的静态库调用设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行所述基于iOS的静态库调用方法的步骤。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统或装置、单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

相关技术
  • 基于iOS的静态库调用方法、装置、设备及存储介质
  • 基于缓存技术的数据调用方法、装置、设备及存储介质
技术分类

06120112811329