国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

理解Certificate、AppId、Identifiers和ProvisioningProfile

2019-11-14 20:23:54
字體:
供稿:網(wǎng)友

做真機(jī)測試的時候,按照網(wǎng)上的流程,走通了,當(dāng)時沒有注意各種證書等的意思。現(xiàn)在做消息推送,需要各種證書、APP ID信息,為了更好的理解這個過程,所以整理了網(wǎng)上關(guān)于證書等的相關(guān)資料。方便自己和有需要的朋友。

 

內(nèi)容參考自:http://blog.csdn.net/hitwhylz/article/details/22989507

http://my.oschina.net/u/1245365/blog/196263

 

當(dāng)你準(zhǔn)備進(jìn)行真機(jī)測試或者發(fā)布應(yīng)用到App Store上去的時候, 免不了要申請相應(yīng)的證書。(Development--測試證書。 Distribution--發(fā)布證書)

進(jìn)入證書管理相應(yīng)網(wǎng)站https://developer.apple.com/account/ios/PRofile/profileList.action。

可以很容易的發(fā)現(xiàn)這樣的幾個東西。

其中, Devices指的當(dāng)然是設(shè)備了。 這里不做介紹。每個開發(fā)者賬號可以關(guān)聯(lián)100臺設(shè)備。你可以通過xcode直接添加你的設(shè)備。

現(xiàn)在, 著重講解下Certificate、AppId和Provisioning Profile。

 

Certificate(證書)

證書是你有權(quán)利開發(fā)的憑證,是開發(fā)者的一種標(biāo)識,相當(dāng)于身份證,一個開發(fā)者賬號只有一套。一套含兩個,Development和Distribution(也就是Production)。

其中Development證書提供開發(fā)者在電腦上真機(jī)調(diào)試的權(quán)限,可以制作多個副本分發(fā)到多臺電腦。

Distribution證書給開發(fā)者提供發(fā)布ios程序的權(quán)限,也就是說有了這個,你就有權(quán)力發(fā)布程序到App Store去了。只有一個,不能制作副本分發(fā)到多臺電腦。

下面是證書的分類信息:(括號內(nèi)為證書有效期)

 

  • Development
    • App Development (1年):用來開發(fā)和真機(jī)調(diào)試應(yīng)用程序。
    • Push Development (1年):用來調(diào)試Apple Push Notification
  • Production
    • In-House and Ad Hoc (3年):用來發(fā)布In-House和AdHoc的應(yīng)用程序。

    •  

         App Store :用來發(fā)布提交App Store的應(yīng)用程序。
    • MDM CSR
    • Push Production (1年):用來在發(fā)布版本中使用Apple Push Notification。
    • Pass Type ID Certificate
    • Website Push ID Certificate

 

 

注:

 

我們申請一個Certificate之前,需要先申請一個Certificate Signing Request (CSR) 文件,而這個過程中實際上是生成了一對公鑰和私鑰,保存在你Mac的Keychain中。代碼簽名正是使用這種基于非對稱秘鑰的加密方式,用私鑰進(jìn)行簽名,用公鑰進(jìn)行驗證。如下圖所示,在你Mac的keychain的login中存儲著相關(guān)的公鑰和私鑰,而證書中包含了公鑰。你只能用私鑰來進(jìn)行簽名,所以如果沒有了私鑰,就意味著你不能進(jìn)行簽名了,所以就無法使用這個證書了,此時你只能revoke之前的證書再申請一個。因此在申請完證書時,最好導(dǎo)出并保存好你的私鑰。當(dāng)你想與其他人或其他設(shè)備共享證書時,把私鑰傳給它就可以了。私鑰保存在你的Mac中,而蘋果生成的Certificate中包含了公鑰。當(dāng)你用自己的私鑰對代碼簽名后,蘋果就可以用證書中的公鑰來進(jìn)行驗證,確保是你對代碼進(jìn)行了簽名,而不是別人冒充你,同時也確保代碼的完整性等。 

 

 

 

App ID

 

 

