iOS證書深究

iOS證書深究app

iOS的系列證書很使人頭痛,可是也提供了完整的保護。ide

在開發過程當中,遇到的基本的證書有Xcode真機調試或者打包用證書,也有消息推送證書等;每種證書分爲開發版(development)和發佈版(distribute)。除了證書,還有概要配置文件。衆多的分類和配置,很容易混淆,接下來詳細描述一番,並解釋個人理解。測試

先看蘋果開發者中心的證書界面。主要分類爲:Certificate、AppID、Device、Provisioning Profile。debug

AppID是一切的開始,就如一個身份證,和每一個人是惟一對應的;根據identifier生成不一樣類型的證書,都在Certificate列表裏,證書之間都是平等關係,例如消息推送證書不是根據打包證書生成的,而一樣是根據identifier產生的;Device列表管理測試用設備;Provisioning Profile是概要配置文件,是聯繫identifier、設備、證書的一個紐帶,通常先選擇AppID,而後指定證書和測試設備,進而產生做爲紐帶的配置文件。調試

除了上述對象,在產生部分文件過程當中,還有一個證書籤名請求文件(CSR),這是標識Mac OS系統的,上述文件要用在哪臺Mac機上,就用該機鑰匙串生成的CSR文件。code

否則,會出現以下錯誤:將非本Mac機CSR文件支持產生的證書導入鑰匙串,是找不到私鑰的,這樣就沒法在Xcode中使用。對象

         各類證書的生成方法和過程,想必不會太糾結,按照提示就能夠了,關鍵在於使用過程當中的關係。ip

         證書生成好之後,下載下來,雙擊,就會自動加載到鑰匙串的「登錄」項中,有私鑰就說明添加成功了。概要配置文件也是雙擊,會自動加載到Xcode中。而後去Xcode的Target編譯設置中,找到Code Signing項,對應debug、release、distribute三種模式,先選擇相應的配置文件,而後在證書配置項裏就能夠看到跟配置文件關聯的證書選項。開發

         介紹一下推送證書。推送證書是根據AppID產生的,而後下載下來,格式爲.cer,也能夠先雙擊加入鑰匙串,而後在鑰匙串中導出p12格式的文件,也能夠生產.pem格式,供不一樣推送程序直接加載使用。而推送證書跟應用的惟一關聯關係,就存儲於概要配置文件中,因此應該先生產推送證書,後生成概要配置文件。不然就會引起推送無效的問題。get

         再說一下Ad Hoc證書。這種證書跟發佈版(distribute)相似,也就是說能夠Archive成ipa安裝包。可是不能上傳到AppStore中。主要用於給遠方合做的測試人員使用。這樣既解決了遠距離安裝測試的問題,也避免了ipa包被他人傳到AppStore中。

 

補充:

開發版和發佈版證書會產生不一樣的deviceToken,可是隻有前者才能在Xcode中log輸出看到,由於後者只能Archive打包成ipa包,因此爲了測試,能夠show一個UIAlertView出來。

這就引伸出消息推送的一個問題。在測試開發版和發佈版app時候,同一臺設備,會產生兩個deviceToken,切記不要搞錯了推送目標!

相關文章
相關標籤/搜索