掌桥专利:专业的专利平台
掌桥专利
首页

iOS应用自动化打包预缓存数据的方法、装置、电子设备及计算机可读介质

文献发布时间:2023-06-19 09:24:30


iOS应用自动化打包预缓存数据的方法、装置、电子设备及计算机可读介质

技术领域

本发明涉及计算机领域,更具体而言涉及一种iOS应用自动化打包预缓存数据的方法和装置。

背景技术

手机或电脑等的应用中通常会缓存一些应用数据,例如app配置数据、app首页启动时的静态数据、js文件数据等。为了避免在用户打开页面后再向服务器请求数据所造成的延迟,iOS应用通常会把相关数据预先缓存到ipa文件中,ipa文件指的是apple程序应用文件iphone application。

现有数据预缓存技术一般会通过给定json数据文件或者database 数据库文件,通过脚本获取数据,来实现打包时将数据缓存到ipa文件中。

这种方式需要通过脚本对数据进行加密,因此还需要分析加密脚本的算法并通过脚本实现解密,因此带来额外的分析加密算法和实现解密脚本的成本。

发明内容

发明欲解决的技术问题

有鉴于此,本发明提供一种iOS应用自动化打包预缓存数据的方法和装置,能够方便地实现预缓存数据的加密解密,不需要另行分析加密脚本算法并通过脚本实现解密,实现起来成本较低。

用于解决问题的技术手段

为了解决上述问题,本发明的一个方面提供一种iOS应用自动化打包预缓存数据的方法,包括:

二进制可执行文件生成步骤,利用基于Objective-C语言的组件库生成二进制可执行文件;以及

获取预缓存数据的步骤,将所述二进制可执行文件放入iOS工程中,通过执行所述二进制可执行文件来获取预缓存数据,并将该预缓存数据归档到ipa包中。

根据该方案,通过利用基于Objective-C语言的组件库生成二进制可执行文件,从而能够利用基于Objective-C语言的组件库对数据进行加密,由于对预缓存数据进行解密时也是利用基于Objective-C语言的组件库,因此能够方便地实现预缓存数据的加密解密,不需要另行分析加密脚本算法并通过解密脚本实现解密,实现起来成本较低。

在上述方法中,优选为,所述获取预缓存数据的步骤具体包括:

配置参数,并将该参数传递给shell脚本;以及

利用shell脚本向所述二进制可执行文件传递所述参数,所述二进制可执行文件根据所述参数来获取预缓存数据。

在上述方法中,进一步优选为,所述参数包括:版本号、环境参数以及应用id,所述二进制可执行文件根据所述参数来获取特定版本、环境以及应用id所需的预缓存数据。

由此,可以利用二进制可执行文件在自动化预缓存数据过程中,将特定的版本、环境、应用id下的业务数据缓存到ipa包中。

在上述方法中,优选为,通过jenkins反复向shell脚本传递所述参数,并通过shell脚本将所述参数传递给所述二进制可执行文件,从而利用所述二进制可执行文件反复请求预缓存数据。

由此,二进制可执行文件可以反复地请求预缓存数据,从而当预缓存数据发生改变时可以及时地获取更新后的预缓存数据。

在上述方法中,优选为,所述预缓存数据包括app配置数据、app 首页启动时的静态数据、js文件数据。

在上述方法中,进一步优选为,当需要缓存不同种类的数据时,重新生成二进制可执行文件,将所述二进制可执行文件放入iOS工程中,通过执行所述二进制可执行文件来获取预缓存数据。

由此,当需要缓存的数据的种类改变或增加时,也能够通过更换二进制可执行文件来恰当地应对。

本发明的另一方面还提供一种iOS应用自动化打包预缓存数据的装置,包括:

二进制可执行文件生成模块,所述二进制可执行文件生成模块利用基于Objective-C语言的组件库生成二进制可执行文件;以及

获取预缓存数据模块,所述获取预缓存数据模块将所述二进制可执行文件放入iOS工程中,通过执行所述二进制可执行文件来获取预缓存数据,并将该预缓存数据归档到ipa包中。

