亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

理解Certificate、AppId、Identifiers和ProvisioningProfile

2019-11-14 20:23:54
字體:
來源:轉載
供稿:網友

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

 

內容參考自:http://blog.csdn.net/hitwhylz/article/details/22989507

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

 

當你準備進行真機測試或者發布應用到App Store上去的時候, 免不了要申請相應的證書。(Development--測試證書。 Distribution--發布證書)

進入證書管理相應網站https://developer.apple.com/account/ios/PRofile/profileList.action。

可以很容易的發現這樣的幾個東西。

其中, Devices指的當然是設備了。 這里不做介紹。每個開發者賬號可以關聯100臺設備。你可以通過xcode直接添加你的設備。

現在, 著重講解下Certificate、AppId和Provisioning Profile。

 

Certificate(證書)

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

其中Development證書提供開發者在電腦上真機調試的權限,可以制作多個副本分發到多臺電腦。

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

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

 

  • Development
    • App Development (1年):用來開發和真機調試應用程序。
    • Push Development (1年):用來調試Apple Push Notification
  • Production
    • In-House and Ad Hoc (3年):用來發布In-House和AdHoc的應用程序。

    •  

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

 

 

注:

 

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

 

 

 

App ID

 

 

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

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

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

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

 

Identifiers

  • Identifiers 即”標識符“,約等于是身份證,用于創建以下三個:

    App IDs 

    Pass Type IDs

    Website Push IDs

其中,App ID是應用的唯一標示符,每一個應用的app id是不一樣的

 

Provisioning Profile

 

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

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

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

如上所述,在一臺設備上運行應用程序的過程如下:

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

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

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

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

 

 

2.開發/發布流程

 

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

開發/真機調試流程

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

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

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

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

發布流程

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

  • 創建發布證書
  • 創建App ID
  • 創建對應的Provisioning Profile文件
  • 設備Bundle ID和App ID一致
  • 設置Xcode Code Sign Identifer,選擇合適的Profile和證書進行簽名,打包

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

 

 

PS

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

第一步:申請本地證書

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

                                

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

                              

選擇從頒發機構申請證書,注意下面的紅色框,必須選擇那一個才可以:

                            

點擊后看到:

                                       

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

                                       

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

                                       

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

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

 

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

第二步: 在開發者賬號里申請證書              

我們進入99美元開發賬號看到:

                         

點擊 Certificates, Identifiers & Profiles,進入頁面看到:

                                               

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

                                                     

點擊“+”后看到:

                                                     

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

                                    

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

                                              

選擇好后,點擊“continue”:

                                                          

 

點擊后出現:                                                  

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

                                                         

                                                         

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

 

