一种中间件验证方法、存储介质、设备及系统与流程

文档序号:19064374发布日期:2019-11-06 02:09阅读:189来源:国知局
一种中间件验证方法、存储介质、设备及系统与流程

本发明涉及中间件验证技术领域,具体涉及一种中间件验证方法、存储介质、设备及系统。



背景技术:

在ios开发中,为避免重复开发,我们通常会将常用的代码封装成中间件,方便在多个项目中使用,提高开发效率,而cocoapods是ios中最常用的中间件管理工具,在封装好代码后,可以通过cocoapods发布到开源或私有spec仓库中,使用方只需要通过简单的命令行工具执行简单的命令就可以很方便的集成封装好的中间件;

而在将中间件发布到开源或私有spec仓库前,cocoapods会对的代码进行验证,cocoapods的验证会进行podspec文件的语法检查、依赖检查以及编译检查,其中编译检查是创建一个临时的xcode工程,然后在这个临时工程中通过cocoapods的命令行工具将中间件集成进这个临时工程中,然后进行编译,能够编译通过则通过编译检查,否则就不能通过编译检查,只有通过了所有检查才能通过cocoapods的发布命令发布到开源或私有spec仓库;

cocoapods的编译检查是基于模拟器进行编译的,若代码没有任何依赖,或者依赖链上所有中间件都能够支持模拟器指令集则验证不会有问题,当代码依赖链上有某个中间件不支持模拟器指令集时,我们的中间件将不能通过cocoapods的验证而无法发布。

因此,急需一种能够解决依赖链上有不支持模拟器指令集库的中间件无法通过验证的问题。



技术实现要素:

针对现有技术中存在的缺陷,本发明的目的在于提供一种中间件验证方法、存储介质、设备及系统,能够避免模拟器验证时,因模拟器指令集的中间件不兼容而无法通过验证的问题。

为达到以上目的,本发明采取的技术方案是:

一种中间件验证方法,其用于将验证机制由模拟器检验机制转换为真机检验机制,该方法包括以下步骤:

s1、创建自定义验证插件,所述自定义验证插件为自定义的cocoapods插件工程;

s2、对所述自定义验证插件进行验证机制优化,将所述自定义验证插件的自动签名机制改为手动签名机制,所述手动签名机制与所述真机检验机制相匹配;

s3、创建调用所述自定义验证插件的启动件。

本发明中,创建一自定义验证插件,其为利用cocoapods插件工程技术形成的一个自定义的cocoapods插件工程,用于为验证中间件提供准备,传统的cocoapods插件工程利用模拟器验证机制,而本发明则需要改用手动验证机制,故而需要创建一自定义的cocoapods插件工程;

进而由于本自定义验证插件为自定义的cocoapods插件工程,故而可以对其进行验证机制优化,将所述自定义验证插件的自动签名机制改为手动签名机制,所述手动签名机制与所述真机检验机制相匹配,由于将验证机制改为手动签名机制,故而需要能够利用手动签名机制中签名所需信息来进行真机验证,而真机验证所需的也是手动前面机制中的签名所需信息,该签名所需信息并不是模拟器验证所需要的信息;

创建调用所述自定义验证插件的启动件,后续在需要进行真机验证时,利用该启动键来调用所述自定义验证插件,从而进行真机验证。

本发明利用cocoapods插件工程创建自定义插件,并进行验证机制优化,将其签名机制改为与真机检验机制相匹配的手动签名机制,从而能够避免模拟器验证时,因模拟器指令集的中间件不兼容而无法通过验证的问题。

在上述技术方案的基础上,该方法的步骤s2包括以下步骤:

s201、将cocoapods中的validator.rb文件复制到所述自定义验证插件中,将所述自定义验证插件的validator类重命名为dyvalidator类;

s202、重写xcode临时工程创建方法create_app_project,使其支持真机编译;

s203、重写编译脚本生成方法xcodebuild,将验证机制改为真机验证。

在上述技术方案的基础上,该方法的步骤s202包括以下步骤:

