在Xcode 7之前想把iOS程序裝上設(shè)備(iPhone、iPad等等),都必須向Apple交保護費(加入Apple Developer Program)。Xcode 7允許不交保護費直接讓iOS程序在設(shè)備上跑,只要把設(shè)備連接上Xcode,各設(shè)備登錄的Apple ID不一致也沒關(guān)系。但不交保護費是有限制滴:無法開啟某些service(推送,內(nèi)購等),無法把程序?qū)С霭惭b包或者提交到App Store。
交過錢后,可以通過Member Center或者Xcode創(chuàng)建開發(fā)證書(development certificate)和發(fā)布證書(distribution certificate)。證書用于證明身份,Apple通過加密技術(shù)分別把開發(fā)證書和發(fā)布證書結(jié)合成兩個“簽名身份”(signing identites)。兩個簽名身份保存在鑰匙串(keychian Access)中。簽名身份用于對App進行簽名(sign)和預(yù)處理(provision)。
關(guān)鍵字解釋
development certificate:開發(fā)證書。如果是以組織(organization)的形式加入Apple Developer Program,每個團隊成員都可以創(chuàng)建自己的開發(fā)證書。
distribution certificate:發(fā)布證書。無論是組織還是個人開發(fā)者,都只有一個發(fā)布證書。
signing identites:開發(fā)簽名身份,用于在程序構(gòu)建(builde,發(fā)生在真機調(diào)試或者將程序生成archive文件時)過程中對其簽名,有開發(fā)、發(fā)布身份之分。身份由Apple發(fā)布的公鑰、私鑰及對應(yīng)的證書構(gòu)成。如果是以組織(organization)的形式加入Apple Developer Program,“開發(fā)簽名身份”的數(shù)量視團隊成員的數(shù)量而定,每個團隊成員都可以創(chuàng)建自己的開發(fā)證書,由此證書生成對應(yīng)的開發(fā)簽名身份。無論是以組織或者個人的形式加入Apple Developer Program,都只有一個發(fā)布證書,與此對應(yīng)只有一個發(fā)布簽名身份。
developer profile:開發(fā)者描述文件,是開發(fā)證書、發(fā)布證書和預(yù)處理描述文件的統(tǒng)稱。
provisioning:字面是意思是準(zhǔn)備,指的是App在機器上啟動前的預(yù)處理過程,在這個過程中根據(jù)“預(yù)處理描述文件”判斷App的作者、App是否被篡改、開啟哪些服務(wù)(service)等,最終交由系統(tǒng)決定是否啟動該App。
team provisioning profile:開發(fā)預(yù)處理文件(development provisioning profile),由Xcode創(chuàng)建和管理。該文件在真機調(diào)試時使用。
provisioning profiles:預(yù)處理描述文件,為預(yù)處理提供必要信息。是team provisioning profile、store provisioning profile等預(yù)處理文件的統(tǒng)稱。從Member Center下載并被植入軟件包(app bundle)中,這個過程一般由Xcode自動處理。