一种iOS编译速度提升的方法和装置制造方法及图纸

技术编号:32362207 阅读:13 留言:0更新日期:2022-02-20 03:31
本发明专利技术提供的一种iOS编译速度提升的方法及装置,通过解析组件库中的podspec文件,获取需要生成的静态库组件;根据所述静态库组件生成二进制静态库,并通过链接将所述二进制静态库合并到主工程中,无需参与主工程的编译,直接进行链接操作,从而提高编译速度和编译效率。率。

【技术实现步骤摘要】
一种iOS编译速度提升的方法和装置


[0001]本专利技术涉及计算机
,特别涉及一种iOS编译速度提升的方法和装置。

技术介绍

[0002]传统的iOS工程采用CocoaPods进行源码组件库标签依赖,当工程组件突破100+数量、工程代码量达到50w行以上时,由于组件数量多,每个组件均需要重新编译生成静态库,编译速度慢,另外组件通常以源码方式集成,编译速度取决于机器性能,对设备要求高,且需要较长的构建时间,例如,以开发机器(2018款Mac mini配置i7/32G/256M)及打包设备(2018款Mac mini配置i7/32G/512M)编译速度偏慢平均构建时间需要约15分钟左右。

技术实现思路

[0003](一)要解决的技术问题
[0004]为了解决现有技术的上述问题,本专利技术提供一种iOS编译速度提升的方法及装置,无需参与主工程的编译,直接进行链接操作,提高编译速度和编译效率。
[0005](二)技术方案
[0006]为了达到上述目的,本专利技术采用的一种技术方案为:
[0007]一种iOS编译速度提升的方法,包括步骤:
[0008]S1、解析组件库中的podspec文件,获取需要生成的静态库组件;
[0009]S2、根据所述静态库组件生成二进制静态库,并通过链接将所述二进制静态库合并到主工程中。
[0010]为了达到上述目的,本专利技术采用的另一种技术方案为:
[0011]一种iOS编译速度提升的装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以下步骤:
[0012]S1、解析组件库中的podspec文件,获取需要生成的静态库组件;
[0013]S2、根据所述静态库组件生成二进制静态库,并通过链接将所述二进制静态库合并到主工程中。
[0014](三)有益效果
[0015]本专利技术的有益效果在于:通过解析组件库中的podspec文件,获取需要生成的静态库组件;根据所述静态库组件生成二进制静态库,并通过链接将所述二进制静态库合并到主工程中,无需参与主工程的编译,直接进行链接操作,从而提高编译速度和编译效率。
附图说明
[0016]图1为本专利技术实施例的iOS编译速度提升的方法流程图;
[0017]图2为本专利技术实施例的iOS编译速度提升的装置的整体结构示意图。
[0018]【附图标记说明】
[0019]1:iOS编译速度提升的装置;
[0020]2:存储器;
[0021]3:处理器。
具体实施方式
[0022]为了更好的解释本专利技术,以便于理解,下面结合附图,通过具体实施方式,对本专利技术作详细描述。
[0023]实施例一
[0024]请参照图1,一种iOS编译速度提升的方法,包括步骤:
[0025]S0、通过配置组件库支持modulemap对组件库进行预编译处理,所述组件库包括iOS组件库、第三方开源库和自有研发库。
[0026]S1、解析组件库中的podspec文件,获取需要生成的静态库组件;
[0027]S2、根据所述静态库组件生成二进制静态库,并通过链接将所述二进制静态库合并到主工程中。
[0028]步骤S2具体包括:
[0029]S21、判断所述静态库的生成格式是否为预设格式,若是,则调用xcodebuild命令生成二进制静态库;
[0030]S22、通过链接将所述二进制静态库合并到主工程中。
[0031]所述预设格式包括.a、.framework和.xcframework。
[0032]所述步骤S22具体为:
[0033]链接过程中判断所述二进制静态库中每个.o文件对应的符号表是否未解析,若否,则不参与全局符号表的合并;
[0034]否则,合并生成全局符号表,并将所述全局符号表合并到主工程中。
[0035]由于组件库中组件通常以源码方式集成,传统iOS编译方式是先对源码进行编译生成.o文件,然后处理.o文件进行符号表链接,然后再合并到主工程中;
[0036]而本专利技术通过将需要生成的静态库组件,生成相应的二进制静态库,无需参与主工程的编译,直接进行链接操作,从而提高编译速度和编译效率,无侵入,不会破坏现有代码结构,自动推送生成二进制静态库标签,不会占用开发时间。
[0037]实施例二
[0038]本实施例和实施例一的区别在于,本实施例将结合具体的应用场景进一步说明本专利技术上述iOS编译速度提升的方法是如何实现的:
[0039]1、通过配置组件库支持modulemap对组件库进行预编译处理,组件库编译成modules模块列表,被引用modules只会编译一次,可以节省编译时间并防止引用泛滥的问题;
[0040]所述组件库包括iOS组件库、第三方开源库和自有研发库。
[0041]2、二进制静态库,不参与主工程的编译,直接进行链接操作,从而提高编译速度和编译效率;
[0042]解析组件库中的podspec文件,获取需要生成的静态库组件;
[0043]判断所述静态库的生成格式是否为预设格式,若是,则调用xcodebuild命令生成二进制静态库;
[0044]所述预设格式包括.a、.framework和.xcframework。
[0045]具体的,支持多种二进制库格式,如.a、.framework和.xcframework
[0046]支持modulemap二进制库,组件库可以在OC与Swift混编工程中无缝衔接。
[0047]链接过程中判断所述二进制静态库中每个.o文件对应的符号表是否未解析,若否,则不参与全局符号表的合并;
[0048]否则,合并生成全局符号表,并将所述全局符号表合并到主工程中,全局符号表只保留一份符号表数据。
[0049]实施例三
[0050]请参照图2,一种iOS编译速度提升的装置1,包括存储器2、处理器3及存储在存储器2上并可在处理器3上运行的计算机程序,所述处理器3执行所述程序时实现实施例一中的各个步骤。
[0051]以上所述仅为本专利技术的实施例,并非因此限制本专利技术的专利范围,凡是利用本专利技术说明书及附图内容所作的等同变换,或直接或间接运用在相关的
,均同理包括在本专利技术的专利保护范围内。
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种iOS编译速度提升的方法,其特征在于,包括步骤:S1、解析组件库中的podspec文件,获取需要生成的静态库组件;S2、根据所述静态库组件生成二进制静态库,并通过链接将所述二进制静态库合并到主工程中。2.根据权利要求1所述的iOS编译速度提升的方法,其特征在于,步骤S1之前还包括步骤:S0、通过配置组件库支持modulemap对组件库进行预编译处理,所述组件库包括iOS组件库、第三方开源库和自有研发库。3.根据权利要求1所述的iOS编译速度提升的方法,其特征在于,步骤S2具体包括:S21、判断所述静态库的生成格式是否为预设格式,若是,则调用xcodebuild命令生成二进制静态库;S22、通过链接将所述二进制静态库合并到主工程中。4.根据权利要求3所述的iOS编译速度提升的方法,其特征在于,所述预设格式包括.a、.framework和.xcframework。5.根据权利要求3所述的iOS编译速度提升的方法,其特征在于,所述步骤S22具体为:链接过程中判断所述二进制静态库中每个.o文件对应的符号表是否未解析,若否,则不参与全局符号表的合并;否则,合并生成全局符号表,并将所述全局符号表合并到主工程中。6.一种iOS编译速度提升的装置,包括存储器、处理器及...

【专利技术属性】
技术研发人员:胡敏唐光宇闫乃永卢学明
申请(专利权)人:宝宝巴士股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1