集成iOS友盟消息推送主要分為兩步:1.iOS推送證書配置幕帆;2.U-PushSDK集成與配置菊卷。
寫在前面
1.假設(shè)你使用過Apple設(shè)備(iMac/iPad/iPhone)且注冊過Apple ID(Apple Account)痴突。? ? ? ?
2.假設(shè)你或你所在的開發(fā)組已加入蘋果開發(fā)者計劃(Enroll in iOS Developer Program to become amember)龄句,即已注冊開發(fā)者賬號(Apple Developer Account)笋籽。
3.若要真機(jī)調(diào)試實(shí)踐西设,你必須至少擁有一臺裝有Mac OS X/Xcode的Mac開發(fā)機(jī)(iMac or MacBook),其上自帶原生的Keychain Access炮叶。
一.iOS推送證書配置
作為一個小白碗旅,在配置ios推送證書之前我們需要知道渡处,證書是什么以及我們?yōu)槭裁匆渲茫?/p>
iOS證書是用來證明iOS App內(nèi)容(executable code)的合法性和完整性的數(shù)字證書。對于想安裝到真機(jī)或發(fā)布到AppStore的應(yīng)用程序(App)祟辟,只有經(jīng)過簽名驗(yàn)證(Signature Validated)才能確保來源可信医瘫,并且保證App內(nèi)容是完整、未經(jīng)篡改的旧困。
iOS證書分為兩類:Development和Production(Distribution)醇份。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
1)Developer Certification(開發(fā)證書)?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
安裝在電腦上提供權(quán)限:開發(fā)人員通過設(shè)備進(jìn)行真機(jī)測試『鹁撸可以生成副本供多臺電腦安裝僚纷;
2)Distribution Certification(發(fā)布證書)?
安裝在電腦上提供發(fā)布iOS程序的權(quán)限:開發(fā)人員可以制做測試版和發(fā)布版的程序。不可生成副本拗盒,僅有配置該證書的電腦才可使用怖竭。
Provisioning Profile(授權(quán)文件)
1)Developer Provisioning Profile(開發(fā)授權(quán)文件)
在裝有開發(fā)證書或副本的電腦上使用,開發(fā)人員選擇該授權(quán)文件通過電腦將程序安裝到授權(quán)文件記錄的設(shè)備中陡蝇,即可進(jìn)行真機(jī)測試痊臭。
注意:確保電腦有權(quán)限真機(jī)調(diào)試,即安裝了開發(fā)證書或副本登夫;在開發(fā)工具中程序的Bundle identifier和選中使用的授權(quán)文件的App Id要一致广匙;連接調(diào)試的設(shè)備的UDID在選中的授權(quán)文件中有記錄。
2)Distribution Provisioning Profile(發(fā)布授權(quán)文件)
在裝有發(fā)布證書的電腦上(即配置證書的電腦恼策,只有一臺)制做測試版和發(fā)布版的程序鸦致。發(fā)布版就是發(fā)布到App Store上的程序文件,開發(fā)者帳號創(chuàng)建授權(quán)文件時選擇store選項(xiàng)涣楷,選擇App Id分唾,無需選擇UDID;測試版就是在發(fā)布之前交給測試人員可同步到設(shè)備上的程序文件总棵,開發(fā)者帳號創(chuàng)建授權(quán)文件時選擇AdHoc鳍寂,選擇App Id和UDID;只有選中的UDID對應(yīng)的設(shè)備才可能安裝上通過該授權(quán)文件制做的程序情龄。
Keychain(開發(fā)秘鑰)?
安裝證書成功的情況下證書下都會生成Keychain迄汛,上面提到的證書副本(導(dǎo)出證書重新命名)就是通過配置證書的電腦導(dǎo)出Keychain(就是.p12文件)安裝到其他機(jī)子上,讓其他機(jī)子得到證書對應(yīng)的權(quán)限骤视。Developer Certification就可以制做副本Keychain分發(fā)到其他電腦上安裝鞍爱,使其可以進(jìn)行真機(jī)測試。注意:Distribution Certification只有配置證書的電腦才可使用专酗,因此即使導(dǎo)出導(dǎo)出Keychain安裝到其他電腦上睹逃,其他電腦也不可能具有證書的權(quán)限。
廢話不多說,開始走流程沉填。參考文檔:友盟iOS證書配置指南
說明:使用消息推送功能前疗隶,需要嚴(yán)格按照此文檔配置相關(guān)證書。否則將會影響消息推送組件的正常使用翼闹。
1.1 創(chuàng)建APP ID
登錄Apple Member Center :https://developer.apple.com/membercenter斑鼻,選擇certificates,identifiers&profiles選項(xiàng)猎荠,如下圖所示:
選擇identity中的APP IDs坚弱,如下圖所示:
注意:創(chuàng)建Explicit App ID時,要注意此時設(shè)置的Bundle ID要與APP中的的Bundle ID一致,如下圖所示:
選擇Push Notification來開通Push功能关摇,如下圖所示:
點(diǎn)擊下方的register按鈕荒叶,幾秒鐘之后下方會變成一個Done,表示APP ID已經(jīng)創(chuàng)建完成输虱,如下圖所示:
注意:創(chuàng)建的APP ID要與自己項(xiàng)目的Bundle ID保持一致些楣。如果已經(jīng)有APP ID,請確保自己的APP ID已經(jīng)開通了Push功能悼瓮,如果沒有開通戈毒,可以點(diǎn)擊APP ID,在其底部有一個Edit按鈕横堡,點(diǎn)擊后選中Push服務(wù)并創(chuàng)建,如下圖所示:
至此冠桃,APP ID創(chuàng)建完畢命贴。
1.2 創(chuàng)建并配置CSR文件
CSR是Cerificate Signing Request的英文縮寫,即證書請求文件食听。證書申請者在申請數(shù)字證書時由CSP(加密服務(wù)提供者)在生成私鑰的同時也生成證書請求文件胸蛛。證書申請者只要把CSR文件提交給證書頒發(fā)機(jī)構(gòu)后,證書頒發(fā)機(jī)構(gòu)使用其根證書私鑰簽名就生成了證書公鑰文件樱报,也就是頒發(fā)給用戶的證書葬项。
在你的Mac中找到鑰匙串——->鑰匙串訪問———>證書管理———>從證書頒發(fā)機(jī)構(gòu)請求證書,如下圖所示:
設(shè)置完證書信息后迹蛤,點(diǎn)擊“繼續(xù)”民珍,然后選擇存儲位置,點(diǎn)擊存儲盗飒,至此嚷量,CSR文件創(chuàng)建成功。
1.3 創(chuàng)建并配置開發(fā)調(diào)試證書
如果你已經(jīng)有開發(fā)調(diào)試證書逆趣,請繼續(xù)進(jìn)行下一步的設(shè)置蝶溶。
選擇Development(如果是發(fā)布上線,需要選擇Distribution)宣渗,如下圖所示:
接下來抖所,我們選擇iOS App Development證書梨州,如下圖所示:
在choose file…中選擇本地的CertificateSigningRequest(CSR)文件,然后點(diǎn)擊繼續(xù)田轧,如下圖所示:
點(diǎn)擊Download摊唇,將證書下載到本地,雙擊下載的開發(fā)調(diào)試證書(文件名為:iOS_development.cer)涯鲁,雙擊完會打開鑰匙串應(yīng)用程序巷查,就可以在鑰匙串訪問中的我的證書中找到。至此抹腿,開發(fā)調(diào)試證書設(shè)置完畢岛请。
1.4 添加測試設(shè)備
首先需要獲取需要測試設(shè)備的設(shè)備UDID:將測試設(shè)備連接iTunes即可查看UDID:
測試推送需要添加測試設(shè)備(就是存儲需要測試設(shè)備的名稱和設(shè)備UDID),添加方法如下所示:
1.5 創(chuàng)建并配置Provisioning Profiles
選擇Development警绩,創(chuàng)建開發(fā)環(huán)境的Provisioning Profiles(如果是發(fā)布上線崇败,需要選擇Distribution),如下圖所示:
創(chuàng)建新的Provisioning Profiles肩祥,并選擇之前生成好的App ID后室。如下圖所示:
選中證書:
選中測試設(shè)備:
把創(chuàng)建的Provisioning Profiles,調(diào)試證書,推送證書下載下來(文件名:umengpushtestdemo.mobileprovision)以后雙擊證書混狠。
創(chuàng)建并配置推送證書(開發(fā)環(huán)境&生產(chǎn)環(huán)境)
選擇Apple Push Notification service SSL(Sandbox)
注意:推送證書分為開發(fā)環(huán)境和生產(chǎn)環(huán)境岸霹,如果需要生成生產(chǎn)環(huán)境的推送證書請選擇:Apple Push Notification service SSL (Sandbox&Production),如下圖所示:
選中APP ID后将饺,點(diǎn)擊continue贡避,直到上傳CRS文件,如下圖所示:
點(diǎn)擊Download予弧,將證書下載到本地后刮吧,雙擊下載的開發(fā)環(huán)境推送證書(文件名為:aps_development.cer),就可以在鑰匙串訪問中的我的證書中找到掖蛤。
1.6 導(dǎo)出推送證書的P12文件
注意:在鑰匙串訪問(KeyChain)的我的證書中選擇剛剛導(dǎo)入的證書杀捻,選擇導(dǎo)出,注意不要選中私鑰蚓庭,并設(shè)置相應(yīng)密碼即可致讥。
注意:此步驟所設(shè)置的密碼將在之后在U-Push后臺上傳推送證書時所使用,且密碼只能包含大小寫(a-z,A-Z ),數(shù)字(0-9),特殊字符(.-_)彪置,其他元素將會被過濾拄踪。
生產(chǎn)環(huán)境的推送證書也是以同樣的方式導(dǎo)出。
至此拳魁,P12證書導(dǎo)出完畢惶桐。
1.7 在U-Push后臺上傳P12推送證書(U-Push后臺傳送門)
點(diǎn)擊右上角“新建應(yīng)用”:
然后以同樣的上述方式,配置成產(chǎn)的證書,并導(dǎo)出p12文件設(shè)置密碼姚糊,上傳到umeng官網(wǎng)后臺的生產(chǎn)證書項(xiàng)里贿衍。
二.U-PushSDK集成與配置
下面我們選用手動集成的方式進(jìn)行U-PushSDK的集成:
參考文檔:U-PushSDK友盟集成文檔
2.1 下載iOS端的SDK(由于本人目前的項(xiàng)目是基于Cordova的WebApp所以選擇下載PhoneGap版的SDK)
2.2 組件化基礎(chǔ)庫UMCommon集成
組件化基礎(chǔ)庫UMCommon集成,請查看文檔 組件化Common集成文檔
需要添加的依賴庫:
1.UMCommon.framework;(將下載的SDK解壓救恨,復(fù)制該組件庫到項(xiàng)目的相應(yīng)目錄中)
2.UMPush.framework;(將下載的SDK解壓贸辈,復(fù)制該組件庫到項(xiàng)目的相應(yīng)目錄中)
3.CoreTelephony.framework 獲取運(yùn)營商標(biāo)識;
4.libz.tbd? 數(shù)據(jù)壓縮肠槽;
5.libsqlite.tbd? 數(shù)據(jù)緩存擎淤;
6.SystemConfiguration.framework? 判斷網(wǎng)絡(luò)狀態(tài)
如果是基于cordova的webApp還需要添加橋接文件(XXXX.Module.h,XXXX.Module.m)
操作流程如下:
1.選擇SDK功能組件并下載,解壓.zip文件得到相應(yīng)組件包(例如:UMCommon.framework秸仙, UMPush.framework這來個庫必須添加進(jìn)來)嘴拢。
XcodeFile?—>?Add Files to "Your Project",在彈出Panel選中所下載組件包->Add寂纪。(注:選中“Copy items if needed”)
添加依賴庫,在項(xiàng)目設(shè)置target?-> 選項(xiàng)卡General?->Linked Frameworks and Libraries?如下以及效果:
如果是webapp還需要引入橋接文件
2.3 U-Push基礎(chǔ)功能
2.3.1 打開推送開關(guān)
2.3.2 打開后臺推送權(quán)限設(shè)置
接下來我們就需要進(jìn)行代碼的初始化了↓↓↓↓↓↓↓↓↓↓↓↓↓
進(jìn)入到AppDelegate.m
具體代碼:U-Push友盟集成文檔
運(yùn)行項(xiàng)目捞蛋,可以在控制臺中看到deviceToken孝冒,復(fù)制deviceToken,添加到U-Push后臺測試設(shè)備中
之后就可以發(fā)送推送測試消息了拟杉。
至此iOS集成友盟消息推送的過程大致實(shí)現(xiàn)庄涡,更多U-Push高級功能或疑問請參考友盟的U-Push集成文檔