App ID用于標(biāo)識一個或者一組App,App ID應(yīng)該是和Xcode中的Bundle ID是一致的或者匹配的。App ID主要有以下兩種: 

  • Explicit App ID:唯一的App ID,這種App ID用于唯一標(biāo)識一個應(yīng)用程序,例如com.ABC.demo1,標(biāo)識Bundle ID為com.ABC.demo1的程序。
  • Wildcard App ID:通配符App ID,用于標(biāo)識一組應(yīng)用程序。例如*可以表示所有應(yīng)用程序,而com.ABC.*可以表示以com.ABC開頭的所有應(yīng)用程序。

 每創(chuàng)建一個App ID,我們都可以設(shè)置該App ID所使用的APP Services,也就是其所使用的額外服務(wù)。每種額外服務(wù)都有著不同的要求,例如,如果要使用Apple Push Notification Services,則必須是一個explicit App ID,以便能唯一標(biāo)識一個應(yīng)用程序。下面是目前所有可選的服務(wù)和相應(yīng)的配置要求。

如果你的App使用上述的任何一種service,就要按照要求去配置。

 

Identifiers

  • Identifiers 即”標(biāo)識符“,約等于是身份證,用于創(chuàng)建以下三個:

    App IDs 

    Pass Type IDs

    Website Push IDs

其中,App ID是應(yīng)用的唯一標(biāo)示符,每一個應(yīng)用的app id是不一樣的

 

Provisioning Profile

 

一個Provisioning Profile文件包含了上述的所有內(nèi)容:證書、App ID、設(shè)備。

試想一下,如果我們要打包或者在真機(jī)上運(yùn)行一個應(yīng)用程序,我們首先需要證書來進(jìn)行簽名,用來標(biāo)識這個應(yīng)用程序是合法的、安全的、完整的等等;然后需要指明它的App ID,并且驗證Bundle ID是否與其一致;再次,如果是真機(jī)調(diào)試,需要確認(rèn)這臺設(shè)備能否用來運(yùn)行程序。而Provisioning Profile就把這些信息全部打包在一起,方便我們在調(diào)試和發(fā)布程序打包時使用,這樣我們只要在不同的情況下選擇不同的profile文件就可以了。而且這個Provisioning Profile文件會在打包時嵌入.ipa的包里。

例如,如下圖所示,一個用于Development的Provisioning Profile中包含了該P(yáng)rovisioning Profile對應(yīng)的App ID,可使用的證書和設(shè)備。這意味著使用這個Provisioning Profile打包程序必須擁有相應(yīng)的證書,并且是將App ID對應(yīng)的程序運(yùn)行到Devices中包含的設(shè)備上去。

如上所述,在一臺設(shè)備上運(yùn)行應(yīng)用程序的過程如下:

與證書一樣,Provisioning Profile也分為Development和Distribution兩種:

(注:前面提到不同賬戶類型所能創(chuàng)建的證書種類不同,顯然Profile文件的種類是和你所能創(chuàng)建的證書種類相關(guān)的)

  • Development (1年)
  • Distribution (1年)
    • In House
    • Ad Hoc
    • App Store

In House 與Ad Hoc的不同之處在于:In House沒有設(shè)備數(shù)量限制,而Ad Hoc是用來測試用的,Ad Hoc的包只能運(yùn)行在該賬戶內(nèi)已登記的可用設(shè)備上,顯然是有最多100個設(shè)備的數(shù)量限制。所以這兩種Provisioning Profile文件的區(qū)別就在于其中的設(shè)備限制不一樣而已,而他們所使用的Certificate是相同的。

 

 

2.開發(fā)/發(fā)布流程

 

了解了上面的概念,再來看開發(fā)及發(fā)布流程就非常簡單了,而且相信你不用看教程也能一步步完成所有的操作了。

開發(fā)/真機(jī)調(diào)試流程

根據(jù)上面的介紹,可以知道進(jìn)行Development主要有以下幾個步驟:

  • 申請證書
  • 加入設(shè)備
  • 生成Provisioning Profile
  • 設(shè)置Xcode Code Sign Identifer

事實上第三步通常是不需要的,因為我們通常都是用Xcode生成和管理的iOS Team Provisioning Profile來進(jìn)行開發(fā),因為它非常方便,所以不需要自己手動生成Provisioning Profile。

