一种应用程序发布方法和装置与流程

文档序号:17374671发布日期:2019-04-12 23:10阅读:144来源:国知局
一种应用程序发布方法和装置与流程

本发明涉及计算机技术领域,特别是涉及一种应用程序发布方法和一种应用程序发布装置。



背景技术:

目前,ios软件的发布程序比较严格,官方不允许用户随意打包发布软件。开发者除了把软件发布到appstore,只能够通过企业证书签名应用程序或者开发者证书签名应用程序,并搭建网页的方式发布应用程序。

无论是企业证书还是开发者证书,其费用都比较高,并且官方会对证书的使用做严格的监管,如果发现企业证书被滥用,签发过多,或者签发一些违规应用都会封禁这些证书。



技术实现要素:

鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种应用程序发布方法和相应的一种应用程序发布装置。

为了解决上述问题,本发明实施例公开了一种应用程序发布方法,包括:

接收移动终端发送的用户登录信息,并将所述用户登陆信息发送至签名服务器,以使所述签名服务器采用所述用户登陆信息,从预设的证书管理服务器获取相应的用户签名证书;

接收所述签名服务器反馈的差异数据,所述差异数据为所述签名服务器采用所述用户签名证书对预置的第一原始安装包进行签名处理而生成;

将所述差异数据和预置的第二原始安装包进行组合得到签名安装包;

将所述签名安装包发送至所述移动终端,以在所述移动终端中安装所述签名安装包的应用程序。

可选的,在将所述差异数据和预置的第二原始安装包进行组装之前,还包括:

检测所述第二原始安装包是否与所述签名服务器中的第一原始安装包的版本相同;

若版本不相同,则将所述第二原始安装包更新为与所述第一原始安装包相同的版本。

可选的,还包括:

接收由所述签名服务器生成的签名进度信息;

展示所述签名进度信息。

可选的,通过usb数据线与所述移动终端通信。

本发明实施例还公开了一种应用程序发布装置,包括:

登陆信息转发模块,用于接收移动终端发送的用户登录信息,并将所述用户登陆信息发送至签名服务器,以使所述签名服务器采用所述用户登陆信息,从预设的证书管理服务器获取相应的用户签名证书;

差异数据接收模块,用于接收所述签名服务器反馈的差异数据,所述差异数据为所述签名服务器采用所述用户签名证书对预置的第一原始安装包进行签名处理而生成;

签名安装包生成模块,用于将所述差异数据和预置的第二原始安装包进行组合得到签名安装包;

安装模块,用于将所述签名安装包发送至所述移动终端,以在所述移动终端中安装所述签名安装包的应用程序。

可选的,还包括:

版本检测模块,用于在将所述差异数据和预置的第二原始安装包进行组装之前,检测所述第二原始安装包是否与所述签名服务器中的第一原始安装包的版本相同;

版本更新模块,用于若版本不相同,则将所述第二原始安装包更新为与所述第一原始安装包相同的版本。

可选的,还包括:

签名进度信息接收模块,用于接收由所述签名服务器生成的签名进度信息;

签名进度信息展示模块,用于展示所述签名进度信息。

可选的,通过usb数据线与所述移动终端通信。

本发明实施例还公开了一种装置,包括:

一个或多个处理器;和

其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述装置执行如上所述的一个或多个的方法。

本发明实施例还公开了一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行如上所述的一个或多个的方法。

本发明实施例包括以下优点:

在本发明实施例中,由特定终端接收移动终端发送的用户登录信息,并将用户登陆信息发送至签名服务器;签名服务器采用用户登陆信息,从证书管理服务器获取相应的用户签名证书;然后签名服务器采用用户签名证书对预置的第一原始安装包进行签名,生成差异数据并将差异数据发送至特定终端;特定终端将差异数据和预置的第二原始安装包进行组合,得到签名安装包;然后将签名安装包发送至移动终端,以在移动终端中安装签名安装包的应用程序。本发明实施例,通过采用基于用户登陆信息注册的用户签名证书对应用程序进行签名,相比于基于开发者签名证书和企业签名证书的签名方向,签名成本更低,且在签名服务器只需要向特定终端发送差异数据而不需要发送完整的签名数据包,减少了发送的数据量。

附图说明

图1是本发明的一种应用程序发布方法实施例的步骤流程图;

图2是本发明的一种应用程序发布装置实施例的结构框图。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

参照图1,示出了本发明的一种应用程序发布方法实施例的步骤流程图,该方法应用于特定终端所述方法具体可以包括如下步骤:

