依赖包工具的验证方法、存储介质、电子设备及***
技术领域
本发明涉及移动终端的软件开发领域,具体涉及一种依赖包工具的验证方法、存储介质、电子设备及***。
背景技术
首先对本发明需要用到的名词进行解释:
依赖包:移动终端软件开发时,会将一些具备特定功能的中间件进行封装打包,以供其他开发人员使用,封装打包后的产物即为依赖包,依赖包通常以源代码、静态链接库或动态链接库等形式存在。
Cocoapods:开源的依赖包管理工具,可用于创建、发布、管理依赖包。
CPU指令集:存储在CPU内部,对CPU运算进行指导和优化的硬程序,目前常见的指令集如x86_64、arm64、armv7等。
完全的CPU指令集:Cocoapods中规定的必须支持的CPU指令集的集合。
Cocoapods是目前移动终端软件开发时,最流行的依赖包管理工具之一,Cocoapods适用于iOS和Android***。通过Cocoapods,开发人员可以方便的将自己开发的依赖包提供给别人使用,同时也可以很方便的在自己的项目中使用别的开发人员开发的工具。
但是,Cocoapods在使用过程中存在的问题为:Cocoapods要求依赖包必须支持完全的CPU指令集。当研发过程中使用到基于Cocoapods发布的依赖包,但该依赖包不支持完全的CPU指令集时,则依赖包无法通过Cocoapods的验证和发布,继而使得后续工作无法继续。
为了解决上述问题,业界会修改Cocoapods源代码,将Cocoapods发布前的验证逻辑中关于CPU指令集的验证去掉后,替换掉***中的Cocoapods,以使得Cocoapods发布依赖包时不会验证依赖包是否支持完全的CPU指令集,而直接进行发布操作。
但是,由于修改并替换了官方的Cocoapods,因此在Cocoapods进行升级操作之后,会用升级后的Cocoapods,去覆盖修改后的Cocoapods;此时需要重新修改和替换升级后的Cocoapods的源代码,其操作过程比较繁琐,工作效率较低,当工程研发量较大时,会出现多处全部修改和替换Cocoapods的源代码的操作,工作效率更为低下,例如:
C工程需要依赖B工程,B工程依赖一个第三方提供的A工程,而A工程不支持完全的CPU指令集,此时如果按照传统的Cocoapods流程,A、B和C工程均需要进行修改和替换Cocoapods的源代码的操作。
发明内容
针对现有技术中存在的缺陷,本发明解决的技术问题为:如何简单的让不支持完全的CPU指令集的依赖包通过验证,本发明能够显著简化让不支持完全的CPU指令集的依赖包通过验证的操作过程,大幅度提高了工作效率。
为达到以上目的,本发明提供的依赖包工具的验证方法,包括以下步骤:
S1:创建与需要发布的依赖包名称相同的破解包,在破解包中添加依赖包中的头文件,为每份头文件创建一份名称相同的实现文件,将每份实现文件与对应的头文件关联,在每份实现文件中添加空的方法体,转到S2;
S2:对所述破解包进行Cocoapods验证,将通过验证后的破解包发布至私有服务器,转到S3;
S3:Cocoapods使用所述依赖包时,获取依赖包,Cocoapods读取并使用依赖包。
本发明提供的存储介质,该存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述依赖包工具的验证方法。
本发明提供的电子设备,包括存储器和处理器,存储器上储存有在处理器上运行的计算机程序,处理器执行计算机程序时实现上述依赖包工具的验证方法。
本发明提供的依赖包工具的验证***,包括以下步骤:破解包创建模块、破解包验证发布模块和依赖包使用模块;
破解包创建模块用于:创建与需要发布的依赖包名称相同的破解包,在破解包中添加依赖包中的头文件,为每份头文件创建一份名称相同的实现文件,将每份实现文件与对应的头文件关联,在每份实现文件中添加空的方法体;
破解包验证发布模块用于:对所述破解包进行Cocoapods验证,将通过验证后的破解包发布至私有服务器;
依赖包使用模块用于:Cocoapods使用所述依赖包时,获取依赖包,控制Cocoapods读取并使用依赖包。
与现有技术相比,本发明的优点在于:
参见本发明S1至S4可知,本发明只需创建与依赖包同名、并且支持完全CPU指令集的破解包,利用破解包即可通过Cocoapods的指令集验证,然后在真正使用时直接读取原始依赖包使用。与现有技术中修改Cocoapods源代码的使用依赖包相比,本发明创建破解包的操作过程非常简单,进而大幅度提高了工作效率,当工程研发量较大时,工作效率优化的效果更为明显。
附图说明
图1为本发明实施例中依赖包工具的验证方法的流程图;
图2为本发明实施例中电子设备的连接框图。
具体实施方式
以下结合附图及实施例对本发明作进一步详细说明。
参见图1所示,本发明实施例中的依赖包工具的验证方法,包括以下步骤:
S1:通过pod lib create A命令,创建与需要发布的依赖包名称相同的破解包,在破解包中添加依赖包中的头文件(后缀为.h的文件),为每份头文件创建一份名称相同的实现文件(后缀为.m的文件),将每份实现文件与对应的头文件关联(在实现文件中添加头文件的方法签名),在每份实现文件中添加空的方法体,转到S2。
S2:运行验证命令(pod lib lint--sources=douyu),对S1中的破解包进行Cocoapods验证。由于破解包中存在与依赖包相同的头文件,而且破解包中存在空的方法体,因此对于Cocoapods验证而言,破解包能够支持完全的CPU指令集的,既可以顺利通过验证;对于外部使用者而言,破解包的编译方法与依赖包相同。通过私有命令,将私有pod服务器(适用于Cocoapods的服务器)的配置信息添加至本地(即获取私有服务器的配置信息);根据私有服务器的配置信息,将通过验证后的破解包发布至私有服务器,转到S3。
S2举例为:
S201:在需要使用依赖包的工程B的配置文件(该文件中记录的信息包括:文件名称、版本信息、作者信息、版权信息、依赖哪些包、源代码路径、源代码组织信息、如何进行分组等)中,添加以下内容:s.dependency‘破解包的工程名称’(例如A),来指定所依赖的工程,即工程B依赖工程A。
S202:运行pod lib lint--sources=douyu命令,将source参数设置为douyu,Cocoapods会从douyu私有pod服务器中去查找工程A的信息、并根据工程A的信息工程B进行的验证,此时查找到的A即S1中的破解包,是支持完全的CPU指令集的,因此可以顺利通过验证。
S203:运行pod repo add douyu http://gitlab.douyuios.com/specs命令,获取私有服务器的配置信息;运行pod repo push douyu命令,将B工程发布到私有服务器中。
S3:Cocoapods使用S1中的依赖包时,根据依赖包的下载地址,下载依赖包,由于Cocoapods已经对依赖包同名的破解包进行验证,因此Cocoapods可以直接读取并使用该依赖包。
参见S1至S4可知,本发明实施例只需创建与依赖包同名、并且支持完全CPU指令集的破解包,利用破解包即可通过Cocoapods的指令集验证,然后在真正使用时直接读取原始依赖包使用。与现有技术中修改Cocoapods源代码的使用依赖包相比,本发明实施例创建破解包的操作过程非常简单,进而大幅度提高了工作效率,当工程研发量较大时,工作效率优化的效果更为明显。
本发明实施例还提供一种存储介质,存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述依赖包工具的验证方法。需要说明的是,所述存储介质包括U盘、移动硬盘、ROM(Read-Only Memory,只读存储器)、RAM(Random Access Memory,随机存取存储器)、磁碟或者光盘等各种可以存储程序代码的介质。
参见图2所示,本发明实施例还提供一种电子设备,包括存储器和处理器,存储器上储存有在处理器上运行的计算机程序,处理器执行计算机程序时实现上述依赖包工具的验证方法。
本发明实施例中的依赖包工具的验证***,该***包括以下步骤:破解包创建模块、破解包验证发布模块和依赖包使用模块。
破解包创建模块用于:创建与需要发布的依赖包名称相同的破解包,在破解包中添加依赖包中的头文件(后缀为.h的文件),为每份头文件创建一份名称相同的实现文件(后缀为.m的文件),将每份实现文件与对应的头文件关联(在实现文件中添加头文件的***签名),在每份实现文件中添加空的方法体。
破解包验证发布模块用于:对所述破解包进行Cocoapods验证,将通过验证后的破解包发布至私有服务器:获取私有服务器的配置信息,根据所述配置信息,将通过验证后的破解包发布至私有服务器。
依赖包使用模块用于:Cocoapods使用所述依赖包时,获取依赖包,控制Cocoapods读取并使用依赖包。
需要说明的是:本发明实施例提供的***在进行模块间通信时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将***的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
进一步,本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。