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

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

Info

Publication number
CN107463423B
CN107463423B CN201710642675.XA CN201710642675A CN107463423B CN 107463423 B CN107463423 B CN 107463423B CN 201710642675 A CN201710642675 A CN 201710642675A CN 107463423 B CN107463423 B CN 107463423B
Authority
CN
China
Prior art keywords
package
dependent
cracking
file
packet
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.)
Active
Application number
CN201710642675.XA
Other languages
English (en)
Other versions
CN107463423A (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

Images

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 CN107463423A (zh) 2017-12-12
CN107463423B true 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)

Families Citing this family (2)

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

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
使用cocoapods开发并打包静态库;BryceZhang;《博客园》;20141123;第1,3-7页 *

Also Published As

Publication number Publication date
WO2019024392A1 (zh) 2019-02-07
CN107463423A (zh) 2017-12-12

Similar Documents

Publication Publication Date Title
KR102192880B1 (ko) 소프트웨어 재패키징 방지 방법 및 장치
CN102289378B (zh) 自动生成应用程序的方法
CN103077043B (zh) 一种快速启动及运行Linux的方法
CN105407130A (zh) 一种移动端插件***及移动端插件处理方法
CN109800005B (zh) 一种客户端热更新方法及装置
CN109933350B (zh) 在应用中嵌入代码的方法、装置及电子设备
CN112965720B (zh) 一种组件编译方法、装置、设备及计算机可读存储介质
CN113407362A (zh) 基于车载Android***SOA架构SOMEIP通信中间层实现方法及***
CN110659031A (zh) 应用程序的编译方法、装置、电子设备及存储介质
CN108829465B (zh) 一种基于直接读写flash的本地动态加载***及方法
CN107463423B (zh) 依赖包工具的验证方法、存储介质、电子设备及***
CN111078279A (zh) 字节码文件的处理方法、装置、设备及存储介质
CN111045686A (zh) 一种提高应用反编译速度的方法、智能终端及存储介质
CN113893550A (zh) 脚本源码处理方法及相关设备
CN117075960B (zh) 程序重构方法、应用跨平台迁移方法、装置与计算设备
KR101863325B1 (ko) 역공학 방지 방법 및 장치
CN106775843B (zh) 基于内存加载的dalvik字节码优化方法
CN112230930A (zh) 混合技术栈构建打包的方法和装置及机器可读存储介质
CN112451972A (zh) 基于游戏引擎的资源压缩包构建方法、装置、***及介质
CN116775087A (zh) 一种热修复方法、装置、电子设备及存储介质
CN111625225A (zh) 一种程序指定数据输出方法和装置
CN111367512A (zh) 一种应用程序开发中创建Android库模块依赖关系的方法及装置
CN116243923A (zh) 一种小程序处理方法、装置及电子设备
CN111381865B (zh) 游戏应用的打包方法、装置、设备及存储介质
CN112463042B (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

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

TR01 Transfer of patent right