iOS開發(fā)關(guān)于證書的那點(diǎn)事

講之前先介紹一下bundle id佩耳,這個(gè)東西就相當(dāng)于我們每個(gè)人日常生活中的身份證一樣,一個(gè)App有且是有唯一的bundle Id,一旦App上架以后基本就無(wú)法修改了。特別是我們的bundle id還綁定了很多第三方的東西修改起來(lái)也是很麻煩,
通常我們創(chuàng)建一個(gè)App的配置有證書愕撰,App ID(bundle identifier),設(shè)備(Device)和齒輪文件還有一個(gè)CSR文件。
一.CSR文件
CSR文件(Certificate Signing Request)搞挣,證書簽名請(qǐng)求,要生成證書必須要先向keychain(鑰匙串)申請(qǐng)CSR文件带迟,此文件包含了一個(gè)包含開發(fā)者身份信息,我們?cè)偕暾?qǐng)生成CSR文件同時(shí)囱桨,Keychain Access|Keys中將新增一對(duì)Public/Private Key Pair(This signing identity consists of a public-private key pair that Apple issues)仓犬,他會(huì)和我們進(jìn)行匹配,導(dǎo)致只有創(chuàng)建證書的電腦才能將證書正確的安裝并使用舍肠,iOS開發(fā)的所有證書都是保存到鑰匙串里面進(jìn)行管理的搀继。此時(shí)的證書僅限于創(chuàng)建它的電腦去使用,如果我們想讓別人使用這個(gè)證書翠语,必須要到導(dǎo)出一個(gè).p12文件叽躯,

屏幕快照 2016-10-27 22.31.41.png