本发明还提供一种iOS应用自动化打包预缓存数据的电子设备,包括:

一个或多个处理器;以及

存储装置,用于存储一个或多个程序,

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上所述的方法。

本发明还提供一种计算机可读介质,其上存储有程序,该程序被处理器执行,以实现如上所述的方法。

发明效果

根据该方案,通过利用基于Objective-C语言的组件库生成二进制可执行文件,从而能够利用基于Objective-C语言的组件库对数据进行加密,由于对预缓存数据进行解密时也是利用基于Objective-C语言的组件库,因此能够方便地实现预缓存数据的加密解密,不需要另行分析加密脚本算法并通过解密脚本实现解密,实现起来成本较低。

附图说明

图1是示出了本发明第一实施例的iOS应用自动化打包预缓存数据的方法的流程图。

图2是示出了本发明第二实施例的iOS应用自动化打包预缓存数据的方法的流程图。

图3是示出了本发明第三实施例的iOS应用自动化打包预缓存数据的装置的构成图。

具体实施方式

以下,参照附图对本发明的实施方式所涉及的iOS应用自动化打包预缓存数据的方法和装置进行详细说明。需要说明的是,本发明并不被该实施方式所限定。另外,在下述的实施方式中的构成要素中包含本领域技术人员能够容易想到的要素或者实质上相同的要素。

图1是示出了本发明第一实施例的iOS应用自动化打包预缓存数据的方法的流程图。图2是示出了本发明第二实施例的iOS应用自动化打包预缓存数据的方法的流程图。图3示出了本发明的第三实施例的iOS应用自动化打包预缓存数据的装置的构成图。

首先结合图1说明本发明第一实施例的iOS应用自动化打包预缓存数据的方法。

如图1所示,本发明的一个优选实施例提供一种iOS应用自动化打包预缓存数据的方法,与以往的打包预缓存数据的方法不同,其利用基于Objective-C语言的组件库来实现对预缓存数据的加密。具体地,所述方法包括:二进制可执行文件生成步骤S11,利用基于Objective-C 语言的组件库生成二进制可执行文件;以及获取预缓存数据的步骤 S12,将在步骤S11中生成的二进制可执行文件放入iOS工程中,通过执行该二进制可执行文件来获取预缓存数据,并将该预缓存数据归档到ipa包中。

如上文所述,在现有的技术中是通过脚本来获取数据,并在打包时将数据缓存到ipa文件中。此时,需要通过脚本对数据进行加密,而为了解密,需要分析加密脚本的算法并通过解密脚本实现解密,因此带来了额外的分析加密算法和实现解密算法的成本。而根据本发明的上述方案,是利用基于Objective-C语言的组件库来获取预缓存数据并加密,由于对预缓存数据进行加密和iOS工程对已预缓存数据进行解密使用的都是基于Objective-C语言的组件库,因此不需要关注具体加密解密的算法,节约了成本。

需要说明的是,现有技术中,由于脚本语言不支持嵌入到iOS系统中,不能直接调用基于Objective-C语言的组件库,所以才导致无法利用基于Objective-C语言的组件库实现数据的缓存。而本发明中,通过生成二进制可执行文件来解决这一缺陷。

以下,对上述方法各个步骤进行详细描述。关于二进制可执行文件生成步骤S11,具体地,首先通过Xcode来创建基于macOS系统的工程(command Line Project),在该工程中创建podfile引入iOS组件库(基于Objective-C语言的组件库),并执行pod install命令获取该 iOS组件库。接着,编译该工程文件,从而生成二进制可执行文件。

利用该二进制可执行文件来解决现有技术中由于脚本不支持嵌入到iOS系统中,不能直接调用Objective-C语言的组件库,导致无法利用基于Objective-C语言的组件库实现数据的加密缓存的缺陷,能够利用基于Objective-C语言的组件库来实现相关数据的获取以及存储。从而避免了现有技术中需要单独的脚本来实现加密,还需要分析加密脚本的算法进行解密的问题,实现成本较低。