s2011、创建临时工程app_project,将通过修改签名方式修改为手动;

s2012、创建info.plist文件;

s2013、根据工作系统的进行适配,修改临时工程app_project的构建配置。

在上述技术方案的基础上,该方法的步骤s2013中:

填充infoplist_file指向所述步骤s2012中创建的info.plist文件,填充product_bundle_identifier,并填充provisioning_profile_specifier。

一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述中间件验证方法的步骤。

一种中间件验证设备,包括存储器、处理器及存储在所述存储器上并在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述中间件验证方法的步骤。

一种中间件验证系统,其用于将验证机制由模拟器检验机制转换为真机检验机制,该系统包括:

验证插件创建单元,其用于创建自定义验证插件,所述自定义验证插件为自定义的cocoapods插件工程;

验证器优化单元,其用于对所述自定义验证插件进行验证机制优化,将所述自定义验证插件的验证机制改为手动签名;

启动件创建单元,其用于创建调用所述自定义验证插件的启动件。

在上述技术方案的基础上,所述验证器优化单元包括:

预优化单元,其用于将cocoapods中的validator.rb文件复制到所述自定义验证插件中,将所述自定义验证插件的validator类重命名为dyvalidator类;

工程创建重写单元,其用于重写xcode临时工程创建方法create_app_project,使其支持真机编译;

脚本生成重写单元,其用于重写编译脚本生成方法xcodebuild,将验证机制改为真机验证。

在上述技术方案的基础上,所述工程创建重写单元的工作流程包括以下步骤:

创建临时工程app_project,将通过修改签名方式修改为手动;

创建info.plist文件;

根据工作系统的进行适配,修改临时工程app_project的构建配置。

在上述技术方案的基础上,所述脚本生成重写单元的工作流程包括以下步骤:

填充infoplist_file指向所述步骤s2012中创建的info.plist文件,填充product_bundle_identifier,并填充provisioning_profile_specifier。

与现有技术相比,本发明的优点在于:

(1)本发明利用cocoapods插件工程创建自定义插件,并进行验证机制优化,将其签名机制改为与真机检验机制相匹配的手动签名机制;

与现有技术相比,本发明能够避免模拟器验证时,因模拟器指令集的中间件不兼容而无法通过验证的问题。

附图说明

图1为本发明实施例中中间件验证方法的流程图;

图2为本发明实施例中中间件验证设备的结构框图;

图3为本发明实施例中中间件验证系统的结构框图。

具体实施方式

以下结合附图对本发明的实施例作进一步详细说明。

参见图1所示,本发明实施例提供一种中间件验证方法,其用于将验证机制由模拟器检验机制转换为真机检验机制,该方法包括以下步骤:

s1、创建自定义验证插件,自定义验证插件为自定义的cocoapods插件工程;

s2、对自定义验证插件进行验证机制优化,将自定义验证插件的自动签名机制改为手动签名机制,手动签名机制与真机检验机制相匹配;

s3、创建调用自定义验证插件的启动件。

本发明中,创建一自定义验证插件,其为利用cocoapods插件工程技术形成的一个自定义的cocoapods插件工程,用于为验证中间件提供准备,传统的cocoapods插件工程利用模拟器验证机制,而本发明则需要改用手动验证机制,故而需要创建一自定义的cocoapods插件工程;

进而由于本自定义验证插件为自定义的cocoapods插件工程,故而可以对其进行验证机制优化,将自定义验证插件的自动签名机制改为手动签名机制,手动签名机制与真机检验机制相匹配,由于将验证机制改为手动签名机制,故而需要能够利用手动签名机制中签名所需信息来进行真机验证,而真机验证所需的也是手动前面机制中的签名所需信息,该签名所需信息并不是模拟器验证所需要的信息;

创建调用自定义验证插件的启动件,后续在需要进行真机验证时,利用该启动键来调用自定义验证插件,从而进行真机验证。

