CN107463423A - 依赖包工具的验证方法、存储介质、电子设备及*** - Google Patents

依赖包工具的验证方法、存储介质、电子设备及*** Download PDF

Info

Publication number
CN107463423A
CN107463423A CN201710642675.XA CN201710642675A CN107463423A CN 107463423 A CN107463423 A CN 107463423A CN 201710642675 A CN201710642675 A CN 201710642675A CN 107463423 A CN107463423 A CN 107463423A
Authority
CN
China
Prior art keywords
bag
file
cocoapods
checking
rely
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201710642675.XA
Other languages
English (en)
Other versions
CN107463423B (zh
Inventor
黄露洋
陈少杰
张文明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sichuan Zhongke Huaxing Digital Technology Co.,Ltd.
Original Assignee
Wuhan Douyu Network Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wuhan Douyu Network Technology Co Ltd filed Critical Wuhan Douyu Network Technology Co Ltd
Priority to CN201710642675.XA priority Critical patent/CN107463423B/zh
Publication of CN107463423A publication Critical patent/CN107463423A/zh
Priority to PCT/CN2017/117385 priority patent/WO2019024392A1/zh
Application granted granted Critical
Publication of CN107463423B publication Critical patent/CN107463423B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/43Checking; Contextual analysis
    • G06F8/433Dependency analysis; Data or control flow analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种依赖包工具的验证方法、存储介质、电子设备及***,涉及移动终端的软件开发领域。该方法的步骤为:创建与需要发布的依赖包名称相同的破解包,在破解包中添加依赖包中的头文件,为每份头文件创建一份名称相同的实现文件,将每份实现文件与对应的头文件关联,在每份实现文件中添加空的方法体;对所述破解包进行Cocoapods验证,将通过验证后的破解包发布至私有服务器;Cocoapods使用所述依赖包时,获取依赖包,Cocoapods读取并使用依赖包。本发明能够显著简化让不支持完全的CPU指令集的依赖包通过验证的操作过程,大幅度提高了工作效率。

Description

依赖包工具的验证方法、存储介质、电子设备及***
技术领域
本发明涉及移动终端的软件开发领域,具体涉及一种依赖包工具的验证方法、存储介质、电子设备及***。
背景技术
首先对本发明需要用到的名词进行解释:
依赖包:移动终端软件开发时,会将一些具备特定功能的中间件进行封装打包,以供其他开发人员使用,封装打包后的产物即为依赖包,依赖包通常以源代码、静态链接库或动态链接库等形式存在。
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读取并使用依赖包。
需要说明的是:本发明实施例提供的***在进行模块间通信时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将***的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
进一步,本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

Claims (10)

1.一种依赖包工具的验证方法,其特征在于,该方法包括以下步骤:
S1:创建与需要发布的依赖包名称相同的破解包,在破解包中添加依赖包中的头文件,为每份头文件创建一份名称相同的实现文件,将每份实现文件与对应的头文件关联,在每份实现文件中添加空的方法体,转到S2;
S2:对所述破解包进行Cocoapods验证,将通过验证后的破解包发布至私有服务器,转到S3;
S3:Cocoapods使用所述依赖包时,获取依赖包,Cocoapods读取并使用依赖包。
2.如权利要求1所述的依赖包工具的验证方法,其特征在于:S1中所述将每份实现文件与对应的头文件关联的流程包括:在实现文件中添加头文件的方法签名。
3.如权利要求1或2所述的依赖包工具的验证方法,其特征在于:S1中所述头文件为后缀为.h的文件,所述实现文件为后缀为.m的文件。
4.如权利要求1或2所述的依赖包工具的验证方法,其特征在于:S2中所述将通过验证后的破解包发布至私有服务器的流程包括:获取私有服务器的配置信息,根据所述配置信息,将通过验证后的破解包发布至私有服务器。
5.一种存储介质,该存储介质上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现权利要求1至4任一项所述的方法。
6.一种电子设备,包括存储器和处理器,存储器上储存有在处理器上运行的计算机程序,其特征在于:处理器执行计算机程序时实现权利要求1至4任一项所述的方法。
7.一种依赖包工具的验证***,其特征在于:该***包括以下步骤:破解包创建模块、破解包验证发布模块和依赖包使用模块;
破解包创建模块用于:创建与需要发布的依赖包名称相同的破解包,在破解包中添加依赖包中的头文件,为每份头文件创建一份名称相同的实现文件,将每份实现文件与对应的头文件关联,在每份实现文件中添加空的方法体;
破解包验证发布模块用于:对所述破解包进行Cocoapods验证,将通过验证后的破解包发布至私有服务器;
依赖包使用模块用于:Cocoapods使用所述依赖包时,获取依赖包,控制Cocoapods读取并使用依赖包。
8.如权利要求7所述的依赖包工具的验证***,其特征在于:所述破解包创建模块将每份实现文件与对应的头文件关联的流程包括:在实现文件中添加头文件的***签名。
9.如权利要求7或8所述的依赖包工具的验证***,其特征在于:所述破解包创建模块中的头文件为后缀为.h的文件,实现文件为后缀为.m的文件。
10.如权利要求7或8所述的依赖包工具的验证***,其特征在于:所述破解包验证发布模块将通过验证后的破解包发布至私有服务器的流程包括:获取私有服务器的配置信息,根据所述配置信息,将通过验证后的破解包发布至私有服务器。
CN201710642675.XA 2017-07-31 2017-07-31 依赖包工具的验证方法、存储介质、电子设备及*** Active CN107463423B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201710642675.XA CN107463423B (zh) 2017-07-31 2017-07-31 依赖包工具的验证方法、存储介质、电子设备及***
PCT/CN2017/117385 WO2019024392A1 (zh) 2017-07-31 2017-12-20 依赖包工具的验证方法、存储介质、电子设备及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710642675.XA CN107463423B (zh) 2017-07-31 2017-07-31 依赖包工具的验证方法、存储介质、电子设备及***

Publications (2)

Publication Number Publication Date
CN107463423A true CN107463423A (zh) 2017-12-12
CN107463423B CN107463423B (zh) 2020-04-10

Family

ID=60547855

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710642675.XA Active CN107463423B (zh) 2017-07-31 2017-07-31 依赖包工具的验证方法、存储介质、电子设备及***

Country Status (2)

Country Link
CN (1) CN107463423B (zh)
WO (1) WO2019024392A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019024392A1 (zh) * 2017-07-31 2019-02-07 武汉斗鱼网络科技有限公司 依赖包工具的验证方法、存储介质、电子设备及***
CN110413268A (zh) * 2018-04-28 2019-11-05 武汉斗鱼网络科技有限公司 一种中间件验证方法、存储介质、设备及***

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102364442A (zh) * 2011-06-24 2012-02-29 浙大网新科技股份有限公司 将Wine从x86移植到ARM平台的方法
CN102681893A (zh) * 2011-03-09 2012-09-19 腾讯科技(深圳)有限公司 可执行程序的跨平台实现方法及移动终端
CN103530148A (zh) * 2013-09-18 2014-01-22 国云科技股份有限公司 一种大型Linux软件包的发布方法
CN103870211A (zh) * 2012-12-10 2014-06-18 国际商业机器公司 把文件写入到多个介质的方法和存储***
US9582399B2 (en) * 2014-03-14 2017-02-28 Ca, Inc. Entropy weighted message matching for opaque service virtualization

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101526892A (zh) * 2008-03-04 2009-09-09 深圳市爱国者嵌入式***科技有限公司 基于嵌入式***扩展应用程序的方法
KR101368024B1 (ko) * 2012-03-29 2014-02-27 주식회사 엘지씨엔에스 스크립트 관리 방법, 이를 실행하는 스크립트 관리 서버 및 이를 저장한 기록 매체
CN107463423B (zh) * 2017-07-31 2020-04-10 武汉斗鱼网络科技有限公司 依赖包工具的验证方法、存储介质、电子设备及***

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102681893A (zh) * 2011-03-09 2012-09-19 腾讯科技(深圳)有限公司 可执行程序的跨平台实现方法及移动终端
CN102364442A (zh) * 2011-06-24 2012-02-29 浙大网新科技股份有限公司 将Wine从x86移植到ARM平台的方法
CN103870211A (zh) * 2012-12-10 2014-06-18 国际商业机器公司 把文件写入到多个介质的方法和存储***
CN103530148A (zh) * 2013-09-18 2014-01-22 国云科技股份有限公司 一种大型Linux软件包的发布方法
US9582399B2 (en) * 2014-03-14 2017-02-28 Ca, Inc. Entropy weighted message matching for opaque service virtualization

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
BRYCEZHANG: "使用cocoapods开发并打包静态库", 《博客园》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019024392A1 (zh) * 2017-07-31 2019-02-07 武汉斗鱼网络科技有限公司 依赖包工具的验证方法、存储介质、电子设备及***
CN110413268A (zh) * 2018-04-28 2019-11-05 武汉斗鱼网络科技有限公司 一种中间件验证方法、存储介质、设备及***
CN110413268B (zh) * 2018-04-28 2023-11-10 武汉斗鱼网络科技有限公司 一种中间件验证方法、存储介质、设备及***

Also Published As

Publication number Publication date
CN107463423B (zh) 2020-04-10
WO2019024392A1 (zh) 2019-02-07

Similar Documents

Publication Publication Date Title
US9946537B2 (en) Integrated development environment-based repository searching in a networked computing environment
CN109491695B (zh) 一种集成安卓应用的增量更新方法
CN104793946B (zh) 基于云计算平台的应用部署方法和***
CN105893008A (zh) 一种定制多渠道安装包的方法及装置
CN104199750B (zh) 一种linux***的文件恢复方法及装置
CN107506221A (zh) 应用程序升级方法、装置及设备
CN109491662A (zh) 代码打包方法、计算机装置及计算机可读存储介质、代码打包***
CN108829593A (zh) 代码覆盖率计算分析方法、装置、设备及存储介质
CN103077043B (zh) 一种快速启动及运行Linux的方法
CN109032638A (zh) 移动应用软件的热更新方法、服务器和移动终端
CN111090433A (zh) 一种数据处理的方法、装置和存储介质
CN105407130A (zh) 一种移动端插件***及移动端插件处理方法
CN107707625A (zh) 基于Maven的前台资源打包并进行版本管理与使用的方法
CN108595187A (zh) 安卓安装包集成软件开发工具包的法、装置及存储介质
CN104794048A (zh) 一种ui自动化测试方法和***
CN106610839A (zh) 发布升级包的方法、轻量升级方法、装置及***
CN110321131A (zh) 业务组件打包方法、***及服务器
CN108052327A (zh) 一种内核模块编译、加载方法及装置
CN103176785A (zh) Widget 应用在线实现***及方法
CN107797823A (zh) 业务规则管理方法、装置、存储介质和计算机设备
CN111359219A (zh) 虚幻引擎的文件处理方法、装置、设备及存储介质
CN107463423A (zh) 依赖包工具的验证方法、存储介质、电子设备及***
WO2019051480A1 (en) SYSTEMS AND METHODS FOR CREATING BUSINESS SOFTWARE
CN111367512B (zh) 一种应用程序开发中创建Android库模块依赖关系的方法及装置
CN117075960A (zh) 程序重构方法、应用跨平台迁移方法、装置与计算设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240529

Address after: No. 308, 3rd Floor, No. 333 Dehua Road, Chengdu High tech Zone, China (Sichuan) Pilot Free Trade Zone, Chengdu City, Sichuan Province, 610000

Patentee after: Sichuan Zhongke Huaxing Digital Technology Co.,Ltd.

Country or region after: China

Address before: 430000 East Lake Development Zone, Wuhan City, Hubei Province, No. 1 Software Park East Road 4.1 Phase B1 Building 11 Building

Patentee before: WUHAN DOUYU NETWORK TECHNOLOGY Co.,Ltd.

Country or region before: China