关于获取预缓存数据的步骤,具体地,首先,将通过编译得到的二进制可执行文件放到iOS工程指定目录下,该iOS工程即是指生成 ipa包的工程。二进制可执行文件发起网络请求,请求服务端数据,将数据写入到iOS工程目录中。由此,利用该二进制可执行文件获取到预缓存数据,并将该预缓存数据归档到ipa包中。

下面参照图2对本发明的第二实施例的iOS应用自动化打包预缓存数据的方法进行说明。

本发明的第二实施例的iOS应用自动化打包预缓存数据的方法例如通过jenkins反复向shell脚本传递参数,并通过shell脚本将该参数传递给二进制可执行文件,从而利用该二进制可执行文件反复请求预缓存数据。

需要说明的是,参数指示特定的版本、环境、应用id,通过将该参数传递给二进制可执行文件,从而将与特定的版本、环境、应用id 对应的业务数据生成数据文件,并写入iOS工程目录。

具体地,第二实施例的iOS应用自动化打包预缓存数据的方法的步骤例如包括:

S21,利用基于Objective-C语言的组件库生成二进制可执行文件;

S22,将该二进制可执行文件放入iOS工程中;

S23,jenkins根据页面操作来配置参数,并将该参数传递给shell 脚本;

S24,shell脚本将参数传递给二进制可执行文件并执行该二进制可执行文件;

S25,二进制可执行文件根据shell脚本传递的参数来向服务器请求预缓存数据;

S26,将步骤S25中得到的预缓存数据归档到ipa包中。

其中,iOS工程目录通过add file的方式将由预缓存数据生成的数据文件引入到工程的配置文件中,建立数据文件与工程的联系,从而将生成的数据文件归档到ipa包中,这样生成的ipa包中包含通过以上过程获取到的预缓存数据。

由此,利用基于Objective-C语言的组件库将业务数据缓存到ipa 包中,由于加密与解密过程使用同一套组件库,因此不需要关注具体加密解密算法,节约了成本。

在本发明的iOS应用自动化打包预缓存数据的实现方法中,二进制可执行文件会读取业务配置文件,读取配置数据后将数据对象化,然后遍历数据,同步地执行不同业务,确保业务的可配置、功能的可扩展。同步执行过程中如果遇到异常会抛出异常,以使使用者能够明确地知道哪个步骤的什么原因出现了错误。

相比于本发明的第一实施例,在第二实施例中,可以通过jenkins 反复地向shell脚本传递参数,shell脚本将该参数传递给二进制可执行文件,从而二进制可执行文件可以反复地请求预缓存数据,从而当预缓存数据发生改变时可以及时地获取更新后的预缓存数据。

但是,在对所有app都配置同样的预缓存数据的情况下,也可以不向二进制可执行文件传递参数,而由二进制可执行文件按照默认设定来获取预缓存数据。

另外,也可以只由shell脚本来向二进制可执行文件传递一次参数,当需要更新预缓存数据时,再由操作人员来重新配置参数,并再次利用shell脚本传递参数。

下面结合工程中的实施过程对本发明进行说明,在以下的说明中,以缓存weex的页面配置为例,具体说明其实施步骤。

本发明主要分为两个部分,一部分为生成二进制可执行文件,另一部分为将二进制可执行文件放在iOS工程中以获取预缓存数据。这些步骤主要在RD(开发者)开发机器上执行。

下面首先说明生成二进制可执行文件的步骤。

步骤S31,通过Xcode创建基于mac系统的MMKVCommon Line 工程,并在该工程根目录创建podfile文件,编辑该podfile文件,引入基于Objective-C的组件库“MMKV”(pod’MMKV’,’1.0.15’),终端执行pod install,获取组件库并配置工程。

步骤S32,在上述的MMKVCommon Line工程中,新建业务处理类YMTDefaultWeexConfigBusiness。