選擇“Download”。

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

 

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

 

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

 

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

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

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品国产自产拍高清av水多| 日韩网站免费观看| 久久精品视频中文字幕| 成人亚洲综合色就1024| 国产偷亚洲偷欧美偷精品| 日韩国产精品亚洲а∨天堂免| 成人美女av在线直播| 国产精品老女人精品视频| 欧美激情女人20p| 色婷婷久久av| 日韩美女免费线视频| 51精品在线观看| 亚洲性无码av在线| 亚洲最新av在线| 欧美伊久线香蕉线新在线| 成人av在线亚洲| 国产精品福利小视频| 欧美性在线观看| 97在线视频免费播放| 国产日韩欧美另类| 国产精品女主播视频| 欧美第一黄色网| 操日韩av在线电影| 成人午夜黄色影院| 久久影院免费观看| 国产精品福利片| 欧美性猛交xxxx免费看| 日韩在线精品视频| 欧美一级成年大片在线观看| 日韩精品极品在线观看播放免费视频| 中文字幕亚洲第一| www.欧美精品| 欧美视频免费在线观看| 久久亚洲影音av资源网| 国产精品成人国产乱一区| 国内偷自视频区视频综合| 国产精品h片在线播放| 97视频免费观看| 日韩成人黄色av| 午夜精品一区二区三区在线| 色妞色视频一区二区三区四区| 日韩一区二区三区国产| 亚洲精品中文字幕有码专区| 欧美猛交ⅹxxx乱大交视频| 国产精品人成电影| 国产美女主播一区| 国产精品一久久香蕉国产线看观看| 亚洲新中文字幕| 亚洲色图17p| 日韩在线精品一区| 91av在线播放视频| 欧美日韩成人网| 欧美丰满少妇xxxx| 国产脚交av在线一区二区| 一区二区欧美激情| 久久久精品美女| 欧美在线视频免费观看| 亚洲黄色www网站| 国产精品视频网| 欧美一区第一页| 原创国产精品91| 久久精品青青大伊人av| 欧美日韩日本国产| 亚洲欧洲国产精品| 欧美性jizz18性欧美| 亚洲成人网久久久| 中文字幕日韩视频| 久久人人97超碰精品888| 国产精品久久久久久av福利| 午夜精品理论片| 亚洲天堂第二页| 久久天天躁狠狠躁老女人| 亚洲成人久久久| 日韩一二三在线视频播| 2019亚洲男人天堂| 日韩电影免费观看中文字幕| 69久久夜色精品国产69乱青草| 92福利视频午夜1000合集在线观看| 成人欧美一区二区三区在线湿哒哒| 日韩av在线网| 欧美大尺度在线观看| 国产欧亚日韩视频| 91久久久久久久久| 日韩av网站电影| 亚洲精品在线看| 成人在线激情视频| 在线激情影院一区| 亚洲精品v欧美精品v日韩精品| 日韩欧美一区二区在线| 成人亚洲综合色就1024| 国产亚洲一区二区在线| 欧美激情精品久久久久久久变态| 久久亚洲一区二区三区四区五区高| 亚州精品天堂中文字幕| 国产精品夫妻激情| 欧美成人一区二区三区电影| 最近2019中文免费高清视频观看www99| 中文日韩在线观看| 亚洲福利在线看| 欧美色xxxx| 欧美日韩中文字幕在线视频| 精品久久久久久亚洲国产300| 亚洲另类激情图| 中文字幕亚洲字幕| 欧美另类极品videosbest最新版本| 97国产成人精品视频| 国产日韩在线亚洲字幕中文| 精品免费在线观看| 疯狂做受xxxx欧美肥白少妇| 91社区国产高清| 中文国产成人精品久久一| 91青草视频久久| 77777亚洲午夜久久多人| 欧美亚洲成人xxx| 欧美精品在线免费播放| 国产日韩视频在线观看| 日韩av不卡电影| 成人淫片在线看| 亚洲男人天堂古典| 亚洲图片在线综合| 尤物九九久久国产精品的分类| 久久韩剧网电视剧| 久久精品国产久精国产思思| 亚洲国产精品嫩草影院久久| 久热爱精品视频线路一| 欧美老女人性视频| 97在线视频免费观看| 亚洲日本中文字幕免费在线不卡| 5252色成人免费视频| 国产成人精品a视频一区www| 国产成人高清激情视频在线观看| 欧美性xxxx18| xxxx欧美18另类的高清| 青青久久av北条麻妃黑人| 国产亚洲精品美女久久久| 亚洲九九九在线观看| 国产日韩欧美91| 亚洲免费影视第一页| 国产精品中文字幕在线| 亚洲国产精品va在线| 成人国产精品久久久| 久久久久免费视频| 麻豆国产va免费精品高清在线| 国产精品一区二区三区久久| 日韩美女在线观看一区| 成人精品视频99在线观看免费| 亚洲一区二区三区久久| 91精品国产一区| 色先锋资源久久综合5566| 日韩av一区二区在线观看| 中日韩美女免费视频网站在线观看| 91精品国产99久久久久久| 国产精品91久久久久久| 日韩精品在线免费观看视频| 亚洲美女在线看| 日韩av免费在线播放| 美日韩精品免费视频| 国产在线98福利播放视频| 亚洲国产小视频| 91精品国产777在线观看| 久久久91精品国产一区不卡| 欧美日韩在线一区| 色小说视频一区| 在线a欧美视频|