iOS開(kāi)發(fā)個(gè)人證書(shū)多設(shè)備的常用部署-Part1

前段時(shí)間,項(xiàng)目的發(fā)布證書(shū)過(guò)期了振亮,于是整理了一番映挂,簡(jiǎn)單總結(jié)一下吧。

初步了解

開(kāi)發(fā)和發(fā)布iOS App普气,必須加入蘋(píng)果的開(kāi)發(fā)者計(jì)劃(Apple Developer Program)谜疤。

蘋(píng)果開(kāi)發(fā)者計(jì)劃,有兩種:

  • 個(gè)人版(Individual $99/Year)
  • 企業(yè)開(kāi)發(fā)(Organization $299/Year)
Apple Developer Program

目前多數(shù)個(gè)人開(kāi)發(fā)者和一些規(guī)模不太大的企業(yè)现诀,都是使用個(gè)人版夷磕。

從開(kāi)發(fā)角度來(lái)講,企業(yè)版對(duì)于個(gè)人版最大的不同在于仔沿,可以進(jìn)行企業(yè)發(fā)布坐桩。
企業(yè)發(fā)布打包的ipa,通過(guò)fir.im蒲公英等第三方來(lái)發(fā)布于未。
任何人都可以安裝這個(gè)App,不必通過(guò)蘋(píng)果的審核。

但也是有一些限制烘浦,例如證書(shū)如果無(wú)效了抖坪,App就打不開(kāi)了。
數(shù)目好像也有限制闷叉。了解的童鞋,請(qǐng)留言擦俐。這里不深入。

申請(qǐng)步驟也沒(méi)什么特別握侧,一步一步按要求填寫(xiě)就OK蚯瞧,這里直接跳過(guò)了。申請(qǐng)地址

申請(qǐng)成功后,進(jìn)入開(kāi)發(fā)主頁(yè),點(diǎn)擊賬戶(hù),進(jìn)入賬戶(hù)主頁(yè).

賬戶(hù)主頁(yè)

點(diǎn)擊 Certificates品擎,IDs & Profiles進(jìn)入證書(shū)管理埋合。

三種證書(shū)

可以看到證書(shū)是分為3種來(lái)進(jìn)行管理,請(qǐng)避免不小心選錯(cuò)的尷尬萄传。

  • iOS,tvOS,watchOS
  • macOS
  • Safari Extension
開(kāi)發(fā)和發(fā)布相關(guān)

Keys 是新出的一個(gè)東西甚颂,相關(guān)內(nèi)容如下,這里不作深入秀菱。

keys

(翻譯)創(chuàng)建一個(gè)key可以用來(lái)配置和認(rèn)證一個(gè)或者多人蘋(píng)果服務(wù)振诬。不像證書(shū),keys是不會(huì)過(guò)期的衍菱,而且創(chuàng)建后依然可以修改來(lái)使用更多服務(wù)赶么。更多關(guān)于創(chuàng)建和使用keys的信息,可以通過(guò)創(chuàng)建key時(shí)候脊串,點(diǎn)擊相關(guān)的鏈接來(lái)了解辫呻。

接下來(lái)是手動(dòng)管理signing的部分。
如果你只使用Automatically manage signing洪规,可以跳過(guò)該部分印屁。


自動(dòng)管理

Automatically manage signing會(huì)自動(dòng)創(chuàng)建證書(shū)。
由于我們團(tuán)隊(duì)的管理是比較開(kāi)放的(每個(gè)童鞋都知道開(kāi)發(fā)者帳號(hào)密碼)斩例。A童鞋自動(dòng)創(chuàng)建好的雄人,B童鞋再自動(dòng)創(chuàng)建,如果數(shù)量超出限制念赶,會(huì)導(dǎo)致之前的證書(shū)被revoke了础钠,無(wú)法使用。
所以后來(lái)我們團(tuán)隊(duì)關(guān)閉自動(dòng)管理叉谜,避免相互影響旗吁。

手動(dòng)創(chuàng)建

開(kāi)發(fā)和發(fā)布App最基礎(chǔ)的三個(gè)東西。

  • Certificates (證書(shū))
  • Identifiers (App ID相關(guān))
  • Provisioning Profiles (配置文件)
第一步停局,先創(chuàng)建App ID很钓。
  • 填A(yù)pp描述香府,即App名,不過(guò)此名非真正顯示的App名码倦,只是在配置證書(shū)使用的名字企孩。


    app描述
  • 填寫(xiě)App ID,即app的bundle ID

即創(chuàng)建工程的時(shí)候袁稽,如下圖位置的id:


bundle