最左邊帶有三角尖頭的就代表時(shí)有私鑰的證書文件,這個(gè)時(shí)候我們就可以右擊選擇導(dǎo)出.p12文件肌括,他其實(shí)就是一個(gè)包含了私鑰和證書的備份文件点骑,或者可以理解為副本。這樣一個(gè)證書就可以給很多人使用了
PS:如何創(chuàng)建CSR文件http://www.reibang.com/p/5ba97e2b0045
如果我們想知道開發(fā)者中心的證書對(duì)應(yīng)著我們鑰匙串里面的證書谍夭,只需要比對(duì)它們的過(guò)期時(shí)間黑滴,一般來(lái)說(shuō)證書的有效期只有一年,而且因?yàn)橹忻纼蓢?guó)的時(shí)間差等原因紧索,一般來(lái)說(shuō)鑰匙串里的證書和開發(fā)者中證書的過(guò)期時(shí)間最多只相差一兩天袁辈,大多是相差一天或剛好吻合。
二.證書
證書分為Development測(cè)試(開發(fā))證書和Production發(fā)布證書,分別用來(lái)真機(jī)測(cè)試和發(fā)布(打包AdHoc版ipa)珠漂,首先一般來(lái)說(shuō)測(cè)試和發(fā)布證書一般只允許創(chuàng)建兩個(gè)晚缩,但是公司開發(fā)者帳號(hào)允許創(chuàng)建三個(gè)發(fā)布證書,個(gè)人開發(fā)者帳號(hào)沒(méi)有使用過(guò)不清楚甘磨。之前有人問(wèn)我是不是發(fā)布一個(gè)App就要?jiǎng)?chuàng)建一個(gè)發(fā)布證書,答案無(wú)疑是否定的橡羞,我們一般創(chuàng)建了一個(gè)測(cè)試和發(fā)布證書就可以給無(wú)數(shù)個(gè)App使用(理論上),但是推送的測(cè)試/證書是綁定了一個(gè)特定的App济舆,所以他是不同的App就要?jiǎng)?chuàng)建不同的推送證書。而且正在使用(或你電腦安裝且正在使用)的證書在被撤銷后還有24/48小時(shí)的過(guò)渡期莺债,這段時(shí)間內(nèi)你不能創(chuàng)建新的對(duì)應(yīng)的測(cè)試/發(fā)布證書滋觉,別人拷貝的.p12文件仍舊可以使用,關(guān)于這一點(diǎn)我也不是特別清楚齐邦,也是無(wú)意中發(fā)現(xiàn)的椎侠,有知道的可以在下面評(píng)論告知,不吝賜教措拇。
三.App ID(bundle identifier)****
App ID即Product ID我纪,用于標(biāo)識(shí)一個(gè)或者一組App。
App ID應(yīng)該和Xcode中的Bundle Identifier是一致(Explicit)的或匹配(Wildcard)的。
App ID字符串通常以反域名(reverse-domain-name)格式的Company Identifier(Company ID)作為前綴(Prefix/Seed)浅悉,一般不超過(guò)255個(gè)ASCII字符趟据。
App ID全名會(huì)被追加Application Identifier Prefix(一般為TeamID.),分為兩類:
Explicit App ID:唯一的App ID术健,用于唯一標(biāo)識(shí)一個(gè)應(yīng)用程序汹碱。例如“com.apple.garageband”這個(gè)App ID,用于標(biāo)識(shí)Bundle Identifier為“com.apple.garageband”的App荞估。
Wildcard App ID:含有通配符的App ID咳促,用于標(biāo)識(shí)一組應(yīng)用程序。例如“”(實(shí)際上是Application Identifier Prefix)表示所有應(yīng)用程序勘伺;而“com.apple.”可以表示Bundle Identifier以“com.apple.”開頭(蘋果公司)的所有應(yīng)用程序跪腹。
一旦bundle id在開發(fā)者帳號(hào)注冊(cè)以后就無(wú)法被注冊(cè)了,一般你在此注冊(cè)就會(huì)提示錯(cuò)誤飞醉,所以在免證書測(cè)試的時(shí)候最好要注意不要用你即將上架的bundle id真機(jī)測(cè)試尺迂,
一般我們上架了一定要選擇Explicit App ID,Wildcard包含通配符的是不允許上架的冒掌,因?yàn)槟愕腁pp id是不確定的噪裕,App id的作用是將你的證書(包含推送證書)和Bundle Id聯(lián)系(綁定)起來(lái)。另外我們?cè)趧?chuàng)建App id的時(shí)候還可以選擇是否需要開通推送/wallet/iCloud/Vpn等功能股毫,以前用Xcode7時(shí)開通了功能不需要設(shè)置對(duì)應(yīng)的entitlements文件審核也可以通過(guò)膳音,但是現(xiàn)在Xcdeo8開通的功能不設(shè)置的話會(huì)出現(xiàn)構(gòu)建版本失效,所以你只要開通你需要的功能即可铃诬。另外一個(gè)星期只能創(chuàng)建特定值以內(nèi)的App ID(具體多少不清楚了)
三.設(shè)備(Device)
Device就是運(yùn)行iOS系統(tǒng)用于開發(fā)調(diào)試App的設(shè)備祭陷。每臺(tái)Apple設(shè)備使用UDID來(lái)唯一標(biāo)識(shí)。
iOS設(shè)備連接Mac后趣席,可通過(guò)iTunes->Summary或者Xcode->Window->Devices獲取iPhone的UDID(identifier)兵志。
Apple Member Center網(wǎng)站個(gè)人賬號(hào)下的Devices中包含了注冊(cè)過(guò)的所有可用于開發(fā)和測(cè)試的設(shè)備,普通個(gè)人開發(fā)賬號(hào)每年累計(jì)最多只能注冊(cè)100個(gè)設(shè)備宣肚。
Apps signed by you or your team run only on designated development devices.
Apps run only on the test devices you specify.
本文的Devices是指連接到Xcode被授權(quán)用于開發(fā)測(cè)試的iOS設(shè)備(iPhone/iPad)想罕。
另外用戶要向清除掉一些已注冊(cè)的UDID需要等到蘋果帳號(hào)續(xù)費(fèi)后帳號(hào)更新配置的時(shí)候刪除才有效,否則你即使刪除了其實(shí)它也會(huì)占用你的名額(100個(gè))霉涨。
另外按价,當(dāng)我們每次添加了新的udid相讓新的設(shè)備可以安裝并使用,我們都需要修改齒輪文件把新的設(shè)備添加進(jìn)去生成新的齒輪文件笙瑟,然后下載并使用新的楼镐。
四.齒輪文件(Provisioning Profile)
齒輪文件又名配置文件/授權(quán)文件,因?yàn)榭雌饋?lái)像齒輪所以我稱呼為齒輪文件往枷。齒輪文件文件包含了上述的所有內(nèi)容:證書框产、App ID和設(shè)備凄杯,
屏幕快照 2016-10-27 22.59.26.png
它的作用就是將它們緊密的聯(lián)系在一起。
一個(gè)Provisioning Profile對(duì)應(yīng)一個(gè)Explicit App ID或Wildcard App ID(一組相同Prefix/Seed的App IDs)秉宿。在網(wǎng)站上手動(dòng)創(chuàng)建一個(gè)Provisioning Profile時(shí)戒突,需要依次指定App ID(單選)、證書(Certificates蘸鲸,可多選)和設(shè)備(Devices妖谴,可多選)。用戶可在網(wǎng)站上刪除(Delete)已注冊(cè)的Provisioning Profiles酌摇。
Provisioning Profile也分為Development和Distribution兩類膝舅,有效期同Certificate一樣。
屏幕快照 2016-10-27 23.02.25.png
測(cè)試版齒輪文件一般用于真機(jī)測(cè)試窑多,發(fā)布版齒輪文件分為AppStore和Ad Hoc兩種仍稀,分別對(duì)應(yīng)著發(fā)布和打包Ad Hoc版ipa包,一般測(cè)試版齒輪文件可以添加所有的測(cè)試證書埂息,它們都是有設(shè)備限制的技潘,這一點(diǎn)企業(yè)帳號(hào)也是相同的。而使用發(fā)布證書發(fā)布到App Store或者打包Ad Hoc版ipa包只能選擇唯一的發(fā)布證書(分別對(duì)應(yīng)著App Store 和Ad Hoc齒輪文件)千康,所以我們需要我們鑰匙串里面安裝的發(fā)布證書享幽,如果選錯(cuò)了最后一定提示你的證書有效但是沒(méi)有安裝到你的電腦本地,提示你重新創(chuàng)建一個(gè)新的或者導(dǎo)入對(duì)應(yīng)的發(fā)布證書.p12文件拾弃。
屏幕快照 2016-10-27 23.16.05.png

