CN107832057A - 一种iOS应用的构建方法及终端 - Google Patents

一种iOS应用的构建方法及终端 Download PDF

Info

Publication number
CN107832057A
CN107832057A CN201711045614.1A CN201711045614A CN107832057A CN 107832057 A CN107832057 A CN 107832057A CN 201711045614 A CN201711045614 A CN 201711045614A CN 107832057 A CN107832057 A CN 107832057A
Authority
CN
China
Prior art keywords
component
precompile
ios
predeterminated position
caching
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.)
Pending
Application number
CN201711045614.1A
Other languages
English (en)
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.)
Fujian Tianquan Educational Technology Ltd
Original Assignee
Fujian Tianquan Educational Technology 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 Fujian Tianquan Educational Technology Ltd filed Critical Fujian Tianquan Educational Technology Ltd
Priority to CN201711045614.1A priority Critical patent/CN107832057A/zh
Publication of CN107832057A publication Critical patent/CN107832057A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种iOS应用的构建方法及终端,对组件进行预编译,并存储于预设位置;确定要构建的iOS应用需要的组件,从所述预设位置获取与所述需要的组件对应的预编译组件,并将所述预编译组件与所述iOS应用关联;编译所述iOS应用,生成所述iOS应用的可执行文件;在构建iOS应用时,直接从所述预设位置获取需要的预编译组件,不仅实现了一次预编译,多次重复使用,节省资源消耗,而且大大缩短了iOS应用构建过程中源码编译环节的耗时,使构建iOS应用的效率成倍提高。

Description