步骤101,接收移动终端发送的用户登录信息,并将所述用户登陆信息发送至签名服务器,以使所述签名服务器采用所述用户登陆信息,从预设的证书管理服务器获取相应的用户签名证书;

在本发明实施例中,移动终端与特定终端通信,特定终端与签名服务器通信。移动终端为ios系统的移动终端,特定终端可以是用户常用的linux系统的终端,在特定终端上可以部署有客户端(例如windows客户端)用于完成安装应用程序的过程。移动终端可以通过usb数据线与特定终端通信。

当移动终端需要安装应用程序时,移动终端可以向特定终端发送用户登陆信息、终端标识信息以及希望进行签名的应用程序的信息。

特定终端可以将用户登陆信息、终端标识信息以及希望进行签名的应用程序的信息发送给签名服务器,以使签名服务器可以根据这些信息对相应的应用程序的原始安装包进行签名。

对于ios系统的移动终端,用户登陆信息包括用户账号appleid和密码。

签名证书是用于对应用程序进行签名,只有经过签名的应用程序才能保证他的来源是可信任的,并且代码是完整的,未经修改的。

在实际中,官方除了提供采用开发者证书或者企业证书对应用程序进行签名外,官方还提供了采用个人的用户签名证书对应用程序进行签名的方式。

具体的,官方的证书管理服务器提供了针对个人的用户签名证书发放接口,通过从该接口提交用户登陆信息,即可以得到证书管理服务器发放的用户签名证书。该用户签名证书是用户登陆信息对应的,采用不同的用户登录信息可以注册得到不同的用户签名证书。

在本发明实施例中,签名服务器用于为应用程序的安装包进行签名,例如,特定终端向签名服务器提交用户登陆信息和希望签名的应用程序的信息,签名服务器采用用户登陆信息向签名服务器注册用户签名证书,然后采用用户签名证书对应用程序的原始安装包进行签名。

签名服务器可以与多个特定终端通信,为每个特定终端都分别进行应用程序的安装包的签名。

步骤102,接收所述签名服务器反馈的差异数据,所述差异数据为所述签名服务器采用所述用户签名证书对预置的第一原始安装包进行签名处理而生成;

特定终端接收签名服务器反馈的差异数据。

第一原始安装包是未经签名的安装包,ios安装包的格式为.ipa格式。签名服务器中可以存储有多个应用程序的第一原始安装包,可以根据特定终端提交的希望进行签名的应用程序的信息对相应的应用程序的第一原始安装包进行签名,得到相应的差异数据。

具体的签名过程可以为:

如果签名服务器没有存储通过该用户登陆信息注册的用户签名证书,则签名服务器从证书管理服务器注册用户签名证书。签名服务器还从证书管理服务器获取团队标识teamid,每个appleid可以归属到不同的teamid,每个teamid都可以绑定不同数量的移动终端。签名服务器从证书管理服务器获取teamid下绑定的所有终端的终端标识udid;若当前特定终端所连的接终端未与teamid绑定,则签名服务器将该终端的udid添加到teamid。签名服务器可以采用appleid生成唯一的应用程序标识appid,然后将该appid与teamid绑定,appid用于标识一个或一组应用程序。签名服务器从官方的证书管理服务器获取验证文件provisionprofile,provisionprofile决定了用签名证书(公钥)/私钥组合(keypair/signingidentity)来签署应用程序,并将在应用程序打包时嵌入到.ipa包里。安装应用程序时,provisionprofile被拷贝到移动终端中,运行该应用程序的移动终端通过provisionprofile来认证安装的应用程序。最后,签名服务器采用用户签名证书对应用程序的原始安装包进行签名。

在实际中,由于签名服务器的签名过程需要耗费一定的时间,在此过程中,用户得不到反馈可能会认为出现卡死的情况。

在本发明实施例中所述的方法还可以包括:特定终端接收由所述签名服务器生成的签名进度信息,并展示所述签名进度信息。

具体的,签名服务器可以估计完成整个签名过程需要多少时间,并且确定当前的签名进度是进行到哪一个阶段,从而可以生成签名进度信息。特定终端可以定时的向签名服务器轮询签名进度,签名服务器可以定时向特定终端发送签名进度信息。特定终端在接收到签名进度信息后,展示该签名进度信息,使得用户可以得知当前的签名进度。

