一种基于iOS系统静默修复已上线App中问题的方法和装置与流程

文档序号:14249191阅读:434来源:国知局
一种基于iOS系统静默修复已上线App中问题的方法和装置与流程

本发明涉及计算机软件领域,具体涉及一种基于ios系统下静默修复已上线app中问题的方法和装置。



背景技术:

移动app在上线发布之后,总会出现一些bug,导致用户刚升级到新版本就出现crash,严重影响用户体验。

在现有技术中,开发者往往需要重新开发一个新版本的app,并且让用户重新安装才能解决出现的问题。

另外,ios应用程序上架到appstore需要等待苹果公司的审核,审核时间周期漫长。待用户重新下载升级之后才能完成此次bug的修复工作,但是,这种方式极其容易导致用户流失,这对企业来说影响非常严重。



技术实现要素:

有鉴于此,本发明的目的是提供一种基于ios系统静默修复已上线app中问题的方法和装置,以解决为了修复已上线app出现的bug而依赖新版本app发布的问题,即当已发布的app出现问题时,不需要发布新版本即可静默解决用户已安装于移动客户端的app的使用问题。

本发明的技术方案是提供一种基于ios系统下静默修复已上线app中问题的方法,其中所述方法包括:

开发针对解决已上线app的特定问题的js文件,并将所述js文件上传至服务器;

当所述app启动时向所述服务器发起请求,如果所述服务器存在所述js文件,则将所述服务器上的所述js文件下载至执行所述app的客户端;

当使用对应于所述app的特定问题的功能时,加载并执行所述js文件。

可选地,该方法还包括:在开发针对解决已上线app的特定问题的js文件,并将所述js文件上传至服务器的步骤之前,将所述js文件按照预设命名规则进行命名,计算所述js文件对应的第一md5值,并将所述js文件进行rsa加密。

可选地,该方法还包括:在所述app启动时,将所述服务器上的所述js文件下载至执行所述app的客户端的步骤之后,

对所述js文件进行rsa解密,计算所述js文件的第二md5值,并根据所述第二md5值与所述第一md5值进行验证;

如果rsa解密失败和/或md5验证未通过,则将所述js文件视为无效文件;

如果rsa解密成功且md5验证通过,则对所述js文件进行格式校验,以确认所述js文件符合js转oc的语法规则。

本发明还提供一种基于ios系统下静默修复已上线app中问题的装置,所述装置包括:

oc与js开发模块,用于开发针对解决已上线app的特定问题的js文件,并将所述js文件上传至服务器;

js文件下载模块,用于当所述app启动时向所述服务器发起请求,如果所述服务器存在所述js文件,则将所述服务器上的所述js文件下载至执行所述app的客户端;

js文件执行模块,用于当使用对应于所述app的特定问题的功能时,加载并执行所述js文件。

可选地,该装置还包括:文件加密模块,用于将所述js文件按照预设命名规则进行命名,计算所述js文件对应的第一md5值,并将所述js文件进行rsa加密。

可选地,该装置还包括:文件解密模块,用于对所述js文件进行rsa解密,计算所述js文件的第二md5值,并根据所述第二md5值与所述第一md5值进行验证;

如果rsa解密失败和/或md5验证未通过,则将所述js文件视为无效文件;

如果rsa解密成功且md5验证通过,则对所述js文件进行格式校验,以确认所述js文件符合js转oc的语法规则。

通过本发明提供的基于ios系统下静默修复已上线app中问题的方法和装置,能够无需发布新版本app,并且通过下载js脚本修复已上线app的bug,并且在整个过程中无需用户进行任何操作,因此对于用户来说是无感知修复,因此提升了用户体验。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:

图1为本发明一实施例的基于ios系统下静默修复已上线app中问题的方法流程示意图;

图2为本发明一实施例的基于ios系统下静默修复已上线app中问题的装置的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。

本领域技术技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。

示例性方法

下面请参考图1对本发明示例性的实施方式的基于ios系统下静默修复已上线app中问题的方法进行介绍。需要注意的是,上述应用场景仅是为了便于理解本发明的精神和原理而示出,本发明的实施方式在此方面不受任何限制。相反,本发明的实施方式可以应用于适用的任何场景。

如图所示,该方法包括:

步骤s101:开发针对解决已上线app的特定问题的js文件,并将所述js文件上传至服务器;

步骤s102:当所述app启动时向所述服务器发起请求,如果所述服务器存在所述js文件,则将所述服务器上的所述js文件下载至执行所述app的客户端;

步骤s103:当使用对应于所述app的特定问题的功能时,加载并执行所述js文件。

可选地,该方法还包括:在开发针对解决已上线app的特定问题的js文件,并将所述js文件上传至服务器的步骤之前,将所述js文件按照预设命名规则进行命名,计算所述js文件对应的第一md5值,并将所述js文件进行rsa加密。