iOS Team Provisioning Profile是第一次使用Xcode添加設(shè)備時,Xcode自動生成的,它包含了Xcode生成的一個Wildcard App ID(*,匹配所有應(yīng)用程序),賬戶里面所有的Devices和所有Development Certificates,如下圖所示。因此,team中的所有成員都可以使用這個iOS Team Provisioning Profile在team中的所有設(shè)備上調(diào)試所有的應(yīng)用程序。并且當(dāng)有新設(shè)備添加進(jìn)來時,Xcode會更新這個文件。

發(fā)布流程

網(wǎng)上有很多關(guān)于發(fā)布App Store的流程,我就不綴述了,不過根據(jù)上面的概念介紹,不管是App Store、In-House還是Ad-Hoc,打包流程都是差不多的,都包括了以下幾個關(guān)鍵步驟:

  • 創(chuàng)建發(fā)布證書
  • 創(chuàng)建App ID
  • 創(chuàng)建對應(yīng)的Provisioning Profile文件
  • 設(shè)備Bundle ID和App ID一致
  • 設(shè)置Xcode Code Sign Identifer,選擇合適的Profile和證書進(jìn)行簽名,打包

以上就是對證書、Provisioning Profile、App ID等的介紹,下一篇文章會介紹以下In-House證書相關(guān)的內(nèi)容。

 

 

PS

下面來介紹如何申請證書:

第一步:申請本地證書

申請證書必須在我們的電腦上先申請一個證書,找到  

                                

點擊"其他",找到“鑰匙串”:

                              

選擇從頒發(fā)機(jī)構(gòu)申請證書,注意下面的紅色框,必須選擇那一個才可以:

                            

點擊后看到:

                                       

如果選擇 “存儲到磁盤”,那么“用戶郵件地址” 隨便填一個就好,點擊“繼續(xù)”:

                                       

“存儲為:”可以給證書命名,選擇一個位置,點擊“存儲”:

                                       

這樣在桌面就生成了一個證書。

注意這一個本地證書可以同時用來生成“開發(fā)證書”和“發(fā)布證書”。

 

下面只介紹“發(fā)布證書“的申請,申請”開發(fā)證書“步驟相同,就是換一個選項 

第二步: 在開發(fā)者賬號里申請證書              

我們進(jìn)入99美元開發(fā)賬號看到:

                         

點擊 Certificates, Identifiers & Profiles,進(jìn)入頁面看到:

                                               

如果要申請開發(fā)證書就選擇 Development,如果要申請發(fā)布證書,就選擇 Production,步驟都是選擇“+”號后添加證書:

                                                     

點擊“+”后看到:

                                                     

如果是選擇 “開發(fā)證書”,點擊第一個紅框

                                    

如果是選擇 “發(fā)布證書”,點擊第二個紅框

                                              

選擇好后,點擊“continue”:

                                                          

 

點擊后出現(xiàn):                                                  

選擇“Choose File” 將剛剛申請的保存在本地的證書上傳:

                                                         

                                                         

上傳好后,點擊“Generate” 就可以生成證書了。

 

選擇“Download”。

這時,我們在本地生成的證書就沒用了,可以刪除。

 

我們返回到證書的界面可以看到我們申請的證書:

 

一般申請一個 發(fā)布證書(IOS Distribution),一個開發(fā)證書(IOS Development)就夠用了。

 

找到下載的文件,雙擊它,添加到鑰匙串里就好了。在這一步里,如果鑰匙串拒絕添加,直接將其拖進(jìn)鑰匙串就行:

這樣證書就申請完畢了,有了證書后,接下來可以申請各種各樣的描述文件供開發(fā)使用

 


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 郎溪县| 金山区| 宁安市| 郯城县| 南和县| 株洲市| 五指山市| 托克逊县| 邛崃市| 甘孜| 安岳县| 巩留县| 江山市| 宽甸| 同心县| 攀枝花市| 壤塘县| 鹤壁市| 渝中区| 广德县| 四川省| 南丹县| 扎赉特旗| 滁州市| 恩施市| 绥芬河市| 长葛市| 建瓯市| 宜昌市| 大埔县| 廊坊市| 师宗县| 九龙城区| 镇宁| 滁州市| 砚山县| 堆龙德庆县| 江城| 咸阳市| 精河县| 江达县|