一种iOS应用的构建方法及终端
技术领域
本发明涉及计算机技术领域,尤其涉及一种iOS应用的构建方法及终端。
背景技术
随着公司规模和业务的扩展,一个iOS应用通常是由多个组件构成,当构建一个iOS应用时,Xcode都需要下载组成所述iOS应用的各个组件的源码进行编译。一方面,随着iOS应用所包含的组件的增多,如果每次构建,都需要对各个组件的源码进行编译的话,一个iOS应用的构建将耗时较长,另一方面,很多组件是各个iOS应用共用的,如果在构建iOS应用时才下载对应的源码,然后编译,会造成重复性的编译,浪费资源。
发明内容
本发明所要解决的技术问题是:提供一种iOS应用的构建方法及终端,提高iOS应用的构建效率。
为了解决上述技术问题,本发明采用的一种技术方案为:
一种iOS应用的构建方法,包括步骤:
S1、对组件进行预编译,并存储于预设位置;
S2、确定要构建的iOS应用需要的组件,从所述预设位置获取与所述需要的组件对应的预编译组件,并将所述预编译组件与所述iOS应用关联;
S3、编译所述iOS应用,生成所述iOS应用的可执行文件。
为了解决上述技术问题,本发明采用的另一种技术方案为:
一种iOS应用的构建终端,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
S1、对组件进行预编译,并存储于预设位置;
S2、确定要构建的iOS应用需要的组件,从所述预设位置获取与所述需要的组件对应的预编译组件,并将所述预编译组件与所述iOS应用关联;
S3、编译所述iOS应用,生成所述iOS应用的可执行文件。
本发明的有益效果在于:对组件进行预编译,并存储于预设位置,在构建iOS应用时,直接从所述预设位置获取需要的预编译组件,不仅实现了一次预编译,多次重复使用,节省资源消耗,而且大大缩短了iOS应用构建过程中源码编译环节的耗时,使构建iOS应用的效率成倍提高。
附图说明
图1为本发明实施例的iOS应用的构建方法的流程图;
图2为本发明实施例的iOS应用的构建终端的结构示意图;
标号说明:
1、iOS应用的构建终端;2、存储器;3、处理器。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
本发明最关键的构思在于:对组件进行预编译,并存储于预设位置,在构建iOS应用时,直接从所述预设位置获取需要的预编译组件。
请参照图1,一种iOS应用的构建方法,包括步骤:
S1、对组件进行预编译,并存储于预设位置;
S2、确定要构建的iOS应用需要的组件,从所述预设位置获取与所述需要的组件对应的预编译组件,并将所述预编译组件与所述iOS应用关联;
S3、编译所述iOS应用,生成所述iOS应用的可执行文件。
由上述描述可知,本发明的有益效果在于:对组件进行预编译,并存储于预设位置,在构建iOS应用时,直接从所述预设位置获取需要的预编译组件,不仅实现了一次预编译,多次重复使用,节省资源消耗,而且大大缩短了iOS应用构建过程中源码编译环节的耗时,使构建iOS应用的效率成倍提高。
进一步的,所述组件包括第三方依赖组件和自开发组件,所述组件包含多个版本;
所述步骤S1具体包括:
对所述组件逐个版本地进行编译;
判断所述组件属于第三方依赖组件还是自开发组件,若为第三方依赖组件,则存储于第一预设位置;若为自开发组件,则存储于第二预设位置。
由上述描述可知,根据组件的不同类别存储到对应的位置,有利于对组件的快速获取,进一步提高iOS应用的构建速度。
进一步的,所述步骤S2中从所述预设位置获取与所述需要的组件对应的预编译组件具体包括:
判断缓存中是否有对应的预编译组件,若是,则直接从所述缓存中获取对应的预编译组件,否则,从所述预设位置获取对应的预编译组件,并拷贝到所述缓存中。
由上述描述可知,在进行组件获取时,先判断缓存中是否有,若有,则直接获取,若没有,在获取之后,将其拷贝到缓存中,可以保证获取组件消耗的时间,避免每次都要到预设位置获取,进一步提高iOS应用的构建速度。
进一步的,所述步骤S2中还包括:
定期清空所述缓存中缓存的预编译组件。
由上述描述可知,对缓存中缓存的预编译组件进行定期清空,能够避免缓存的空间溢满,提高缓存的组件的时效性。
进一步的,所述步骤S2中将所述预编译组件与所述iOS应用关联具体包括:
通过链接的方式将所述预编译组件与所述iOS应用关联。
由上述描述可知,通过链接的方式将所述预编译组件与所述iOS应用关联,能够直观简便地表示出与iOS应用关联的预编译组件有哪些。
请参照图2,一种iOS应用的构建终端,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
S1、对组件进行预编译,并存储于预设位置;
S2、确定要构建的iOS应用需要的组件,从所述预设位置获取与所述需要的组件对应的预编译组件,并将所述预编译组件与所述iOS应用关联;
S3、编译所述iOS应用,生成所述iOS应用的可执行文件。
由上述描述可知,本发明的有益效果在于:对组件进行预编译,并存储于预设位置,在构建iOS应用时,直接从所述预设位置获取需要的预编译组件,不仅实现了一次预编译,多次重复使用,节省资源消耗,而且大大缩短了iOS应用构建过程中源码编译环节的耗时,使构建iOS应用的效率成倍提高。
进一步的,所述组件包括第三方依赖组件和自开发组件,所述组件包含多个版本;
所述步骤S1具体包括:
对所述组件逐个版本地进行编译;
判断所述组件属于第三方依赖组件还是自开发组件,若为第三方依赖组件,则存储于第一预设位置;若为自开发组件,则存储于第二预设位置。
由上述描述可知,根据组件的不同类别存储到对应的位置,有利于对组件的快速获取,进一步提高iOS应用的构建速度。
进一步的,所述步骤S2中从所述预设位置获取与所述需要的组件对应的预编译组件具体包括:
判断缓存中是否有对应的预编译组件,若是,则直接从所述缓存中获取对应的预编译组件,否则,从所述预设位置获取对应的预编译组件,并拷贝到所述缓存中。
由上述描述可知,在进行组件获取时,先判断缓存中是否有,若有,则直接获取,若没有,在获取之后,将其拷贝到缓存中,可以保证获取组件消耗的时间,避免每次都要到预设位置获取,进一步提高iOS应用的构建速度。
进一步的,所述步骤S2中还包括:
定期清空所述缓存中缓存的预编译组件。
由上述描述可知,对缓存中缓存的预编译组件进行定期清空,能够避免缓存的空间溢满,提高缓存的组件的时效性。
进一步的,所述步骤S2中将所述预编译组件与所述iOS应用关联具体包括:
通过链接的方式将所述预编译组件与所述iOS应用关联。
由上述描述可知,通过链接的方式将所述预编译组件与所述iOS应用关联,能够直观简便地表示出与iOS应用关联的预编译组件有哪些。
实施例一
请参照图1,一种iOS应用的构建方法,包括步骤:
S1、对组件进行预编译,并存储于预设位置;
其中,所述组件包括第三方依赖组件和自开发组件,所述组件包含多个版本;
具体的,对所述组件逐个版本地进行编译;
判断所述组件属于第三方依赖组件还是自开发组件,若为第三方依赖组件,则存储于第一预设位置;若为自开发组件,则存储于第二预设位置;
其中,各个组件可以在持续集成工具Jenkins上逐个版本地进行预编译,将所述预编译结果存放到内网环境的Git项目仓库gitlab上进行管理;
S2、确定要构建的iOS应用需要的组件,从所述预设位置获取与所述需要的组件对应的预编译组件,并将所述预编译组件与所述iOS应用关联;
其中,判断缓存中是否有对应的预编译组件,若是,则直接从所述缓存中获取对应的预编译组件,否则,从所述预设位置获取对应的预编译组件,并拷贝到所述缓存中,对于缓存中缓存的预编译组件进行定期清空,通过链接的方式将所述预编译组件与所述iOS应用关联;
具体的,可以使用本地依赖库管理工具Cocoapods进行依赖安装,若Cocoapods中无缓存所述预编译组件,则从内网gitlab预编译库中安装并缓存;若有,则直接拷贝,并将所述iOS应用依赖的组件与iOS应用工程关联起来;
S3、编译所述iOS应用,生成所述iOS应用的可执行文件;
触发Xcode执行编译动作,生成最后的可执行文件,即安装包,上传所述安装包到内网内容服务器上进行保存。
实施例二
请参照图2,一种iOS应用的构建终端1,包括存储器2、处理器3以及存储在所述存储器2上并可在所述处理器3上运行的计算机程序,所述处理器3执行所述计算机程序时实现以下步骤:
S1、对组件进行预编译,并存储于预设位置;
其中,所述组件包括第三方依赖组件和自开发组件,所述组件包含多个版本;
具体的,对所述组件逐个版本地进行编译;
判断所述组件属于第三方依赖组件还是自开发组件,若为第三方依赖组件,则存储于第一预设位置;若为自开发组件,则存储于第二预设位置;
其中,各个组件可以在持续集成工具Jenkins上逐个版本地进行预编译,将所述预编译结果存放到内网环境的Git项目仓库gitlab上进行管理;
S2、确定要构建的iOS应用需要的组件,从所述预设位置获取与所述需要的组件对应的预编译组件,并将所述预编译组件与所述iOS应用关联;
其中,判断缓存中是否有对应的预编译组件,若是,则直接从所述缓存中获取对应的预编译组件,否则,从所述预设位置获取对应的预编译组件,并拷贝到所述缓存中,对于缓存中缓存的预编译组件进行定期清空,通过链接的方式将所述预编译组件与所述iOS应用关联;
具体的,可以使用本地依赖库管理工具Cocoapods进行依赖安装,若Cocoapods中无缓存所述预编译组件,则从内网gitlab预编译库中安装并缓存;若有,则直接拷贝,并将所述iOS应用依赖的组件与iOS应用工程关联起来;
S3、编译所述iOS应用,生成所述iOS应用的可执行文件;
触发Xcode执行编译动作,生成最后的可执行文件,即安装包,上传所述安装包到内网内容服务器上进行保存。
综上所述,本发明提供的一种iOS应用的构建方法及终端,对组件进行预编译,并存储于预设位置,在构建iOS应用时,直接从所述预设位置获取需要的预编译组件,不仅实现了一次预编译,多次重复使用,节省资源消耗,而且大大缩短了iOS应用构建过程中源码编译环节的耗时,使构建iOS应用的效率成倍提高。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种iOS应用的构建方法,其特征在于,包括步骤:
S1、对组件进行预编译,并存储于预设位置;
S2、确定要构建的iOS应用需要的组件,从所述预设位置获取与所述需要的组件对应的预编译组件,并将所述预编译组件与所述iOS应用关联;
S3、编译所述iOS应用,生成所述iOS应用的可执行文件。
2.根据权利要求1所述的iOS应用的构建方法,其特征在于,
所述组件包括第三方依赖组件和自开发组件,所述组件包含多个版本;
所述步骤S1具体包括:
对所述组件逐个版本地进行编译;
判断所述组件属于第三方依赖组件还是自开发组件,若为第三方依赖组件,则存储于第一预设位置;若为自开发组件,则存储于第二预设位置。
3.根据权利要求1所述的iOS应用的构建方法,其特征在于,
所述步骤S2中从所述预设位置获取与所述需要的组件对应的预编译组件具体包括:
判断缓存中是否有对应的预编译组件,若是,则直接从所述缓存中获取对应的预编译组件,否则,从所述预设位置获取对应的预编译组件,并拷贝到所述缓存中。
4.根据权利要求3所述的iOS应用的构建方法,其特征在于,
所述步骤S2中还包括:
定期清空所述缓存中缓存的预编译组件。
5.根据权利要求1所述的iOS应用的构建方法,其特征在于,
所述步骤S2中将所述预编译组件与所述iOS应用关联具体包括:
通过链接的方式将所述预编译组件与所述iOS应用关联。
6.一种iOS应用的构建终端,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现以下步骤:
S1、对组件进行预编译,并存储于预设位置;
S2、确定要构建的iOS应用需要的组件,从所述预设位置获取与所述需要的组件对应的预编译组件,并将所述预编译组件与所述iOS应用关联;
S3、编译所述iOS应用,生成所述iOS应用的可执行文件。
7.根据权利要求6所述的iOS应用的构建终端,其特征在于,
所述组件包括第三方依赖组件和自开发组件,所述组件包含多个版本;
所述步骤S1具体包括:
对所述组件逐个版本地进行编译;
判断所述组件属于第三方依赖组件还是自开发组件,若为第三方依赖组件,则存储于第一预设位置;若为自开发组件,则存储于第二预设位置。
8.根据权利要求6所述的iOS应用的构建终端,其特征在于,
所述步骤S2中从所述预设位置获取与所述需要的组件对应的预编译组件具体包括:
判断缓存中是否有对应的预编译组件,若是,则直接从所述缓存中获取对应的预编译组件,否则,从所述预设位置获取对应的预编译组件,并拷贝到所述缓存中。
9.根据权利要求8所述的iOS应用的构建终端,其特征在于,
所述步骤S2中还包括:
定期清空所述缓存中缓存的预编译组件。
10.根据权利要求6所述的iOS应用的构建终端,其特征在于,
所述步骤S2中将所述预编译组件与所述iOS应用关联具体包括:
通过链接的方式将所述预编译组件与所述iOS应用关联。
CN201711045614.1A 2017-10-31 2017-10-31 一种iOS应用的构建方法及终端 Pending CN107832057A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711045614.1A CN107832057A (zh) 2017-10-31 2017-10-31 一种iOS应用的构建方法及终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711045614.1A CN107832057A (zh) 2017-10-31 2017-10-31 一种iOS应用的构建方法及终端