回過(guò)頭來(lái)想勿璃,開(kāi)發(fā)一個(gè)App最先應(yīng)該做的應(yīng)該是申請(qǐng)App ID,應(yīng)為App ID在不允許和其他App(整個(gè)App Store)重復(fù)推汽,具有唯一性补疑。如果重復(fù)只能老老實(shí)實(shí)修改。

App ID

Wildcard App ID 請(qǐng)忽略歹撒,想了解用途的戳我莲组。

  • 勾選相關(guān)服務(wù)
    這里選擇了推送和App Group(App Group將在下一篇講到)。


    服務(wù)

Continue 栈妆, Register胁编,Done 完成App ID的創(chuàng)建。


完成testapp的ID創(chuàng)建
創(chuàng)建證書(shū)
  • 選擇證書(shū)類(lèi)型


    點(diǎn)擊+號(hào)開(kāi)始
選擇
Development開(kāi)發(fā)證書(shū)
  1. iOS App Development
    不含推送服務(wù)的開(kāi)發(fā)證書(shū)鳞尔,該證書(shū)與App關(guān)聯(lián)(即創(chuàng)建時(shí)需要選擇App ID嬉橙,并僅供選擇的App開(kāi)發(fā)使用)。
    如果App不含推送服務(wù)寥假,創(chuàng)建改證書(shū)市框。
    如果App含推送服務(wù),可以不創(chuàng)建糕韧。
  2. Apple Push Notification service SSL (Sandbox)
    供關(guān)聯(lián)的App使用的枫振,含推送服務(wù)的開(kāi)發(fā)證書(shū)。
    如果App含推送服務(wù)萤彩,創(chuàng)建該證書(shū)粪滤,否則推送服務(wù)無(wú)法開(kāi)發(fā)測(cè)試。
Production發(fā)布證書(shū)
  1. App Store and Ad Hoc (限制創(chuàng)建兩個(gè))
    供所有app開(kāi)發(fā)使用雀扶,不和App關(guān)聯(lián)杖小。
    如果原來(lái)發(fā)布app,可以使用原來(lái)的發(fā)布證書(shū)愚墓。

  2. Apple Push Notification service SSL (Sandbox & Production)
    供關(guān)聯(lián)app product環(huán)境推送使用予权,先要安裝到電腦中,導(dǎo)出P12文件給后臺(tái)開(kāi)發(fā)人員使用浪册。

發(fā)布證書(shū)扫腺,有的稱(chēng)之為生產(chǎn)證書(shū),Production村象,個(gè)人習(xí)慣叫發(fā)布證書(shū)笆环,對(duì)應(yīng)develop 和 Release攒至。

簡(jiǎn)單總結(jié):

含推送App需要3個(gè)證書(shū)

含推送App需要3個(gè)證書(shū)

不含推送App需要2個(gè)證書(shū)
不含推送App需要2個(gè)證書(shū)

  • 選擇App


    選擇App
  • 創(chuàng)建證書(shū)請(qǐng)求文件


    創(chuàng)建csr

打開(kāi)Keychain,從證書(shū)頒發(fā)機(jī)構(gòu)請(qǐng)求證書(shū),很好理解躁劣,就是從蘋(píng)果那請(qǐng)求證書(shū)嗓袱。


keychain

我們選擇存到磁盤(pán)的方式,填寫(xiě)電子郵件


創(chuàng)建csr

選擇存儲(chǔ)位置习绢,修改名字,例如testapp.certSigningRequest


csr文件
  • 上傳csr文件
    回到網(wǎng)頁(yè)端蝙昙,contine后闪萄,會(huì)要求我上傳CSR文件。


    上傳CSR
  • 創(chuàng)建成功后奇颠,下載败去,雙擊安裝,然后在Keychain里就能看見(jiàn)了烈拒。如果可以展開(kāi)圆裕,含專(zhuān)用密匙,則正常荆几。


    創(chuàng)建成功

    keyChain

什么時(shí)候會(huì)出現(xiàn)不能展開(kāi)的情況呢吓妆?
當(dāng)我用A電腦生成csr,請(qǐng)求的證書(shū)吨铸,下載后行拢,直接安裝在B電腦上。就是不能展開(kāi)诞吱。那么怎么在B電腦上也能正常使用證書(shū)開(kāi)發(fā)舟奠?這個(gè)將在下面解答。

使用同樣的方法創(chuàng)建兩個(gè)發(fā)布證書(shū)房维,CSR文件可以用同一個(gè)沼瘫。

創(chuàng)建Provisioning Profile文件

Provisioning Profile是依賴(lài)證書(shū),App ID咙俩,注冊(cè)設(shè)備的配置文件耿戚,同樣有開(kāi)發(fā)和發(fā)布兩種。