本发明利用cocoapods插件工程创建自定义插件,并进行验证机制优化,将其签名机制改为与真机检验机制相匹配的手动签名机制,从而能够避免模拟器验证时,因模拟器指令集的中间件不兼容而无法通过验证的问题。

需要说明的是,由于本发明的中间件验证方法用于将验证机制由模拟器检验机制转换为真机检验机制,在此对模拟器检验机制以及真机检验机制进行介绍;

模拟器检验机制:对指定中间件进行模拟器验证,即为动态生成一个用于验证的空的xcode工程,然后将该工程配置为模拟器运行,再进行构建,能够构建成功则为验证通过;

真机检验机制:对指定中间件进行真机验证,即为动态生成一个用于验证的空的xcode工程,然后将该工程配置为真机运行,再进行构建,能够构建成功则为验证通过。

本实施例中,该方法的步骤s2包括以下步骤:

s201、将cocoapods中的validator.rb文件复制到自定义验证插件中,将自定义验证插件的validator类重命名为dyvalidator类;

s202、重写xcode临时工程创建方法create_app_project,使其支持真机编译;

s203、重写编译脚本生成方法xcodebuild,将验证机制改为真机验证;

其中,将validator.rb文件为验证器文件,用于保证验证工作的正常进行;

重写编译脚本生成方法xcodebuild,修改构建命令参数拼接逻辑由command+=%w(code_sign_identity=--sdkiphonesimulator)为command+=%w(-sdkiphoneos-destinationgeneric/platform=ios),此步骤将构建命令的sdk参数指定为iphoneos,将destination参数指定为generic/platform=ios,上述程序的含义为对函数中原拼接xcodebuild命令的逻辑进行修改,将构建命令的构建目标由模拟器(-sdkiphonesimulator)改为真机(-sdkiphoneos-destinationgeneric/platform=ios)。

其中,xcode工程配置模拟器运行成本较低,而配置真机运行需要配置用于签名的证书、描述文件等信息,否则将无法在真机环境构建成功;

xcode支持自动签名和手动签名两种方式,自动签名需要在xcode中登录开发者账号,而并非所有开发人员都有开发者账号的权限,因此需要配置为手动签名,而手动签名就需要配置需要的证书和描述文件,故而能够为本发明提供技术支持;

另外,validator.rb文件主要用于cocoapods中的中间件验证,在这个文件中定义了验证规则,我们需要做的就是在重新定义这个验证规则以达到我们想要的验证效果。

本实施例中,该方法的步骤s202包括以下步骤:

s2011、创建临时工程app_project,将通过修改签名方式修改为手动;

s2012、创建info.plist文件;

s2013、根据工作系统的进行适配,修改临时工程app_project的构建配置;

其中,修改签名方式可以是以下程序:

app_project.root_object.attributes['targetattributes']={app_project.targets[0].uuid=>{"provisioningstyle"=>"manual"}};

上述程序为获取到工程文件中的签名风格项,即provisionstyle,并设置为手动风格,即manual;

info.plist文件为工程信息配置表文件。

本实施例中,该方法的步骤s2013中:

填充infoplist_file指向步骤s2012中创建的info.plist文件,填充product_bundle_identifier,并填充provisioning_profile_specifier。

其中,info.plist文件是xcode工程的简要信息配置文件,用于给开发者配置xcode工程的一些主要信息,如应用名称、应用版本、bundleid等;

而infoplist_file、product_bundle_identifier、provisioning_profile_specifier这三个标识符为xcode工程配置文件中的三个字段,用于给xcode工程提供必要的信息:

infoplist_file为info.plist文件的路径,xcode在构建时通过此字段找到info.plist文件,并读取其中的信息用于构建

product_bundle_identifier为应用标识符,此标识符作为应用的唯一标识会在构建时写入到应用中

provisioning_profile_specifier为用于签名的描述文件标识符,此标识符主要用于签名时读取需要的描述文件。

本发明实施例还提供一种存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述中间件验证方法的步骤。

参见图2所示,本发明实施例还提供一种直播间数据量统计设备,包括存储器、处理器及存储在存储器上并在处理器上运行的计算机程序,处理器执行计算机程序时实现上述中间件验证方法的步骤。

