幾經(jīng)折騰,終于上傳成功,記錄下過(guò)程送給同為菜鳥的你,如果里面有很菜的東西,大牛請(qǐng)自動(dòng)忽略,畢竟這也是還為菜鳥的我的備忘錄呢!
網(wǎng)上查看了很多教程,但是因?yàn)閍ppale更新太快,很多教程雖然是不久前才發(fā)的,但是跟我操作時(shí)的流程又發(fā)生了變化。雖然根據(jù)已有教程還是摸索著完成了,但還是記錄下我的操作流程,以幫助跟多的人。
本文章主要參考了以下兩位老師的文章:
[if !supportLists]1.?[endif]http://www.itdecent.cn/p/72ec3c1c4c2d?tdsourcetag=s_pcqq_aiomsg
[if !supportLists]2.?[endif]https://www.cnblogs.com/weihengblogs/p/6425222.html
首先得描述一下各個(gè)證書的定位,作用,這樣在制作的時(shí)候心中有譜,對(duì)整個(gè)流程的把握也會(huì)準(zhǔn)確一些;
????? 1、開(kāi)發(fā)者證書(分為開(kāi)發(fā)和發(fā)布兩種,類型為ios Development,ios Distribution),這個(gè)是最基礎(chǔ)的,不論是真機(jī)調(diào)試,還是上傳到appstore都是需要的,是一個(gè)基證書,用來(lái)證明自己開(kāi)發(fā)者身份的;
????? 2、appID,這是每一個(gè)應(yīng)用的獨(dú)立標(biāo)識(shí),在設(shè)置項(xiàng)中可以配置該應(yīng)用的權(quán)限,比如是否用到了PassBook,GameCenter,以及更常見(jiàn)的push服務(wù),如果選中了push服務(wù),那么就可以創(chuàng)建生成下面第3條所提到的推送證書,所以,在所有和推送相關(guān)的配置中,首先要做的就是先開(kāi)通支持推送服務(wù)的appID;
????? 3、推送證書(分為開(kāi)發(fā)和發(fā)布兩種,類型分別為APNs Development ios,APNs Distribution ios),該證書在appID配置中創(chuàng)建生成,和開(kāi)發(fā)者證書一樣,安裝到開(kāi)發(fā)電腦上;
???? 4、Provisioning Profiles,這個(gè)東西是很有蘋果特色的一個(gè)東西,我一般稱之為PP文件,該文件將appID,開(kāi)發(fā)者證書,硬件Device綁定到一塊兒,在開(kāi)發(fā)者中心配置好后可以添加到Xcode上,也可以直接在Xcode上連接開(kāi)發(fā)者中心生成,真機(jī)調(diào)試時(shí)需要在PP文件中添加真機(jī)的udid;是真機(jī)調(diào)試和必架必備之珍品;
[if !supportLists]一.?[endif]準(zhǔn)備工作
一個(gè)已付費(fèi)的開(kāi)發(fā)者賬號(hào)(賬號(hào)類型分為個(gè)人(Individual)、公司(Company)、企業(yè)(Enterprise)、高校(University)四種類型,每年資費(fèi)分別為$99、$99、$299、免費(fèi)。)。
一個(gè)已經(jīng)開(kāi)發(fā)完成的項(xiàng)目。
檢查:
你的Xcode必須是正式版的,beta版本的Xcode是不能上傳項(xiàng)目的。
上傳使用的Mac的OS X系統(tǒng)必須也是正式版的,beta版本也不行。
請(qǐng)確認(rèn)你安裝的Xcode是從App Store或者是開(kāi)發(fā)者網(wǎng)站下載的,而不是從其它渠道獲取的安裝包安裝的,因?yàn)榉枪俜酵緩较螺d的Xcode可能帶有XcodeGhost 病毒。如何檢查?

檢查方法
[if !supportLists]二.?[endif]創(chuàng)建CSR文件
申請(qǐng)證書的時(shí)候會(huì)用到CSR文件,將本機(jī)和證書綁定。
在Launchpad的其他里面,點(diǎn)擊鑰匙串訪問(wèn)彈出如下界面

其他

鑰匙串訪問(wèn)
工具欄選擇鑰匙串訪問(wèn)->證書助理->從證書頒發(fā)機(jī)構(gòu)請(qǐng)求證書...

請(qǐng)求證書

證書信息
將CSR文件保存到MAC磁盤的某個(gè)位置(這里我選擇的是桌面,進(jìn)行存儲(chǔ))

存儲(chǔ)證書

點(diǎn)擊完成