预缓存数据例如包括app配置数据、app首页启动时的静态数据、 js文件数据等,当需要缓存不同种类的预缓存数据时,需要设置不同的业务处理类。因此在本发明中,当需要获取不同种类的预缓存数据时,更换不同的二进制可执行文件,该二进制可执行文件具有不同的数据处理类,从而能够应对需要缓存不同种类的预缓存数据的情况。

步骤S33,执行Xcode run指令对MMKVcommon工程进行编译,生成二进制可执行文件。

由以上步骤,生成了用于获取预缓存数据的二进制可执行文件,该二进制可执行文件是基于Objective-C组件库生成的。在获取预缓存数据时是利用Objective-C组件库来对数据进行加密,而在app启动时,也是利用基于Objective-C组件库来对数据进行解密,因此避免了现有技术中需要单独的脚本来实现加密,还需要分析加密脚本的算法进行解密的问题,实现成本较低。

在利用该二进制文件获取预缓存数据时,jenkins将版本、环境参数、应用id等参数传递到shell脚本,shell脚本传递到二进制可执行文件。在步骤S11的MMKVCommonLine工程中,利用main(int argc, const char*argv[])方法,通过形式参数argv[]数组,获取版本、环境参数、应用id,储存到单例中。进而在YMTDefaultWeexConfigBusiness 中开发获取weex相关配置数据、储存数据逻辑,根据版本、环境参数、应用id来配置网络请求的链接。

以上说明的是生成本发明的iOS应用自动化打包预缓存数据的实现方法所使用的二进制可执行文件的步骤。以下说明利用该二进制可执行文件来获取预缓存数据的步骤。

对于iOS工程,在IOS工程中配置业务配置MMKVBusinessConfig 中,添加一个用户标签预缓存数据业务,配置业务id为default weex config id,秘钥为cryptKey。

由此,在MMKVcommonLine工程中利用main方法中获取上述用户标签预缓存数据业务的id和秘钥。具体地,MMKVCommonLine工程通过相对路径,读取iOS工程中业务配置文件MMKVBusinessConfig,获取json数据,解析后得到该用户标签预缓存数据业务id为default_weex_config以及其对应的秘钥为cryptKey。根据该步骤获取的配置数据,main方法会根据id映射到步骤S32中创建的业务处理类YMTDefaultWeexConfigBusiness,来具体处理相关逻辑。由此实现二进制可执行文件与iOS工程的关联。

在实际获取预缓存数据时,如上述步骤S21至S26的过程,生成数据文件并生成ipa包。从而实现自动化打包预缓存数据。

下面结合附图3说明本发明的第三实施例的iOS应用自动化打包预缓存数据的装置,包括:

二进制可执行文件生成模块100,该二进制可执行文件生成模块 100利用基于Objective-C语言的组件库生成二进制可执行文件;以及获取预缓存数据模块200,该获取预缓存数据模块将二进制可执行文件放入iOS工程中,通过执行该二进制可执行文件来获取预缓存数据,并将该预缓存数据归档到ipa包中。

由此,利用基于Objective-C语言的组件库将业务数据缓存到ipa 包中,由于加密与解密过程使用同一套组件库,因此不需要关注具体加密解密算法,节约了成本。

本发明还提供一种iOS应用自动化打包预缓存数据的电子设备,包括:一个或多个处理器;以及存储装置,用于存储一个或多个程序,当所述一个或多个程序被上述一个或多个处理器执行,使得该一个或多个处理器实现如上所述的方法。

本发明还提供一种计算机可读介质,其上存储有程序,该程序被处理器执行,以实现如上所述的方法。

以上对本发明所提供的iOS应用自动化打包预缓存数据的方法和装置进行了详细的说明。本领域技术人员在不超出本发明的实质内容的范围内对实施方式的要素所做的变更,都落入本发明的保护范围内。

相关技术
  • iOS应用自动化打包预缓存数据的方法、装置、电子设备及计算机可读介质
  • 数据缓存方法、装置、电子设备及计算机可读介质
技术分类

06120112149450