参见图3所示,本发明实施例还提供一种直播间数据量统计系统,该系统包括:

验证插件创建单元,其用于创建自定义验证插件,自定义验证插件为自定义的cocoapods插件工程;

验证器优化单元,其用于对自定义验证插件进行验证机制优化,将自定义验证插件的验证机制改为手动签名;

启动件创建单元,其用于创建调用自定义验证插件的启动件。

本实施例中,验证器优化单元包括:

预优化单元,其用于将cocoapods中的validator.rb文件复制到自定义验证插件中,将自定义验证插件的validator类重命名为dyvalidator类;

工程创建重写单元,其用于重写xcode临时工程创建方法create_app_project,使其支持真机编译;

脚本生成重写单元,其用于重写编译脚本生成方法xcodebuild,将验证机制改为真机验证。

本发明中,创建一自定义验证插件,其为利用cocoapods插件工程技术形成的一个自定义的cocoapods插件工程,用于为验证中间件提供准备,传统的cocoapods插件工程利用模拟器验证机制,而本发明则需要改用手动验证机制,故而需要创建一自定义的cocoapods插件工程;

进而由于本自定义验证插件为自定义的cocoapods插件工程,故而可以对其进行验证机制优化,将自定义验证插件的自动签名机制改为手动签名机制,手动签名机制与真机检验机制相匹配,由于将验证机制改为手动签名机制,故而需要能够利用手动签名机制中签名所需信息来进行真机验证,而真机验证所需的也是手动前面机制中的签名所需信息,该签名所需信息并不是模拟器验证所需要的信息;

创建调用自定义验证插件的启动件,后续在需要进行真机验证时,利用该启动键来调用自定义验证插件,从而进行真机验证。

本发明利用cocoapods插件工程创建自定义插件,并进行验证机制优化,将其签名机制改为与真机检验机制相匹配的手动签名机制,从而能够避免模拟器验证时,因模拟器指令集的中间件不兼容而无法通过验证的问题。

本实施例中,工程创建重写单元的工作流程包括以下步骤:

创建临时工程app_project,将通过修改签名方式修改为手动;

创建info.plist文件;

根据工作系统的进行适配,修改临时工程app_project的构建配置;

其中,将validator.rb文件为验证器文件,用于保证验证工作的正常进行;

重写编译脚本生成方法xcodebuild,修改构建命令参数拼接逻辑由command+=%w(code_sign_identity=--sdkiphonesimulator)为command+=%w(-sdkiphoneos-destinationgeneric/platform=ios),此步骤将构建命令的sdk参数指定为iphoneos,将destination参数指定为generic/platform=ios,上述程序的含义为对函数中原拼接xcodebuild命令的逻辑进行修改,将构建命令的构建目标由模拟器(-sdkiphonesimulator)改为真机(-sdkiphoneos-destinationgeneric/platform=ios)。

本实施例中,该方法的步骤s202包括以下步骤:

s2011、创建临时工程app_project,将通过修改签名方式修改为手动;

s2012、创建info.plist文件;

s2013、根据工作系统的进行适配,修改临时工程app_project的构建配置;

其中,修改签名方式可以是以下程序:

app_project.root_object.attributes['targetattributes']={app_project.targets[0].uuid=>{"provisioningstyle"=>"manual"}};

上述程序为获取到工程文件中的签名风格项,即provisionstyle,并设置为手动风格,即manual;

info.plist文件为工程信息配置表文件。

本实施例中,脚本生成重写单元的工作流程包括以下步骤:

填充infoplist_file指向步骤s2012中创建的info.plist文件,填充product_bundle_identifier,并填充provisioning_profile_specifier。

需要说明的是:上述实施例提供的系统在实现直播间数据量统计系统操作时,仅以上述各功能模块的划分进行举例说明,实际应用中,可根据需要而将上述功能分配由不同功能模块完成,即将系统的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。

本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。

本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1