我按照順序從上到下講解這四個(gè)
1.Save for iOS App Store Deployment
保存到本地 準(zhǔn)備上傳App Store 值桩,使用的是App Store齒輪文件
2.Save for Ad Hoc Deployment
保存到本地 準(zhǔn)備在賬號(hào)添加的可使用設(shè)備上使用(具體為在開發(fā)者賬戶下添加可用設(shè)備的udid),該app包是發(fā)布證書編譯的豪椿,即打包Ad Hoc包時(shí)使用Ad Hoc齒輪文件使用的奔坟,由設(shè)備限制
3.Save for Enterprise Deployment
這種主要針對(duì)企業(yè)級(jí)賬戶下 準(zhǔn)備本地服務(wù)器分發(fā)的app,沒(méi)有設(shè)備限制(企業(yè)帳號(hào)專用
4.Save for Development Deployment
針對(duì)內(nèi)部測(cè)試使用搭盾,主要給開發(fā)者的設(shè)備(具體也為在開發(fā)者賬戶下添加可用設(shè)備的udid)咳秉。該app包是測(cè)試證書證書編譯的,有設(shè)備限制
屏幕快照 2016-10-27 23.31.28.png

App id就是我們之前注冊(cè)的App id,
Certificates一般來(lái)說(shuō)測(cè)試的齒輪文件可能有多個(gè)鸯隅,因?yàn)樗嵌噙x澜建,但是發(fā)布的齒輪文件時(shí)單選,只會(huì)顯示1
Devices對(duì)應(yīng)著我們的添加的did的設(shè)備滋迈,如果為0那只有兩種可能霎奢,一個(gè)是發(fā)布到AppStore使用,還有一個(gè)是打包企業(yè)包使用饼灿,它們沒(méi)有設(shè)備限制也就是這里體現(xiàn)出來(lái)的,這個(gè)地方數(shù)字為幾意味著對(duì)應(yīng)的那些設(shè)備可以安裝并使用你的App帝美,否則即使你安裝了也會(huì)出現(xiàn)閃退導(dǎo)致無(wú)法使用

最后感興趣的還可以看下這個(gè)http://www.cnblogs.com/wangyang1213/p/5209119.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末碍彭,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌庇忌,老刑警劉巖舞箍,帶你破解...
    沈念sama閱讀 211,376評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異皆疹,居然都是意外死亡疏橄,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門略就,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)捎迫,“玉大人,你說(shuō)我怎么就攤上這事表牢≌蓿” “怎么了?”我有些...
    開封第一講書人閱讀 156,966評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵崔兴,是天一觀的道長(zhǎng)彰导。 經(jīng)常有香客問(wèn)我,道長(zhǎng)敲茄,這世上最難降的妖魔是什么位谋? 我笑而不...
    開封第一講書人閱讀 56,432評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮堰燎,結(jié)果婚禮上掏父,老公的妹妹穿的比我還像新娘。我一直安慰自己爽待,他們只是感情好损同,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,519評(píng)論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著鸟款,像睡著了一般膏燃。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上何什,一...
    開封第一講書人閱讀 49,792評(píng)論 1 290
  • 那天组哩,我揣著相機(jī)與錄音,去河邊找鬼处渣。 笑死伶贰,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的罐栈。 我是一名探鬼主播黍衙,決...
    沈念sama閱讀 38,933評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼荠诬!你這毒婦竟也來(lái)了琅翻?” 一聲冷哼從身側(cè)響起位仁,我...
    開封第一講書人閱讀 37,701評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎方椎,沒(méi)想到半個(gè)月后聂抢,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,143評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡棠众,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,488評(píng)論 2 327
  • 正文 我和宋清朗相戀三年琳疏,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片闸拿。...
    茶點(diǎn)故事閱讀 38,626評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡空盼,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出胸墙,到底是詐尸還是另有隱情我注,我是刑警寧澤,帶...
    沈念sama閱讀 34,292評(píng)論 4 329
  • 正文 年R本政府宣布迟隅,位于F島的核電站但骨,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏智袭。R本人自食惡果不足惜奔缠,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,896評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望吼野。 院中可真熱鬧校哎,春花似錦、人聲如沸瞳步。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)单起。三九已至抱怔,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間嘀倒,已是汗流浹背屈留。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留测蘑,地道東北人灌危。 一個(gè)月前我還...
    沈念sama閱讀 46,324評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像碳胳,于是被迫代替她去往敵國(guó)和親勇蝙。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,494評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容