Provisioning Profile下文將簡(jiǎn)稱(chēng)為Profile暴浦。

點(diǎn)擊+添加
  • 選擇類(lèi)型


    選擇類(lèi)型

已注冊(cè)設(shè)備將在下面介紹溅话。

  • 選擇App ID


    App ID
  • 選擇證書(shū)

  1. 如果為這個(gè)App創(chuàng)建了多個(gè)證書(shū),可能會(huì)有多個(gè)選擇歌焦》杉福可能只選擇其中一個(gè),多個(gè)独撇,或者全選屑墨。
  2. 如果名字都一樣躁锁,不知道是哪個(gè),全選是比較穩(wěn)的卵史。
  3. 選擇多個(gè)或者全選战转,有什么缺點(diǎn)呢?就是其中任意一個(gè)證書(shū)失效以躯,則這個(gè)Profile文件也就失效了槐秧。需要重新Generate。

重新Generate并不是重新創(chuàng)建忧设。這個(gè)也將在下文提到刁标。

證書(shū)
  • 選擇設(shè)備
    建議全部選上,這里選擇就是注冊(cè)設(shè)備址晕。


    選擇設(shè)備
  • 輸入profile的名字膀懈,例如testAppDev。
    這名字最好統(tǒng)一幾谨垃。因?yàn)橐恍o(wú)效的profile启搂,xcode并不會(huì)自動(dòng)清除苫耸,強(qiáng)迫癥患者會(huì)覺(jué)得不爽须板。


    profile的名字
  • 完成profile文件的創(chuàng)建。
    profile文件通常不會(huì)直接從網(wǎng)頁(yè)下載夏醉,而是在Xcode中下載匙隔。


    完成

發(fā)布的profile文件匈织,使用同樣的方式創(chuàng)建,不同的是牡直,沒(méi)有選擇設(shè)備這個(gè)步驟缀匕,畢竟發(fā)布是面向所有設(shè)備(App Store)的發(fā)布。
Ad Hoc發(fā)布方式碰逸,即面向已注冊(cè)設(shè)備的發(fā)布方式乡小。當(dāng)我們需要對(duì)所有已注冊(cè)設(shè)備發(fā)布Release包,適合使用這種發(fā)布方式饵史。這種也是需要選擇設(shè)備的满钟。
Ad Hoc發(fā)布方式可以通過(guò)fir.im蒲公英等第三方來(lái)發(fā)布,已注冊(cè)設(shè)備就能掃碼安裝了胳喷。

創(chuàng)建是注意有多個(gè)發(fā)布證書(shū)時(shí)湃番,注意選擇對(duì)應(yīng)你電腦上安裝的發(fā)布證書(shū),如下圖:


發(fā)布證書(shū)的選擇

細(xì)心的童鞋會(huì)發(fā)現(xiàn)這里怎么有3個(gè)吭露,不是限制兩個(gè)嗎吠撮?
恩,其中有個(gè)無(wú)效的讲竿。限制有效證書(shū)兩個(gè)泥兰,可能會(huì)產(chǎn)生無(wú)效的證書(shū)弄屡。

上文提到,App Store and Ad Hoc創(chuàng)建時(shí)是不和App關(guān)聯(lián)鞋诗。那它發(fā)布時(shí)是怎樣和我們開(kāi)發(fā)的App建立關(guān)系呢膀捷?
恩,就是靠這個(gè)profile文件削彬。

三種profile全庸,我們都創(chuàng)建,分別是testAppDev融痛,testAppDis糕篇, testAppAdHoc。
補(bǔ)充一句:profile文件貌似沒(méi)有限制個(gè)數(shù)酌心,但我們正式開(kāi)發(fā)的時(shí)候,還是建議不要太隨意挑豌。


Ad Hoc

我使用含推送功能的App為例安券,安裝好上面的3個(gè)證書(shū),創(chuàng)建好3個(gè)profile文件后氓英,我們進(jìn)入下一步侯勉。

Xcode配置

關(guān)閉Automatically manage signing
關(guān)閉自動(dòng)管理
下載profile文件
下載profile
選擇對(duì)應(yīng)的profile文件
選擇profile

如果Signing這塊沒(méi)有報(bào)錯(cuò),那么我們針對(duì)這臺(tái)電腦的配置完畢了铝阐。

添加新的注冊(cè)設(shè)備

新的iPhoneX或者是舊的iPhone4S址貌,如果沒(méi)有注冊(cè)過(guò),不能安裝我們測(cè)試的ipa徘键,也不能進(jìn)行真機(jī)調(diào)試练对,真機(jī)調(diào)試會(huì)出現(xiàn)下面錯(cuò)誤:

