1.一种IOS编译方法,其特征在于,包括:通过git获取各组件的源代码;
通过第三类库管理工具CocoaPods组件管理方式pod install构建整体工程,所述整体工程包括所述各组件;
编译所述整体工程,得到所述整体工程中各组件对应的静态库,并将所述静态库存储至共享缓存目录中;所述将所述静态库存储至共享缓存目录中包括:将所述各组件对应的静态库以组件名称、组件版本和组件编译模式关联存储至所述共享缓存目录中,所述组件编译模式包括Debug模式或者Release模式;
当所述整体工程中存在更新源代码的第一组件时,将所述第一组件编译成所述第一组件对应的静态库,以使得当所述整体工程需要所述第一组件时,将所述第一组件对应的静态库组合至所述整体工程中;
将所述各组件的源代码以所述源代码的文件名和所述源代码的md5值关联存储至本地数据库;
所述通过第三类库管理工具CocoaPods组件管理方式pod install构建整体工程,所述整体工程包括所述各组件包括:判断当前组件是否已存在静态库;若存在,则通过所述CocoaPods将所述当前组件的静态库组合进所述整体工程中;若不存在,则通过所述CocoaPods将所述当前组件的源代码组合进所述整体工程中。
2.根据权利要求2所述的方法,其特征在于,所述判断当前组件是否已存在静态库包括:
在执行所述pod install时查找所述当前组件的二进制文件,并判断所述二进制文件是否以commit形式安装;
若是,则根据所述当前组件的名称、所述当前组件的版本和所述当前组件的编译模式在所述共享缓存目录中确定是否存在所述当前组件对应的静态库。
3.根据权利要求2所述的方法,其特征在于,所述根据所述当前组件的名称、所述当前组件的版本和所述当前组件的编译模式在所述共享缓存目录中确定是否存在所述当前组件对应的静态库包括:
按照文件目录路径所述在所述共享缓存目录中查找所述当前组件对应的静态库,所述文件目录路径包括当前组件的编译模式/库名称/所述当前组件的版本/lib库名称.a。
4.根据权利要求1所述的方法,其特征在于,所述编译所述整体工程包括:当编译所述整体工程中第二组件时,确定所述第二组件的源代码是否存在中间目标文件,所述第二组件为所述整体工程中的任一组件;
若存在,则使用所述中间目标文件进行编译;
若不存在,则使用所述第二组件的源代码进行编译。
5.根据权利要求1所述的方法,其特征在于,所述将所述各组件对应的静态库以组件名称、组件版本和组件编译模式关联存储至所述共享缓存目录中包括:读取所述pod install生成的配置文件,以获取全部静态库以及所述各静态库分别对应的版本;
按照编译输出目录/所述各组件对应的静态库名称/lib库名称.a在所述配置文件中查找所述各组件对应的静态库;
按照所述组件编译模式/库名称/版本/lib库名称.a的文件路径关联存储至所述共享缓存目录中。
6.根据权利要求1所述的方法,其特征在于,所述通过git获取各组件的源代码包括:基于超文本传输协议http,通过git clone命令获取各组件的源代码;
或者,
当系统中安装安全外壳协议SSH时,基于所述SSH,通过命令git pull ssh地址获取所述各组件的源代码。
7.一种编译设备,其特征在于,包括:获取单元,用于通过git获取各组件的源代码;
构建单元,用于通过第三类库管理工具CocoaPods组件管理方式pod install构建整体工程,所述整体工程包括所述各组件;所述将所述静态库存储至共享缓存目录中包括:将所述各组件对应的静态库以组件名称、组件版本和组件编译模式关联存储至所述共享缓存目录中,所述组件编译模式包括Debug模式或者Release模式;
编译单元,用于编译所述整体工程,得到所述整体工程中各组件对应的静态库,并将所述静态库存储至共享缓存目录中;
所述编译单元还用于当所述整体工程中存在更新源代码的第一组件时,将所述第一组件编译成所述第一组件对应的静态库,以使得当所述整体工程需要所述第一组件时,将所述第一组件对应的静态库组合至所述整体工程中;
存储单元,用于将所述各组件的源代码以所述源代码的文件名和所述源代码的md5值关联存储至本地数据库。
8.如权利要求7所述的设备,其特征在于,所述编译单元还具体用于:当编译所述整体工程中第二组件时,确定所述第二组件的源代码是否存在中间目标文件,所述第二组件为所述整体工程中的任一组件;
若存在,则使用所述中间目标文件进行编译;
若不存在,则使用所述第二组件的源代码进行编译。
9.一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1-7任意一项所述的方法。
10.一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如权利要求1-7任意一项所述的方法。