CertificateSigningRequest.certSigningRequest文件
[if !supportLists]三.?[endif]申請(qǐng)開(kāi)發(fā)者證書
打開(kāi)蘋果開(kāi)發(fā)者中心:https://developer.apple.com,點(diǎn)擊:Account

下面輸入已付款過(guò)的Apple賬號(hào)和密碼登錄(如果你的電腦已經(jīng)保存了密碼,會(huì)直接進(jìn)入)
點(diǎn)擊:Certificates,Identifiers & Profiles(專門生成證書,綁定Bundle Id,綁定device設(shè)備,生成描述文件的地方)

點(diǎn)擊“+”創(chuàng)建新的證書

由于是做App上傳,選擇生產(chǎn)證書(App Store and Ad Hoc)

然后choose File 選擇第二步中生成的CSR文件

下載證書到電腦

雙擊下載好的.cer證書,便會(huì)自動(dòng)添加到鑰匙串的證書當(dāng)中

點(diǎn)擊Identifiers,然后點(diǎn)擊“+”號(hào),生成一個(gè)新的APP ID .

選擇App IDs

填寫:
[if !supportLists]1.?[endif]APP ID 可以隨便輸入,一般輸入你的工程名,建議加上日期方便記憶。但是不能有中文
[if !supportLists]2.?[endif]Bundle ID 一般格式是com.codery.YourProjectName. ??打包工程時(shí)的Bundle Identifier 和這里的Bundle ID 兩處需要一樣。
這個(gè)相當(dāng)于是APP的識(shí)別碼,用于標(biāo)識(shí)一個(gè)APP。兩處不同則會(huì)被判定為你上傳的APP和注冊(cè)申請(qǐng)的APP不是同一個(gè)

如果是申請(qǐng)開(kāi)發(fā)證書,并且還需要真機(jī)調(diào)試。則還需要注冊(cè)Devices,這里發(fā)布APP就直接跳過(guò)了。
又叫描述文件,用于把證書和Bundle Identifier關(guān)聯(lián)起來(lái)

因?yàn)槭前l(fā)布,所以選擇下面App Store這個(gè)描述文件,點(diǎn)擊Continue

APP ID 選擇剛注冊(cè)的那個(gè)APP ID

選擇第三步中申請(qǐng)到的證書,下一步

給描述文件起名字

下載

下載好后雙擊下載下來(lái)的文件。(不知道有什么用,有說(shuō)是雙擊后會(huì)自動(dòng)添加到電腦里)

[if !supportLists]六、[endif]在App Store開(kāi)辟空間
參考:http://www.itdecent.cn/p/72ec3c1c4c2d?tdsourcetag=s_pcqq_aiomsg
[if !supportLists]七、[endif]在Xcode中打包上傳工程
在Xcode中選擇iOS Device(這里不能選擇模擬器),按照下圖提示操作

選擇iOS Device



注意:如果這里沒(méi)有黃色嘆號(hào),代表你的配置沒(méi)問(wèn)題,如果有,那就是證書和描述文件不匹配,或者描述文件里剛才選的Bundle和現(xiàn)在的工程的Bundle Identifier不一致,去https://develop.apple.com上找到你的描述文件在確認(rèn)下綁定的Bundle Identifier和你工程是不是一樣的?
將斷點(diǎn)、全局?jǐn)帱c(diǎn),僵尸模式等都要去掉。

開(kāi)始生成打包上傳(之前先確定代碼能編譯通過(guò)不報(bào)錯(cuò))


列表中各個(gè)項(xiàng)目挨著點(diǎn)一下,確保都是release模式

選擇Xcode下Product下Archive(專門用于傳項(xiàng)目,或者打包項(xiàng)目)

點(diǎn)擊archive后等待編譯完成,編譯好后會(huì)自動(dòng)彈出如下界面,點(diǎn)擊紅框按鈕開(kāi)始發(fā)布APP。





生成好用于發(fā)布的文件后,直接上傳。

上傳這一步可能會(huì)卡很久,看很多網(wǎng)友都反應(yīng)等待了非常久。我一個(gè)朋友最長(zhǎng)的時(shí)候等過(guò)1天才上傳上去。我這次上傳也卡了一天沒(méi)反應(yīng),第二天到公司重啟電腦,再次上傳,2分鐘搞定。
上傳成功后會(huì)有提示,之后就可以在ITunes Connect(https://appstoreconnect.apple.com)中進(jìn)行管理了。
如果嫌直接用xcode上傳太慢,也可以用Application Loader進(jìn)行上傳,具體方法請(qǐng)參考:http://www.itdecent.cn/p/72ec3c1c4c2d?tdsourcetag=s_pcqq_aiomsg