一種ios應(yīng)用構(gòu)建服務(wù)器、集群和方法
【專利摘要】本發(fā)明提供了一種ios應(yīng)用構(gòu)建服務(wù)器、集群和方法,該ios應(yīng)用構(gòu)建服務(wù)器,通過交互單元接收構(gòu)建ios應(yīng)用請(qǐng)求,根據(jù)構(gòu)建ios應(yīng)用請(qǐng)求,下載應(yīng)用文件、ios證書及應(yīng)用配置文件,將打包單元形成的ios安裝包發(fā)送給混合應(yīng)用構(gòu)建服務(wù)器;通過構(gòu)建單元解析應(yīng)用文件中的頁面程序代碼及應(yīng)用配置文件中的頁面參數(shù),構(gòu)建ios應(yīng)用,并生成ipa文件和應(yīng)用日志;打包單元通過security命令將ios證書安裝到login.keychain鑰匙串,解鎖鑰匙串,根據(jù)應(yīng)用配置文件中證書路徑和證書密碼,對(duì)ios應(yīng)用、ipa文件和應(yīng)用日志簽名打包,形成ipa安裝包。本發(fā)明提供的方案實(shí)現(xiàn)了應(yīng)用開發(fā)資源共享。
【專利說明】
一種i OS應(yīng)用構(gòu)建服務(wù)器、集群和方法
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別涉及一種1s應(yīng)用構(gòu)建服務(wù)器、集群和方法。
【背景技術(shù)】
[0002]隨著移動(dòng)設(shè)備智能化的發(fā)展,各個(gè)企業(yè)開始為移動(dòng)設(shè)備開發(fā)專門的應(yīng)用,以滿足移動(dòng)用戶的需求。
[0003]目前,對(duì)于開發(fā)1s操作系統(tǒng)中的應(yīng)用來說,其構(gòu)建方式,需要應(yīng)用開發(fā)者在1s操作系統(tǒng)中加載并配置集成開發(fā)環(huán)境(Xcode,IDE),并在集成開發(fā)環(huán)境的基礎(chǔ)上,通過編寫代碼的方式實(shí)現(xiàn)構(gòu)建打包應(yīng)用。那么對(duì)于應(yīng)用開發(fā)企業(yè)來說,需要為每一個(gè)開發(fā)人員專門搭建集成開發(fā)環(huán)境(Xcode,IDE)以開發(fā)、構(gòu)建和打包1s操作系統(tǒng)對(duì)應(yīng)的應(yīng)用,而不能實(shí)現(xiàn)應(yīng)用開發(fā)資源共享。
【發(fā)明內(nèi)容】
[0004]本發(fā)明實(shí)施例提供了一種1s應(yīng)用構(gòu)建服務(wù)器、集群和方法,實(shí)現(xiàn)了應(yīng)用開發(fā)資源共享。
[0005]—種1s應(yīng)用構(gòu)建服務(wù)器,包括:交互單元、構(gòu)建單元、打包單元,其中,
[0006]所述交互單元,用于接收外設(shè)的混合應(yīng)用構(gòu)建服務(wù)器發(fā)送的構(gòu)建1s應(yīng)用請(qǐng)求,根據(jù)所述構(gòu)建1s應(yīng)用請(qǐng)求,從所述外設(shè)的混合應(yīng)用構(gòu)建服務(wù)器中,下載應(yīng)用文件、1s證書及應(yīng)用配置文件中的任意一個(gè)或多個(gè),將所述打包單元形成的1s安裝包發(fā)送給所述外設(shè)的混合應(yīng)用構(gòu)建服務(wù)器;
[0007]所述構(gòu)建單元,用于解析所述應(yīng)用文件中的頁面程序代碼及應(yīng)用配置文件中的頁面參數(shù),構(gòu)建1s應(yīng)用,并生成ipa文件和應(yīng)用日志;
[0008]所述打包單元,用于通過security命令將1s證書安裝到login.keychain鑰匙串,解鎖鑰匙串,根據(jù)應(yīng)用配置文件中證書路徑和證書密碼,對(duì)所述1s應(yīng)用、ipa文件和應(yīng)用日志簽名打包,形成ipa安裝包。
[0009]優(yōu)選地,所述構(gòu)建單元,進(jìn)一步用于:
[00?0]根據(jù)配置文件中應(yīng)用名稱,生成1s應(yīng)用名稱,根據(jù)配置文件中package-name,為1s應(yīng)用分配appID,當(dāng)接收到補(bǔ)丁文件時(shí),確定所述補(bǔ)丁文件對(duì)應(yīng)的appID,并將所述補(bǔ)丁文件加載到1s應(yīng)用中。
[0011]優(yōu)選地,所述打包單元,進(jìn)一步用于:
[0012I確定1s集成開發(fā)環(huán)境,修改集成開發(fā)環(huán)境中project.pbxproj文件,并生成bui Id文件夾,構(gòu)成xcodebui Id編譯工程,利用xcodebui Id編譯工程,獲取1s證書的uuid值,并通過uuid值解鎖鑰匙串,為1s應(yīng)用、ipa文件和應(yīng)用日志簽名,生成ipa安裝包。
[0013]優(yōu)選地,所述交互單元,進(jìn)一步用于:
[0014]接收所述外設(shè)的混合應(yīng)用構(gòu)建服務(wù)器發(fā)送的插件,并將所述插件發(fā)送給所述構(gòu)建單元;
[0015]所述構(gòu)建單元,進(jìn)一步用于接收所述交互單元發(fā)送的插件,解析所述插件,將所述插件與所述頁面程序代碼結(jié)合,構(gòu)建1s應(yīng)用。
[0016]—種1s應(yīng)用構(gòu)建集群,包括:至少一個(gè)上述任一所述的1s應(yīng)用構(gòu)建服務(wù)器和至少一個(gè)混合應(yīng)用構(gòu)建服務(wù)器,其中,
[0017]所述至少一個(gè)混合應(yīng)用構(gòu)建服務(wù)器中,每一個(gè)混合應(yīng)用構(gòu)建服務(wù)器,用于接收外設(shè)的終端通過web應(yīng)用發(fā)送的構(gòu)建混合應(yīng)用請(qǐng)求,并確定所述構(gòu)建混合應(yīng)用請(qǐng)求中的構(gòu)建1s應(yīng)用請(qǐng)求,以及構(gòu)建1s應(yīng)用請(qǐng)求對(duì)應(yīng)的應(yīng)用文件、1s證書和應(yīng)用配置文件中的任意一個(gè)或多個(gè),并將所述構(gòu)建1s應(yīng)用請(qǐng)求發(fā)送給所述至少一個(gè)1s應(yīng)用構(gòu)建服務(wù)器中的目標(biāo)1s應(yīng)用構(gòu)建服務(wù)器,為所述目標(biāo)1s應(yīng)用構(gòu)建服務(wù)器提供下載接口 ;
[0018]所述至少一個(gè)1s應(yīng)用構(gòu)建服務(wù)器中,目標(biāo)1s應(yīng)用構(gòu)建服務(wù)器,用于接收到所述混合應(yīng)用構(gòu)建服務(wù)器發(fā)送的構(gòu)建1s應(yīng)用請(qǐng)求時(shí),通過所述下載接口下載所述構(gòu)建1s應(yīng)用請(qǐng)求對(duì)應(yīng)的應(yīng)用文件、1s證書和應(yīng)用配置文件中的任意一個(gè)或多個(gè)。
[0019]優(yōu)選地,所述每一個(gè)混合應(yīng)用構(gòu)建服務(wù)器,進(jìn)一步用于收集各種應(yīng)用插件,為外設(shè)的終端提供web應(yīng)用交互界面,通過所述web應(yīng)用交互界面確定所述外設(shè)的終端選定的目標(biāo)插件,并將所述目標(biāo)插件通過下載接口發(fā)送給所述目標(biāo)1s應(yīng)用構(gòu)建服務(wù)器。
[0020]一種1s應(yīng)用構(gòu)建方法,包括:
[0021]接收混合應(yīng)用構(gòu)建服務(wù)器發(fā)送的構(gòu)建1s應(yīng)用請(qǐng)求;
[0022]根據(jù)所述構(gòu)建1s應(yīng)用請(qǐng)求,從所述混合應(yīng)用構(gòu)建服務(wù)器中,下載應(yīng)用文件、1s證書及應(yīng)用配置文件中的任意一個(gè)或多個(gè);
[0023]解析所述應(yīng)用文件中的頁面程序代碼及應(yīng)用配置文件中的頁面參數(shù),構(gòu)建1s應(yīng)用,并生成ipa文件和應(yīng)用日志;
[0024]通過security命令將1s證書安裝到login.keychain鑰匙串,解鎖鑰匙串,根據(jù)應(yīng)用配置文件中證書路徑和證書密碼,對(duì)所述1s應(yīng)用、ipa文件和應(yīng)用日志簽名打包,形成ipa安裝包。
[0025]優(yōu)選地,所述構(gòu)建1s應(yīng)用,包括:
[0026]根據(jù)配置文件中應(yīng)用名稱,生成1s應(yīng)用名稱,根據(jù)配置文件中package-name,為1s應(yīng)用分配appID,當(dāng)接收到補(bǔ)丁文件時(shí),確定所述補(bǔ)丁文件對(duì)應(yīng)的appID,并將所述補(bǔ)丁文件加載到1s應(yīng)用中。
[0027]優(yōu)選地,進(jìn)一步包括:確定1s集成開發(fā)環(huán)境,修改集成開發(fā)環(huán)境中project.pbxproj文件,并生成bui Id文件夾,構(gòu)成xcodebui Id編譯工程;
[0028]所述對(duì)所述1s應(yīng)用、ipa文件和應(yīng)用日志簽名打包,形成ipa安裝包,包括:利用xcodebuiId編譯工程,獲取1s證書的uuid值,并通過uuid值解鎖鑰匙串,為1s應(yīng)用、ipa文件和應(yīng)用日志簽名,生成ipa安裝包。
[0029]優(yōu)選地,進(jìn)一步包括:接收所述混合應(yīng)用構(gòu)建服務(wù)器發(fā)送的插件;
[0030]所述構(gòu)建1s應(yīng)用,包括:解析所述插件,將所述插件與所述頁面程序代碼結(jié)合,構(gòu)建1s應(yīng)用。
[0031]本發(fā)明實(shí)施例提供了一種1s應(yīng)用構(gòu)建服務(wù)器、集群和方法,該1s應(yīng)用構(gòu)建服務(wù)器,通過交互單元接收外設(shè)的混合應(yīng)用構(gòu)建服務(wù)器發(fā)送的構(gòu)建1s應(yīng)用請(qǐng)求,根據(jù)構(gòu)建1s應(yīng)用請(qǐng)求,從外設(shè)的混合應(yīng)用構(gòu)建服務(wù)器中,下載應(yīng)用文件、1s證書及應(yīng)用配置文件中的任意一個(gè)或多個(gè),將打包單元形成的1s安裝包發(fā)送給外設(shè)的混合應(yīng)用構(gòu)建服務(wù)器;通過構(gòu)建單元解析應(yīng)用文件中的頁面程序代碼及應(yīng)用配置文件中的頁面參數(shù),構(gòu)建1s應(yīng)用,并生成ipa文件和應(yīng)用日志;打包單元通過security命令將1s證書安裝到login.keychain鑰匙串,解鎖鑰匙串,根據(jù)應(yīng)用配置文件中證書路徑和證書密碼,對(duì)1s應(yīng)用、ipa文件和應(yīng)用日志簽名打包,形成ipa安裝包,使得每一個(gè)開發(fā)者均能夠通過該1s應(yīng)用構(gòu)建服務(wù)器來構(gòu)建混合應(yīng)用中1s應(yīng)用部分,而無需為每一個(gè)開發(fā)者配備對(duì)應(yīng)的Xcode,實(shí)現(xiàn)了應(yīng)用開發(fā)資源共孚。
【附圖說明】
[0032]為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0033]圖1是本發(fā)明一個(gè)實(shí)施例提供的一種1s應(yīng)用構(gòu)建服務(wù)器的結(jié)構(gòu)示意圖;
[0034]圖2是本發(fā)明一個(gè)實(shí)施例提供的一種1s應(yīng)用構(gòu)建集群的結(jié)構(gòu)示意圖;
[0035]圖3是本發(fā)明一個(gè)實(shí)施例提供的一種1s應(yīng)用構(gòu)建方法的流程圖;
[0036]圖4是本發(fā)明另一個(gè)實(shí)施例提供的一種1s應(yīng)用構(gòu)建方法的流程圖。
【具體實(shí)施方式】
[0037]為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例,基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)的前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0038]如圖1所示,本發(fā)明實(shí)施例提供一種1s應(yīng)用構(gòu)建服務(wù)器,該1s應(yīng)用構(gòu)建服務(wù)器,包括:交互單元101、構(gòu)建單元102、打包單元103,其中,
[0039]交互單元101,用于接收外設(shè)的混合應(yīng)用構(gòu)建服務(wù)器發(fā)送的構(gòu)建1s應(yīng)用請(qǐng)求,根據(jù)構(gòu)建1s應(yīng)用請(qǐng)求,從外設(shè)的混合應(yīng)用構(gòu)建服務(wù)器中,下載應(yīng)用文件、1s證書及應(yīng)用配置文件中的任意一個(gè)或多個(gè),將打包單元103形成的1s安裝包發(fā)送給外設(shè)的混合應(yīng)用構(gòu)建服務(wù)器;
[0040]構(gòu)建單元102,用于解析應(yīng)用文件中的頁面程序代碼及應(yīng)用配置文件中的頁面參數(shù),構(gòu)建1s應(yīng)用,并生成ipa文件和應(yīng)用日志;
[0041 ] 打包單元103,用于通過security命令將1s證書安裝到login.keychain鑰匙串,解鎖鑰匙串,根據(jù)應(yīng)用配置文件中證書路徑和證書密碼,對(duì)1s應(yīng)用、ipa文件和應(yīng)用日志簽名打包,形成ipa安裝包。
[0042]在圖1所示的實(shí)施例中,通過交互單元接收外設(shè)的混合應(yīng)用構(gòu)建服務(wù)器發(fā)送的構(gòu)建1s應(yīng)用請(qǐng)求,根據(jù)構(gòu)建1s應(yīng)用請(qǐng)求,從外設(shè)的混合應(yīng)用構(gòu)建服務(wù)器中,下載應(yīng)用文件、1s證書及應(yīng)用配置文件中的任意一個(gè)或多個(gè),將打包單元形成的1s安裝包發(fā)送給外設(shè)的混合應(yīng)用構(gòu)建服務(wù)器;通過構(gòu)建單元解析應(yīng)用文件中的頁面程序代碼及應(yīng)用配置文件中的頁面參數(shù),構(gòu)建1s應(yīng)用,并生成ipa文件和應(yīng)用日志;打包單元通過security命令將1s證書安裝到login.keychain鑰匙串,解鎖鑰匙串,根據(jù)應(yīng)用配置文件中證書路徑和證書密碼,對(duì)1s應(yīng)用、ipa文件和應(yīng)用日志簽名打包,形成ipa安裝包,使得每一個(gè)開發(fā)者均能夠通過該1s應(yīng)用構(gòu)建服務(wù)器來構(gòu)建混合應(yīng)用中1s應(yīng)用部分,而無需為每一個(gè)開發(fā)者配備對(duì)應(yīng)的Xcode,實(shí)現(xiàn)了應(yīng)用開發(fā)資源共享。
[0043]在本發(fā)明另一實(shí)施例中,為了實(shí)現(xiàn)對(duì)1s應(yīng)用添加補(bǔ)丁,以完善1s應(yīng)用,構(gòu)建單元102,進(jìn)一步用于根據(jù)配置文件中應(yīng)用名稱,生成1s應(yīng)用名稱,根據(jù)配置文件中package-name , 為1s 應(yīng)用分配 appID, 當(dāng)接收到補(bǔ)丁文件時(shí),確定補(bǔ)丁文件對(duì)應(yīng)的appID,并將補(bǔ)丁文件加載到1s應(yīng)用中。
[0044]在本發(fā)明又一實(shí)施例中,打包單元,進(jìn)一步用于確定1s集成開發(fā)環(huán)境,修改集成開發(fā)環(huán)境中pro ject.pbxproj文件,并生成bui Id文件夾,構(gòu)成xcodebui Id編譯工程,利用xcodebuiId編譯工程,獲取1s證書的uuid值,并通過uuid值解鎖鑰匙串,為1s應(yīng)用、ipa文件和應(yīng)用日志簽名,生成ipa安裝包。
[0045]在本發(fā)明另一實(shí)施例中,交互單元101,進(jìn)一步用于接收外設(shè)的混合應(yīng)用構(gòu)建服務(wù)器發(fā)送的插件,并將插件發(fā)送給構(gòu)建單元;
[0046]構(gòu)建單元102,進(jìn)一步用于接收交互單元發(fā)送的插件,解析插件,將插件與頁面程序代碼結(jié)合,構(gòu)建1s應(yīng)用。
[0047]上述裝置內(nèi)的各單元之間的信息交互、執(zhí)行過程等內(nèi)容,由于與本發(fā)明方法實(shí)施例基于同一構(gòu)思,具體內(nèi)容可參見本發(fā)明方法實(shí)施例中的敘述,此處不再贅述。
[0048]如圖2所示,本發(fā)明實(shí)施例提供一種1s應(yīng)用構(gòu)建集群,該1s應(yīng)用構(gòu)建集群包括:至少一個(gè)上述任一所述的1s應(yīng)用構(gòu)建服務(wù)器201和至少一個(gè)混合應(yīng)用構(gòu)建服務(wù)器202,其中,
[0049]至少一個(gè)混合應(yīng)用構(gòu)建服務(wù)器202中,每一個(gè)混合應(yīng)用構(gòu)建服務(wù)器202,用于接收外設(shè)的終端通過web應(yīng)用發(fā)送的構(gòu)建混合應(yīng)用請(qǐng)求,并確定構(gòu)建混合應(yīng)用請(qǐng)求中的構(gòu)建1s應(yīng)用請(qǐng)求,以及構(gòu)建1s應(yīng)用請(qǐng)求對(duì)應(yīng)的應(yīng)用文件、1s證書和應(yīng)用配置文件中的任意一個(gè)或多個(gè),并將構(gòu)建1s應(yīng)用請(qǐng)求發(fā)送給至少一個(gè)1s應(yīng)用構(gòu)建服務(wù)器201中的目標(biāo)1s應(yīng)用構(gòu)建服務(wù)器,為目標(biāo)1s應(yīng)用構(gòu)建服務(wù)器提供下載接口 ;
[0050]至少一個(gè)1s應(yīng)用構(gòu)建服務(wù)器201中,目標(biāo)1s應(yīng)用構(gòu)建服務(wù)器,用于接收到混合應(yīng)用構(gòu)建服務(wù)器發(fā)送的構(gòu)建1s應(yīng)用請(qǐng)求時(shí),通過下載接口下載構(gòu)建1s應(yīng)用請(qǐng)求對(duì)應(yīng)的應(yīng)用文件、1s證書和應(yīng)用配置文件中的任意一個(gè)或多個(gè)。
[0051]在本發(fā)明另一實(shí)施例中,每一個(gè)混合應(yīng)用構(gòu)建服務(wù)器202,進(jìn)一步用于收集各種應(yīng)用插件,為外設(shè)的終端提供web應(yīng)用交互界面,通過web應(yīng)用交互界面確定外設(shè)的終端選定的目標(biāo)插件,并將目標(biāo)插件通過下載接口發(fā)送給目標(biāo)1s應(yīng)用構(gòu)建服務(wù)器。
[0052]如圖3所示,本發(fā)明實(shí)施例提供了一種1s應(yīng)用構(gòu)建方法,該方法可以包括以下步驟:
[0053]步驟301:接收混合應(yīng)用構(gòu)建服務(wù)器發(fā)送的構(gòu)建1s應(yīng)用請(qǐng)求;
[0054]步驟302:根據(jù)構(gòu)建1s應(yīng)用請(qǐng)求,從混合應(yīng)用構(gòu)建服務(wù)器中,下載應(yīng)用文件、1s證書及應(yīng)用配置文件中的任意一個(gè)或多個(gè);
[0055]步驟303:解析應(yīng)用文件中的頁面程序代碼及應(yīng)用配置文件中的頁面參數(shù),構(gòu)建1s應(yīng)用,并生成ipa文件和應(yīng)用日志;
[0056]步驟304:通過security命令將1s證書安裝到login.keychain鑰匙串,解鎖鑰匙串,根據(jù)應(yīng)用配置文件中證書路徑和證書密碼,對(duì)1s應(yīng)用、ipa文件和應(yīng)用日志簽名打包,形成ipa安裝包。
[0057]在本發(fā)明一個(gè)實(shí)施例中,為了能夠保證1s應(yīng)用構(gòu)建的準(zhǔn)確性,并能夠?yàn)?s應(yīng)用添加補(bǔ)丁,步驟303的【具體實(shí)施方式】,包括:根據(jù)配置文件中應(yīng)用名稱,生成1s應(yīng)用名稱,根據(jù)配置文件中package-name,為1s應(yīng)用分配appID,當(dāng)接收到補(bǔ)丁文件時(shí),確定所述補(bǔ)丁文件對(duì)應(yīng)的appID,并將所述補(bǔ)丁文件加載到1s應(yīng)用中。
[0058]在本發(fā)明一個(gè)實(shí)施例中,為了能夠?qū)崿F(xiàn)1s應(yīng)用開發(fā)的資源共享,上述方法進(jìn)一步包括:確定1s集成開發(fā)環(huán)境,修改集成開發(fā)環(huán)境中pro ject.pbxproj文件,并生成bui Id文件夾,構(gòu)成xcodebui Id編譯工程;步驟304的【具體實(shí)施方式】,包括:利用xcodebui Id編譯工程,獲取1s證書的uuid值,并通過uuid值解鎖鑰匙串,為1s應(yīng)用、ipa文件和應(yīng)用日志簽名,生成ipa女裝包。
[0059]在本發(fā)明一個(gè)實(shí)施例中,為了提高1s應(yīng)用開發(fā)的效率,上述方法進(jìn)一步包括:接收混合應(yīng)用構(gòu)建服務(wù)器發(fā)送的插件;步驟303的【具體實(shí)施方式】,包括:解析插件,將插件與頁面程序代碼結(jié)合,構(gòu)建1s應(yīng)用。
[0060]如圖4所示,本發(fā)明另一實(shí)施例通過終端、混合應(yīng)用構(gòu)建服務(wù)器及1s應(yīng)用構(gòu)建服務(wù)器間的交互過程,以能夠更加詳盡的展現(xiàn)出1s應(yīng)用構(gòu)建方法,該方法可以包括以下步驟:
[0061 ]步驟400:各個(gè)混合應(yīng)用構(gòu)建服務(wù)器收集各種插件,并將各種插件整合到web應(yīng)用;
[0062]在該步驟中,對(duì)于構(gòu)建應(yīng)用需要的一些插件如拍照插件、flash插件、美圖插件等等,而這些插件在不同版本的1s系統(tǒng)中常常是通用的,而如果每開發(fā)一個(gè)應(yīng)用要將相關(guān)的插件整理并與網(wǎng)頁部署代碼組合構(gòu)成1s應(yīng)用。在本發(fā)明實(shí)施例中,通過該步驟將插件收集,以直接為應(yīng)用開發(fā)提供可用的插件,從而有效地提高應(yīng)用開發(fā)效率。
[0063]步驟401:在集群中的1s應(yīng)用構(gòu)建服務(wù)器中確定1s集成開發(fā)環(huán)境;
[0064]步驟402:修改集成開發(fā)環(huán)境中pro ject.pbxproj文件,并生成bui Id文件夾,構(gòu)成xcodebui Id編譯工程;
[0065]為了能夠?qū)崿F(xiàn)資源共享,通過上述步驟401和步驟402為每個(gè)1s應(yīng)用開發(fā)者提供共享的開發(fā)環(huán)境,從而保證1s應(yīng)用順利地開發(fā)。
[0066]下述步驟403至步驟415為構(gòu)建和打包1s應(yīng)用,生成安裝包的具體過程。
[0067]步驟403:通過終端設(shè)置應(yīng)用文件,為該應(yīng)用文件申請(qǐng)1s證書,將應(yīng)用文件和1s證書整合到構(gòu)建混合應(yīng)用請(qǐng)求中;
[0068]例如:開發(fā)者I想要開發(fā)1s應(yīng)用I,開發(fā)者2想要開發(fā)1s應(yīng)用2,那么,開發(fā)者I在終端上為1s應(yīng)用I設(shè)置應(yīng)用頁面部署的代碼I,開發(fā)者2在終端上為1s應(yīng)用2設(shè)置應(yīng)用頁面部署的代碼2,而頁面部署代碼的設(shè)置不需要1s特定的開發(fā)環(huán)境。由于1s操作系統(tǒng)開發(fā)商要求1s應(yīng)用具有1s證書,那么在進(jìn)行應(yīng)用開發(fā)時(shí),需要向1s操作系統(tǒng)開發(fā)商申請(qǐng)1s證書。
[0069]步驟404:確定集群中目標(biāo)混合應(yīng)用構(gòu)建服務(wù)器;
[0070]集群包含多個(gè)混合應(yīng)用構(gòu)建服務(wù)器,以同時(shí)為多個(gè)開發(fā)者提供開發(fā)環(huán)境,即當(dāng)一個(gè)混合應(yīng)用構(gòu)建服務(wù)器被占用時(shí),其他空閑混合應(yīng)用構(gòu)建服務(wù)器還可以繼續(xù)工作,在該步驟中,例如:為開發(fā)者I確定混合應(yīng)用構(gòu)建服務(wù)器I;為開發(fā)者2確定混合應(yīng)用構(gòu)建服務(wù)器2。[0071 ] 步驟405:終端通過web應(yīng)用將構(gòu)建混合應(yīng)用請(qǐng)求發(fā)送給目標(biāo)混合應(yīng)用構(gòu)建服務(wù)器,并通過web應(yīng)用選定目標(biāo)插件;
[0072]例如:開發(fā)者I為要開發(fā)的1s應(yīng)用I通過web應(yīng)用選定插件1、插件2及插件3;開發(fā)者2為要開發(fā)的1s應(yīng)用2通過web應(yīng)用選定插件1、插件4及插件5等等。
[0073]步驟406:目標(biāo)混合應(yīng)用構(gòu)建服務(wù)器確定目標(biāo)1s應(yīng)用構(gòu)建服務(wù)器;
[0074]在集群中,混合應(yīng)用構(gòu)建服務(wù)器主要用來存儲(chǔ)插件,并與終端進(jìn)行交互,而構(gòu)建1s應(yīng)用是通過1s應(yīng)用構(gòu)建服務(wù)器構(gòu)建的。
[0075]步驟407:目標(biāo)混合應(yīng)用構(gòu)建服務(wù)器將構(gòu)建混合應(yīng)用請(qǐng)求中的構(gòu)建1s應(yīng)用請(qǐng)求發(fā)送給目標(biāo)1s應(yīng)用構(gòu)建服務(wù)器;
[0076]在該步驟中,發(fā)送的構(gòu)建1s應(yīng)用請(qǐng)求中包括:1s應(yīng)用文件,該1s應(yīng)用文件中包含頁面部署代碼等,1s證書以及配置文件,該配置文件中包括:應(yīng)用名稱、操作系統(tǒng)版本等等。
[0077]步驟408:目標(biāo)1s應(yīng)用構(gòu)建服務(wù)器接收構(gòu)建1s應(yīng)用請(qǐng)求;
[0078]步驟409:根據(jù)構(gòu)建1s應(yīng)用請(qǐng)求,從混合應(yīng)用構(gòu)建服務(wù)器中,下載應(yīng)用文件、1s證書、應(yīng)用配置文件及插件中的任意一個(gè)或多個(gè);
[0079]由于終端是與混合應(yīng)用構(gòu)建服務(wù)器進(jìn)行交互,即構(gòu)建應(yīng)用所需的應(yīng)用文件、1s證書、應(yīng)用配置文件及插件均在混合應(yīng)用構(gòu)建服務(wù)器中存儲(chǔ),能夠減少目標(biāo)1s應(yīng)用構(gòu)建服務(wù)器的負(fù)載,在該步驟中,目標(biāo)1s應(yīng)用構(gòu)建服務(wù)器能夠直接從混合應(yīng)用構(gòu)建服務(wù)器中下載其需要的文件、證書等。
[0080]步驟410:解析應(yīng)用文件中的頁面程序代碼及應(yīng)用配置文件中的頁面參數(shù);
[0081 ]步驟411:根據(jù)配置文件中應(yīng)用名稱,生成1s應(yīng)用名稱,根據(jù)配置文件中package-name ,為1s應(yīng)用分配appID ;
[0082]該步驟主要是為了更好的管理1s應(yīng)用,并根據(jù)客戶需求為1s應(yīng)用命名。
[0083]步驟412:生成ipa文件和應(yīng)用日志;
[0084]步驟413:利用xcodebui Id編譯工程,通過security命令獲取1s證書的uuid值;
[0085]步驟414:通過uuid值解鎖鑰匙串,為1s應(yīng)用、ipa文件和應(yīng)用日志簽名,生成ipa安裝包;
[0086]上述步驟412至步驟414是安裝包的形成過程,不僅能夠通過1s證書驗(yàn)證,而且為安裝包設(shè)置簽名,防止安裝包被任意篡改,值得說的是,在安裝包打包完成之后,目標(biāo)1s應(yīng)用構(gòu)建服務(wù)器會(huì)將安裝包發(fā)送給混合應(yīng)用構(gòu)建服務(wù)器,以供用戶通過混合應(yīng)用構(gòu)建服務(wù)器下載,另外,在安裝包打包完成之后,目標(biāo)1s應(yīng)用構(gòu)建服務(wù)器會(huì)將相關(guān)的應(yīng)用文件、日志、證書等刪除,以保證目標(biāo)1s應(yīng)用構(gòu)建服務(wù)器運(yùn)行。
[0087]步驟415:當(dāng)接收到補(bǔ)丁文件時(shí),確定補(bǔ)丁文件對(duì)應(yīng)的appID,并將補(bǔ)丁文件加載到1s應(yīng)用中,更新1s應(yīng)用。
[0088]通過該步驟,實(shí)現(xiàn)了對(duì)1s應(yīng)用的更新,從而進(jìn)一步保證了 1s應(yīng)用的安全性。
[0089]根據(jù)上述方案,本發(fā)明的各實(shí)施例,至少具有如下有益效果:
[0090]1.通過交互單元接收外設(shè)的混合應(yīng)用構(gòu)建服務(wù)器發(fā)送的構(gòu)建1s應(yīng)用請(qǐng)求,根據(jù)構(gòu)建1s應(yīng)用請(qǐng)求,從外設(shè)的混合應(yīng)用構(gòu)建服務(wù)器中,下載應(yīng)用文件、1s證書及應(yīng)用配置文件中的任意一個(gè)或多個(gè),將打包單元形成的1s安裝包發(fā)送給外設(shè)的混合應(yīng)用構(gòu)建服務(wù)器;通過構(gòu)建單元解析應(yīng)用文件中的頁面程序代碼及應(yīng)用配置文件中的頁面參數(shù),構(gòu)建1s應(yīng)用,并生成ipa文件和應(yīng)用日志;打包單元通過security命令將1s證書安裝到login.keychain鑰匙串,解鎖鑰匙串,根據(jù)應(yīng)用配置文件中證書路徑和證書密碼,對(duì)1s應(yīng)用、ipa文件和應(yīng)用日志簽名打包,形成ipa安裝包,使得每一個(gè)開發(fā)者均能夠通過該1s應(yīng)用構(gòu)建服務(wù)器來構(gòu)建混合應(yīng)用中1s應(yīng)用部分,而無需為每一個(gè)開發(fā)者配備對(duì)應(yīng)的Xcode,實(shí)現(xiàn)了應(yīng)用開發(fā)資源共享。
[0091]2.由于各個(gè)開發(fā)者可以通過本發(fā)明實(shí)施例提供的1s應(yīng)用構(gòu)建服務(wù)器中確定的1s集成開發(fā)環(huán)境,修改集成開發(fā)環(huán)境中pro ject.pbxproj文件,并生成bui Id文件夾,構(gòu)成xcodebui Id編譯工程,利用xcodebui Id編譯工程即可為各個(gè)開發(fā)者提供構(gòu)建和打包1s應(yīng)用的環(huán)境,而無須為每個(gè)開發(fā)者配備一個(gè)開發(fā)環(huán)境,從而有效地提高了開發(fā)效率,并降低了開發(fā)成本。
[0092]3.本發(fā)明實(shí)施例通過混合應(yīng)用構(gòu)建服務(wù)器直接為用戶提供插件,而無須用戶自己編寫,從而進(jìn)一步提高應(yīng)用開發(fā)的效率,另外,打包過程是1s應(yīng)用構(gòu)建服務(wù)器自動(dòng)完成,而無須人為的參與,使得1s應(yīng)用構(gòu)建更加簡(jiǎn)單、方便。
[0093]需要說明的是,在本文中,諸如第一和第二之類的關(guān)系術(shù)語僅僅用來將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)〃.....”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同因素。
[0094]本領(lǐng)域普通技術(shù)人員可以理解:實(shí)現(xiàn)上述方法實(shí)施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成,前述的程序可以存儲(chǔ)在計(jì)算機(jī)可讀取的存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),執(zhí)行包括上述方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括:ROM、RAM、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)中。
[0095]最后需要說明的是:以上所述僅為本發(fā)明的較佳實(shí)施例,僅用于說明本發(fā)明的技術(shù)方案,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi)所做的任何修改、等同替換、改進(jìn)等,均包含在本發(fā)明的保護(hù)范圍內(nèi)。
【主權(quán)項(xiàng)】
1.一種1s應(yīng)用構(gòu)建服務(wù)器,其特征在于,包括:交互單元、構(gòu)建單元、打包單元,其中, 所述交互單元,用于接收外設(shè)的混合應(yīng)用構(gòu)建服務(wù)器發(fā)送的構(gòu)建1s應(yīng)用請(qǐng)求,根據(jù)所述構(gòu)建1s應(yīng)用請(qǐng)求,從所述外設(shè)的混合應(yīng)用構(gòu)建服務(wù)器中,下載應(yīng)用文件、1s證書及應(yīng)用配置文件中的任意一個(gè)或多個(gè),將所述打包單元形成的1s安裝包發(fā)送給所述外設(shè)的混合應(yīng)用構(gòu)建服務(wù)器; 所述構(gòu)建單元,用于解析所述應(yīng)用文件中的頁面程序代碼及應(yīng)用配置文件中的頁面參數(shù),構(gòu)建1s應(yīng)用,并生成ipa文件和應(yīng)用日志; 所述打包單元,用于通過security命令將1s證書安裝到login.keychain鑰匙串,解鎖鑰匙串,根據(jù)應(yīng)用配置文件中證書路徑和證書密碼,對(duì)所述1s應(yīng)用、ipa文件和應(yīng)用日志簽名打包,形成ipa安裝包。2.根據(jù)權(quán)利要求1所述的1s應(yīng)用構(gòu)建服務(wù)器,其特征在于,所述構(gòu)建單元,進(jìn)一步用于: 根據(jù)配置文件中應(yīng)用名稱,生成1s應(yīng)用名稱,根據(jù)配置文件中package-name,為1s應(yīng)用分配appID,當(dāng)接收到補(bǔ)丁文件時(shí),確定所述補(bǔ)丁文件對(duì)應(yīng)的appID,并將所述補(bǔ)丁文件加載到1s應(yīng)用中。3.根據(jù)權(quán)利要求1所述的1s應(yīng)用構(gòu)建服務(wù)器,其特征在于,所述打包單元,進(jìn)一步用于: 確定1s集成開發(fā)環(huán)境,修改集成開發(fā)環(huán)境中project, pbxproj文件,并生成build文件夾,構(gòu)成xcodebui Id編譯工程,利用xcodebui Id編譯工程,獲取1s證書的uuid值,并通過uuid值解鎖鑰匙串,為1s應(yīng)用、ipa文件和應(yīng)用日志簽名,生成ipa安裝包。4.根據(jù)權(quán)利要求1至3任一所述的1s應(yīng)用構(gòu)建服務(wù)器,其特征在于,所述交互單元,進(jìn)一步用于: 接收所述外設(shè)的混合應(yīng)用構(gòu)建服務(wù)器發(fā)送的插件,并將所述插件發(fā)送給所述構(gòu)建單元; 所述構(gòu)建單元,進(jìn)一步用于接收所述交互單元發(fā)送的插件,解析所述插件,將所述插件與所述頁面程序代碼結(jié)合,構(gòu)建1s應(yīng)用。5.一種1s應(yīng)用構(gòu)建集群,其特征在于,包括:至少一個(gè)權(quán)利要求1至4任一所述的1s應(yīng)用構(gòu)建服務(wù)器和至少一個(gè)混合應(yīng)用構(gòu)建服務(wù)器,其中, 所述至少一個(gè)混合應(yīng)用構(gòu)建服務(wù)器中,每一個(gè)混合應(yīng)用構(gòu)建服務(wù)器,用于接收外設(shè)的終端通過web應(yīng)用發(fā)送的構(gòu)建混合應(yīng)用請(qǐng)求,并確定所述構(gòu)建混合應(yīng)用請(qǐng)求中的構(gòu)建1s應(yīng)用請(qǐng)求,以及構(gòu)建1s應(yīng)用請(qǐng)求對(duì)應(yīng)的應(yīng)用文件、1s證書和應(yīng)用配置文件中的任意一個(gè)或多個(gè),并將所述構(gòu)建1s應(yīng)用請(qǐng)求發(fā)送給所述至少一個(gè)1s應(yīng)用構(gòu)建服務(wù)器中的目標(biāo)1s應(yīng)用構(gòu)建服務(wù)器,為所述目標(biāo)1s應(yīng)用構(gòu)建服務(wù)器提供下載接口 ; 所述至少一個(gè)1s應(yīng)用構(gòu)建服務(wù)器中,目標(biāo)1s應(yīng)用構(gòu)建服務(wù)器,用于接收到所述混合應(yīng)用構(gòu)建服務(wù)器發(fā)送的構(gòu)建1s應(yīng)用請(qǐng)求時(shí),通過所述下載接口下載所述構(gòu)建1s應(yīng)用請(qǐng)求對(duì)應(yīng)的應(yīng)用文件、1s證書和應(yīng)用配置文件中的任意一個(gè)或多個(gè)。6.根據(jù)權(quán)利要求5所述的1s應(yīng)用構(gòu)建集群,其特征在于, 所述每一個(gè)混合應(yīng)用構(gòu)建服務(wù)器,進(jìn)一步用于收集各種應(yīng)用插件,為外設(shè)的終端提供web應(yīng)用交互界面,通過所述web應(yīng)用交互界面確定所述外設(shè)的終端選定的目標(biāo)插件,并將所述目標(biāo)插件通過下載接口發(fā)送給所述目標(biāo)1s應(yīng)用構(gòu)建服務(wù)器。7.一種1s應(yīng)用構(gòu)建方法,其特征在于,包括: 接收混合應(yīng)用構(gòu)建服務(wù)器發(fā)送的構(gòu)建1s應(yīng)用請(qǐng)求; 根據(jù)所述構(gòu)建1s應(yīng)用請(qǐng)求,從所述混合應(yīng)用構(gòu)建服務(wù)器中,下載應(yīng)用文件、1s證書及應(yīng)用配置文件中的任意一個(gè)或多個(gè); 解析所述應(yīng)用文件中的頁面程序代碼及應(yīng)用配置文件中的頁面參數(shù),構(gòu)建1s應(yīng)用,并生成ipa文件和應(yīng)用日志; 通過security命令將1s證書安裝到login.keychain鑰匙串,解鎖鑰匙串,根據(jù)應(yīng)用配置文件中證書路徑和證書密碼,對(duì)所述1s應(yīng)用、ipa文件和應(yīng)用日志簽名打包,形成ipa安裝包。8.根據(jù)權(quán)利要求7所述的方法,其特征在于,所述構(gòu)建1s應(yīng)用,包括: 根據(jù)配置文件中應(yīng)用名稱,生成1s應(yīng)用名稱,根據(jù)配置文件中package-name,為1s應(yīng)用分配appID,當(dāng)接收到補(bǔ)丁文件時(shí),確定所述補(bǔ)丁文件對(duì)應(yīng)的appID,并將所述補(bǔ)丁文件加載到1s應(yīng)用中。9.根據(jù)權(quán)利要求7所述的方法,其特征在于,進(jìn)一步包括:確定1s集成開發(fā)環(huán)境,修改集成開發(fā)環(huán)境中pro ject.pbxproj文件,并生成bui Id文件夾,構(gòu)成xcodebui Id編譯工程; 所述對(duì)所述1s應(yīng)用、ipa文件和應(yīng)用日志簽名打包,形成ipa安裝包,包括:利用xcodebuiId編譯工程,獲取1s證書的uuid值,并通過uuid值解鎖鑰匙串,為1s應(yīng)用、ipa文件和應(yīng)用日志簽名,生成ipa安裝包。10.根據(jù)權(quán)利要求7至9任一所述的方法,其特征在于,進(jìn)一步包括:接收所述混合應(yīng)用構(gòu)建服務(wù)器發(fā)送的插件; 所述構(gòu)建1s應(yīng)用,包括:解析所述插件,將所述插件與所述頁面程序代碼結(jié)合,構(gòu)建1s應(yīng)用。
【文檔編號(hào)】G06F9/45GK106066808SQ201610369997
【公開日】2016年11月2日
【申請(qǐng)日】2016年5月30日 公開號(hào)201610369997.7, CN 106066808 A, CN 106066808A, CN 201610369997, CN-A-106066808, CN106066808 A, CN106066808A, CN201610369997, CN201610369997.7
【發(fā)明人】楊培帥, 王振峰, 李明明
【申請(qǐng)人】浪潮軟件股份有限公司