未注冊(cè)設(shè)備

如果有人對(duì)你喊,測(cè)試包安裝不了吹害,第一個(gè)先檢查設(shè)備注冊(cè)過(guò)沒(méi)有螟凭。

在關(guān)閉了Automatically manage signing后,需要我們手動(dòng)注冊(cè)它呀。

注意螺男,注冊(cè)設(shè)備的數(shù)量是有限的。

注冊(cè)設(shè)備
填寫(xiě)信息
Xcode中獲取UDID
itunes中獲取UDID

填入U(xiǎn)DID后纵穿,register下隧。


注冊(cè)

更新profile文件

注冊(cè)了設(shè)備,還要更新那些關(guān)聯(lián)了設(shè)備的profile文件谓媒,這樣profile文件才有效淆院。
回顧一下3個(gè)profile文件中哪些關(guān)聯(lián)了設(shè)備?

沒(méi)錯(cuò)句惯,testAppDev和testAppAdHoc迫筑。


編輯testAppDev

testAppDev

testAppAdHoc同樣的方式重新Generate后宪赶,錯(cuò)誤變成如下,直接點(diǎn)擊Update就OK了脯燃。


Update Profile

證書(shū)變動(dòng)搂妻,注冊(cè)設(shè)備的disable或者刪除,導(dǎo)致profile文件失效辕棚,都可以重新Generate一下來(lái)重新生效欲主。

推送證書(shū)的導(dǎo)出

在keychain中找到對(duì)應(yīng)的推送證書(shū),分別為開(kāi)發(fā)和發(fā)布(生產(chǎn))環(huán)境逝嚎。
右鍵導(dǎo)出p12文件扁瓢,會(huì)要求你輸入密碼,并把導(dǎo)出密碼兩個(gè)文件已經(jīng)交給后臺(tái)開(kāi)發(fā)人員即可补君。


推送證書(shū)

下一篇引几,Part2,將主要小結(jié)多臺(tái)mac的部署挽铁,App Group以及configuration相關(guān)的證書(shū)配置伟桅。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市叽掘,隨后出現(xiàn)的幾起案子楣铁,更是在濱河造成了極大的恐慌,老刑警劉巖更扁,帶你破解...
    沈念sama閱讀 211,290評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件盖腕,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡浓镜,警方通過(guò)查閱死者的電腦和手機(jī)溃列,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)膛薛,“玉大人哭廉,你說(shuō)我怎么就攤上這事∠嗳” “怎么了遵绰?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,872評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)增淹。 經(jīng)常有香客問(wèn)我椿访,道長(zhǎng),這世上最難降的妖魔是什么虑润? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,415評(píng)論 1 283
  • 正文 為了忘掉前任成玫,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘哭当。我一直安慰自己猪腕,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,453評(píng)論 6 385
  • 文/花漫 我一把揭開(kāi)白布钦勘。 她就那樣靜靜地躺著陋葡,像睡著了一般。 火紅的嫁衣襯著肌膚如雪彻采。 梳的紋絲不亂的頭發(fā)上腐缤,一...
    開(kāi)封第一講書(shū)人閱讀 49,784評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音肛响,去河邊找鬼岭粤。 笑死,一個(gè)胖子當(dāng)著我的面吹牛特笋,可吹牛的內(nèi)容都是我干的剃浇。 我是一名探鬼主播,決...
    沈念sama閱讀 38,927評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼猎物,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼虎囚!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起霸奕,我...
    開(kāi)封第一講書(shū)人閱讀 37,691評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎吉拳,沒(méi)想到半個(gè)月后质帅,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,137評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡留攒,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,472評(píng)論 2 326
  • 正文 我和宋清朗相戀三年煤惩,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片炼邀。...
    茶點(diǎn)故事閱讀 38,622評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡魄揉,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出拭宁,到底是詐尸還是另有隱情洛退,我是刑警寧澤,帶...
    沈念sama閱讀 34,289評(píng)論 4 329
  • 正文 年R本政府宣布杰标,位于F島的核電站兵怯,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏腔剂。R本人自食惡果不足惜媒区,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,887評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧袜漩,春花似錦绪爸、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,741評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至粘优,卻和暖如春仇味,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背雹顺。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工丹墨, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人嬉愧。 一個(gè)月前我還...
    沈念sama閱讀 46,316評(píng)論 2 360
  • 正文 我出身青樓贩挣,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親没酣。 傳聞我的和親對(duì)象是個(gè)殘疾皇子王财,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,490評(píng)論 2 348

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