Publications (1)

Publication Number Publication Date
CN107832057A true CN107832057A (zh) 2018-03-23

Family

ID=61651137

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711045614.1A Pending CN107832057A (zh) 2017-10-31 2017-10-31 一种iOS应用的构建方法及终端

Country Status (1)

Country Link
CN (1) CN107832057A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109101243A (zh) * 2018-07-20 2018-12-28 福建天泉教育科技有限公司 一种iOS依赖库的同步方法及终端
CN110764778A (zh) * 2019-10-21 2020-02-07 深圳市珍爱捷云信息技术有限公司 应用构建中的预编译方法、装置、设备及存储介质
CN111209010A (zh) * 2019-12-27 2020-05-29 天阳宏业科技股份有限公司 一种平台及其实现方法
CN111949273A (zh) * 2020-07-31 2020-11-17 深圳市珍爱云信息技术有限公司 一种基于iOS系统的文件提取方法及装置
CN112882700A (zh) * 2021-02-09 2021-06-01 京东方科技集团股份有限公司 iOS应用程序构建方法及装置、电子设备及存储介质
CN113360156A (zh) * 2020-03-04 2021-09-07 武汉斗鱼鱼乐网络科技有限公司 一种ios编译方法及相关设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103838584A (zh) * 2014-03-26 2014-06-04 北京京东尚科信息技术有限公司 一种移动终端应用的开发方法及装置
CN104077140A (zh) * 2014-07-04 2014-10-01 用友软件股份有限公司 用于持续集成的自动化编译方法和编译装置
CN107193544A (zh) * 2017-04-01 2017-09-22 北京五八信息技术有限公司 一种应用程序组件化开发方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103838584A (zh) * 2014-03-26 2014-06-04 北京京东尚科信息技术有限公司 一种移动终端应用的开发方法及装置
CN104077140A (zh) * 2014-07-04 2014-10-01 用友软件股份有限公司 用于持续集成的自动化编译方法和编译装置
CN107193544A (zh) * 2017-04-01 2017-09-22 北京五八信息技术有限公司 一种应用程序组件化开发方法及装置

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
NIMOMENG: ""基于Jenkins的CocoaPods化iOS项目构建+蒲公英"", 《HTTPS://WWW.MEIWEN.COM.CN/SUBJECT/RUYZSTTX.HTML》 *
关东升: "《iOS开发指南 从Hello World到App Store上架 第4版》", 30 June 2016 *
刘坤: ""Cocoapods代码管理"", 《HTTPS://BLOG.CNBLUEBOX.COM/BLOG/2014/03/31/COCOAPODSDAI-MA-GUAN-LI》 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109101243A (zh) * 2018-07-20 2018-12-28 福建天泉教育科技有限公司 一种iOS依赖库的同步方法及终端
CN110764778A (zh) * 2019-10-21 2020-02-07 深圳市珍爱捷云信息技术有限公司 应用构建中的预编译方法、装置、设备及存储介质
CN110764778B (zh) * 2019-10-21 2024-02-06 深圳市珍爱捷云信息技术有限公司 应用构建中的预编译方法、装置、设备及存储介质
CN111209010A (zh) * 2019-12-27 2020-05-29 天阳宏业科技股份有限公司 一种平台及其实现方法
CN113360156A (zh) * 2020-03-04 2021-09-07 武汉斗鱼鱼乐网络科技有限公司 一种ios编译方法及相关设备
CN113360156B (zh) * 2020-03-04 2023-11-14 武汉斗鱼鱼乐网络科技有限公司 一种ios编译方法及相关设备
CN111949273A (zh) * 2020-07-31 2020-11-17 深圳市珍爱云信息技术有限公司 一种基于iOS系统的文件提取方法及装置
CN112882700A (zh) * 2021-02-09 2021-06-01 京东方科技集团股份有限公司 iOS应用程序构建方法及装置、电子设备及存储介质
WO2022170801A1 (zh) * 2021-02-09 2022-08-18 京东方科技集团股份有限公司 iOS应用程序构建方法及装置、电子设备及存储介质
CN112882700B (zh) * 2021-02-09 2024-04-23 京东方科技集团股份有限公司 iOS应用程序构建方法及装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN107832057A (zh) 一种iOS应用的构建方法及终端
Wimmer et al. Initialize once, start fast: application initialization at build time
Chun et al. Clonecloud: elastic execution between mobile device and cloud
US10114745B2 (en) Assisted garbage collection in a virtual machine
US9672152B2 (en) Size dependent type in accessing dynamically typed array objects
US9104449B2 (en) Optimized execution of dynamic languages
EP1316882A2 (en) System and method for emulating code
US8335773B2 (en) Stable linking and patchability of business processes through hierarchical versioning
CN111061638A (zh) 一种iOS系统调试的方法、装置及服务器
US6665671B2 (en) System and method for optimization of shared data
CN101299192A (zh) 一种非对齐访存的处理方法
US11397568B2 (en) Escape analysis support for method redefinition
CN104391733A (zh) 一种依据依赖关系动态编译软件包的方法
US7472380B1 (en) Processing system with component architecture platform support
US11204767B2 (en) Context switching locations for compiler-assisted context switching
Gregersen et al. Towards a Dynamic-update-enabled JVM
EP2756396B1 (en) Simulation of static members and parameterized constructors on an interface-based api
US20050216900A1 (en) Instruction scheduling
RU2554509C2 (ru) Система и способ распределенных вычислений
CN103942051A (zh) 基于paas平台的应用部署方法和装置
Lund et al. Revolutionizing Embedded Software
Kim et al. Disclosure: Improving Performance and Security of Web App Migration in Liquid Computing
Kalibera Replicating real‐time garbage collector
Qin et al. Characterizing WebAssembly Bytecode
Wernli Theseus: whole updates of Java server applications

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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20180323