编译程序的方法和装置以及系统制造方法及图纸

技术编号:10198907 阅读:109 留言:0更新日期:2014-07-11 07:11
编译程序的方法和装置以及系统,帮助移动应用程序开发者在仅具有应用程序源代码和证书的情况下完成程序编译。本发明专利技术的编译程序的系统包括第一服务器和第二服务器,其中:所述第一服务器用于通过互联网接收终端设备发送的用于编译程序的数据然后发送给所述第二服务器,所述数据包括程序源代码和证书;所述第二服务器用于:在能够访问所述证书的情况下验证该证书,若验证通过则对所述程序源代码进行编译,否则经由所述第一服务器向所述终端设备返回第一提示信息;在无法访问所述证书的情况下经由所述第一服务器向所述终端设备返回第二提示信息,并且停止对所述证书的验证。

【技术实现步骤摘要】
编译程序的方法和装置
本专利技术涉及计算机
,特别地涉及一种编译程序的方法和装置。
技术介绍
随着移动互联网的发展,有越来越多的开发者竞相开发移动应用程序。开发者在编写完成应用程序的源代码之后,和证书一起提交到编译系统,该编译系统对证书进行验证,验证通过后对该源代码进行编译。例如在苹果公司开发的iOS平台上,开发者手动导入.p12证书到钥匙串,手动导入.mobileprovision到Xcode中,由编译器Xcode进行编译。
技术实现思路
本专利技术的主要目的是提供一种编译程序的方法和装置,帮助移动应用程序开发者在仅具有应用程序源代码和证书的情况下完成程序编译。为实现上述目的,根据本专利技术的一个方面,提供了一种编译程序的方法。本专利技术的编译程序的方法包括:接收用于编译程序的数据,所述数据包括程序源代码和证书;记录证书验证状态为未完成;启动主线程和验证线程;所述验证线程包括:启动证书验证进程;在所述证书验证进程自动结束的情况下,将所述证书验证状态修改为已完成,然后结束验证线程,在所述证书验证进程被所述主线程终止的情况下直接结束验证线程;所述主线程包括:判断所述验证进程是否存在;在所述验证进程不存在的情况下检测证书验证状态:若证书验证状态为未完成,则启动设定时长的等待,并在等待过程中再次判断所述验证进程是否存在,以及在等待超时的情况下结束验证进程;若证书验证状态为已完成,则对所述程序源代码进行编译;在所述验证进程存在的情况下,启动设定时长的等待,并在等待过程中再次判断所述验证进程是否存在,以及在等待超时的情况下结束验证进程。根据本专利技术的又一方面,提供了一种编译程序的装置。本专利技术的编译程序的装置包括:接收模块,用于接收用于编译程序的数据,所述数据包括程序源代码和证书;记录模块,用于记录证书验证状态为未完成;验证线程模块,用于执行验证线程,所述验证线程包括:启动证书验证进程;在所述证书验证进程自动结束的情况下,将所述证书验证状态修改为已完成,然后结束验证线程,在所述证书验证进程被所述主线程终止的情况下直接结束验证线程;主线程模块,用于执行主线程,所述主线程包括:判断所述验证进程是否存在;在所述验证进程不存在的情况下检测证书验证状态:若证书验证状态为未完成,则启动设定时长的等待,并在等待过程中再次判断所述验证进程是否存在,以及在等待超时的情况下结束验证进程;若证书验证状态为已完成,则对所述程序源代码进行编译;在所述验证进程存在的情况下,启动设定时长的等待,并在等待过程中再次判断所述验证进程是否存在,以及在等待超时的情况下结束验证进程。根据本专利技术的技术方案,由服务器提供编译环境,对用户提供的源程序进行编译,其中在验证证书时,若无证书访问权限则停止验证并且提示用户,以防内存耗尽而死机,实现了大批量的自动编译,并且使用户无需准备编译环境,在仅具有应用程序源代码和证书的情况下就能完成程序编译,降低了程序开发的成本。在服务器的处理方式上,采用验证证书的线程和主线程并行,能够准确地控制证书验证和编译的进程,在遇到不能访问的证书时能够提示用户并且停止证书验证,对于能够访问的证书则进行正常的验证。附图说明附图用于更好地理解本专利技术,不构成对本专利技术的不当限定。其中:图1是根据本专利技术实施例的编译程序的系统的示意图;图2是根据本专利技术实施例的编译程序的方法的示意图;图3是根据本专利技术实施例的编译程序的装置的主要模块的示意图。具体实施方式以下结合附图对本专利技术的示范性实施例做出说明,其中包括本专利技术实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本专利技术的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。图1是根据本专利技术实施例的编译程序的系统的示意图。如图1所示,编译程序的系统10主要包括第一服务器11和第二服务器12,二者可基于httpclient等协议进行通信;第一服务器11通过互联网2与多个终端设备31、32、……、3N连接,通过提供web服务,可以接收终端设备发送的源代码和证书,源代码和证书由第二服务器12进行处理,其中主要是对证书进行验证,并在验证通过的情况下对源代码进行编译。第一服务器11和第二服务器12可采用服务器集群,以处理海量终端设备发送的数据。为了安全起见,证书一般具有访问权限,使编译系统能够访问证书从而对其进行验证。对于现有的编译系统,如果没有权限访问证书,则会在人机界面上弹出一个提示框以提示操作人员,该提示框需操作人员点击确认,于是结束对证书的验证进程。采用编译程序的系统10进行编译时,第二服务器12会接收到大量的证书需要验证,如果第二服务器12因没有权限访问其中的多个证书,则验证进程无法继续但并未中止,多个这种情况的验证进程容易导致机器内存耗尽而死机。因此在本实施例中,第二服务器12在无法访问证书的情况下停止对证书的验证进程,并且生成提示信息然后发送给第一服务器11,再由第一服务器11转发给终端设备,以使开发者得知证书权限需要修改。第二服务器12在运行中可采用图2所示的流程。图2是根据本专利技术实施例的编译程序的方法的示意图。该方法可由执行编译的计算机例如第二服务器12完成。如图2所示,在步骤S201中,导入用于编译程序的数据,例如在iOS中,使用secue命令将.p12证书导入钥匙串,使用cp命令将.mobileprovision导入Xcode。可以计算出证书的哈希值,并与本次编译任务的名称一起作为本次编译任务的标识。在步骤S202中,设置一个证书验证完成位,以记录证书验证状态,此时令其值为0,表示证书验证尚未完成。接下来启动用两个线程,分别是步骤S211中的启动验证线程和步骤S221中的启动主线程。在步骤S212中,对证书进行验证(在iOS中验证进程为codesign进程),然后在步骤S213中判断证书验证进程是否结束,若未结束,则延时之后返回步骤S213继续判断,如结束,判断其结束方式(步骤S214),如果证书验证进程的结束方式是自动结束,表明能够访问证书并且证书验证通过,此时进入步骤S215,修改证书验证完成位的值为1,表示证收验证通过。验证线程在步骤S215之后结束。如果证书验证进程的结束方式为被终止(实际上是被主线程终止,见下面的描述),则直接结束验证线程,在该情况下证书验证完成位的值仍保持为0。在主线程中,步骤S222为检测验证进程是否存在。若不存在,则检测证书验证完成位的值(步骤S223),若为1,表示证书验证进程已结束并且结束方式是自动结束,此时进入步骤S224进行编译,编译之后即按常规方式,可以删除钥匙串和Xcode中的证书,并且把编译得到的程序包返回给终端设备。在步骤S223中,若证书验证完成位的值为0,表示验证进程尚未启动,此时进入步骤S225,等待预设的时长,该时长应大于证书能够被访问的情况下正常验证所需的时间,例如30S,在该30S内,返回步骤S222,继续反复检测验证进程是否存在。若验证进程存在,说明其已启动,则继续等待验证结果,如果验证进程在30S内结束,则又返回步骤S223,并且必然是验证进程自动结束从而进入步骤S224,这是因为验证进程被终止的步骤在30S之后才本文档来自技高网...
<a href="http://www.xjishu.com/zhuanli/62/201410105556.html" title="编译程序的方法和装置以及系统原文来自X技术">编译程序的方法和装置以及系统</a>