对于数据大小较大的应用程式,如果签名服务器将原始安装包也发送到特定终端,则需要占用较大的带宽。为了减少带宽的占用,签名服务器只向特定终端发送差异数据。

差异数据是从原始安装包计算得到数据,差异数据可以表示该安装包已经经过了签名。具体的,差异数据可以包括:provisionprofile、签名数据、签名安装包的包名和签名安装包的文件资源的哈希值;

其中,签名数据,是指对原始安装包进行签名生成的数据;签名安装包的包名,即appid。每个appid都可以是由appleid加上安装包名称拼接得到的,因此可以保证appid是唯一的,各不相同的;由于签名过程会改动一些文件,所以签名安装包的哈希值会与原始安装包的哈希值有所改变。

另外,签名安装包是由原始安装包和差异数据组成的。如果将针对各个用户签名证书的签名安装包都存储到签名服务器,将会占用签名服务器很大的存储空间。对此,本发明实施例中,所述签名服务器唯一存储一第一原始安装包。签名服务器可以只保留一个第一原始安装包,不必为每个用户存储重复的第一原始安装包,以节省存储空间。

步骤103,将所述差异数据和预置的第二原始安装包进行组合得到签名安装包;

在本发明实施例中,特定终端中预置有第二原始安装包,特定终端可以将差异数据和第二原始安装包进行组合,得到签名安装包。

在本发明实施例中,在特定终端在组合差异数据和第二原始安装包之前,所述的方法还可以包括:

所述特定终端检测所述第二原始安装包是否与所述签名服务器中的第一原始安装包的版本相同;若版本不相同,则所述特定终端将所述第二原始安装包更新为与所述第一原始安装包相同的版本。

特定终端需要使得本地的第二原始安装包与签名服务器中的第一原始安装包保持同步。

步骤104,将所述签名安装包发送至所述移动终端,以在所述移动终端中安装所述签名安装包的应用程序。

最后,特定终端将签名安装包发送至移动终端,以在移动终端安装该签名安装包的应用程序。

在本发明实施例中,由特定终端接收移动终端发送的用户登录信息,并将用户登陆信息发送至签名服务器;签名服务器采用用户登陆信息,从证书管理服务器获取相应的用户签名证书;然后签名服务器采用用户签名证书对预置的第一原始安装包进行签名,生成差异数据并将差异数据发送至特定终端;特定终端将差异数据和预置的第二原始安装包进行组合,得到签名安装包;然后将签名安装包发送至移动终端,以在移动终端中安装签名安装包的应用程序。本发明实施例,通过采用基于用户登陆信息注册的用户签名证书对应用程序进行签名,相比于基于开发者签名证书和企业签名证书的签名方向,签名成本更低,且在签名服务器只需要向特定终端发送差异数据而不需要发送完整的签名数据包,减少了发送的数据量。

需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。

参照图2,示出了本发明的一种应用程序发布装置实施例的结构框图,该装置设置于特定终端,具体可以包括:

登陆信息转发模块201,用于接收移动终端发送的用户登录信息,并将所述用户登陆信息发送至签名服务器,以使所述签名服务器采用所述用户登陆信息,从预设的证书管理服务器获取相应的用户签名证书;

差异数据接收模块202,用于接收所述签名服务器反馈的差异数据,所述差异数据为所述签名服务器采用所述用户签名证书对预置的第一原始安装包进行签名处理而生成;

签名安装包生成模块203,用于将所述差异数据和预置的第二原始安装包进行组合得到签名安装包,

安装模块204,用于将所述签名安装包发送至所述移动终端,以在所述移动终端中安装所述签名安装包的应用程序。

在本发明实施例中,所述装置还可以包括:

版本检测模块,用于在将所述差异数据和预置的第二原始安装包进行组装之前,检测所述第二原始安装包是否与所述签名服务器中的第一原始安装包的版本相同;

版本更新模块,用于若版本不相同,则将所述第二原始安装包更新为与所述第一原始安装包相同的版本。

在本发明实施例中,所述装置还可以包括:

签名进度信息接收模块,用于接收由所述签名服务器生成的签名进度信息;

签名进度信息展示模块,用于展示所述签名进度信息。

在本发明实施例中,所述移动终端通过usb数据线与所述特定终端通信。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本发明实施例还提供了一种装置,包括:

一个或多个处理器;和

其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述装置执行本发明实施例所述的方法。

本发明实施例还提供了一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行本发明实施例所述的方法。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。

以上对本发明所提供的一种应用程序发布方法和一种应用程序发布装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

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