可选地,该方法还包括:在所述app启动时,将所述服务器上的所述js文件下载至执行所述app的客户端的步骤之后,对所述js文件进行rsa解密,计算所述js文件的第二md5值,并根据所述第二md5值与所述第一md5值进行验证;

如果rsa解密失败和/或md5验证未通过,则将所述js文件视为无效文件;

如果rsa解密成功且md5验证通过,则对所述js文件进行格式校验,以确认所述js文件符合js转oc的语法规则。

实施例

下面结合一个具体实施例对本发明进行具体描述,然而值得注意的是该具体实施例仅是为了更好地描述本发明,并不构成对本发明的不当限定。

oc是动态语言,在oc上所有的方法调用、类的生成都通过objective-cruntime在运行时进行,我们可以通过类名、方法名反射得到相应的类和方法,也可以在运行时替换某个类的方法,也可以新注册一个类,为类添加方法,这是runtime所具有的特性。

所以app在运行时可以通过类名、方法名调用到任何oc的方法,替换任何类的实现以及新增任意类。其实在oc运行时的上层,开发者声明的方法名、类名,在运行时都是当成字符串去处理的。字符串的标识有类名、方法名,不同的标示做不同的处理。在ios7之后,ios系统支持运行javascript脚本语言,使得js和oc无缝衔接,基于oc语言runtime的特性,js传递字符串给oc,oc通过runtime接口调用和替换oc的方法,以达到我们静默修复问题的目的。

在本地用javascript语言开发针对解决已上线app的特定问题的js文件,对该js文件按照服务端定义的命名规则进行命名,计算开发完的js文件的第一md5值,并利用rsa加密算法对该js文件进行加密,然后将该第一md5值和已经md5加密后的js文件上传至服务端。

app在启动时都会向服务端发起https协议请求获取服务端上的js文件,并且该请求仅随着每次启动仅获取一次。因为服务端会记录当前该app的请求记录,并且如果服务端存在js文件,则会将该js文件自动下载至客户端。

客户端会对该js文件进行rsa解密,并计算解密后的该js文件的第二md5值。然后,将该第二md5值与服务端中的该第一md5值进行验证操作,以判断下载的该js文件与上传的js文件是否一致。

如果rsa解密失败和/或md5验证未通过,则将该js文件视为无效文件;

如果rsa解密成功且md5验证通过,则对该js文件进行格式校验,以确认该js文件符合js转oc的语法规则,最后将该js文件加载到该app运行内存中。

此时,因为只是加载了该js文件,但是该js文件不会做任何操作。在app运行期间,如果发现某个功能是存在bug的,并且该js文件的作用就是修复这个bug,那么该app在执行到这个功能时,该js文件中的代码会把当前功能所属类的方法替换掉,直接执行js代码。直到此时,解析该js代码内容,实现方法的调用、替换以及新增方法的实施起到修复作用,并完成静默修复线上该app的bug。

在本发明一实施例中,md5是为了保证文件的唯一性,防止本地文件被他人修改,而rsa为非对称加密,加密算法轻量且安全,通过公钥加密私钥解密的加解密方式,保证文本内容的安全性。

本发明还提供一种基于ios系统下静默修复已上线app中问题的装置,所述装置2包括:

oc与js开发模块21,用于开发针对解决已上线app的特定问题的js文件,并将所述js文件上传至服务器;

js文件下载模块22,用于当所述app启动时向所述服务器发起请求,如果所述服务器存在所述js文件,则将所述服务器上的所述js文件下载至执行所述app的客户端;

js文件执行模块23,用于当使用对应于所述app的特定问题的功能时,加载并执行所述js文件。

可选地,该装置2还包括:文件加密模块24,用于将所述js文件按照预设命名规则进行命名,计算所述js文件对应的第一md5值,并将所述js文件进行rsa加密。

可选地,该装置2还包括:文件解密模块25,用于对所述js文件进行rsa解密,计算所述js文件的第二md5值,并根据所述第二md5值与所述第一md5值进行验证;

如果rsa解密失败和/或md5验证未通过,则将所述js文件视为无效文件;

如果rsa解密成功且md5验证通过,则对所述js文件进行格式校验,以确认所述js文件符合js转oc的语法规则。

由于本发明提供的基于ios系统下静默修复已上线app中问题的装置是上述方法对应的装置,故在此不再赘述。

通过本发明提供的基于ios系统下静默修复已上线app中问题的方法和装置,能够无需发布新版本app,并且通过下载js脚本修复已上线app的bug,并且在整个过程中无需用户进行任何操作,因此对于用户来说是无感知修复,因此提升了用户体验。

此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1