【技术保护点】
一种编译程序的系统,其特征在于,包括第一服务器和第二服务器,其中:所述第一服务器用于通过互联网接收终端设备发送的用于编译程序的数据然后发送给所述第二服务器,所述数据包括程序源代码和证书;所述第二服务器用于:在能够访问所述证书的情况下验证该证书,若验证通过则对所述程序源代码进行编译,否则经由所述第一服务器向所述终端设备返回第一提示信息;在无法访问所述证书的情况下经由所述第一服务器向所述终端设备返回第二提示信息,并且停止对所述证书的验证。

【技术特征摘要】
1.一种编译程序的方法,其特征在于,包括:接收用于编译程序的数据,所述数据包括程序源代码和证书;记录证书验证状态为未完成;启动主线程和验证线程;所述验证线程包括:启动证书验证进程;在所述证书验证进程自动结束的情况下,将所述证书验证状态修改为已完成,然后结束验证线程,在所述证书验证进程被所述主线程终止的情况下直接结束验证线程;所述主线程包括:判断所述验证进程是否存在;在所述验证进程不存在的情况下检测证书验证状态:若证书验证状态为未完成,则启动设定时长的等待,并在等待过程中再次判断所述验证进程是否存在,以及在等待超时的情况下结束验证进程;若证书验证状态为已完成,则对所述程序源代码进行编译;在所述验证进程存在的情况下,启动设定时长的等待,并在等待过程中再次判断所述验证进程是否存在,以及在等待超时的情况下结束验证进程。2.一种编译程序的装置,其特征...

【专利技术属性】
技术研发人员:陈伟
申请(专利权)人:北京京东尚科信息技术有限公司
类型:发明
国别省市:北京;11

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

1