iOS集成友盟消息推送

集成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 Centerhttps://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文件

CSRCerificate 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”)

UMCommon.framework席吴, UMPush.framework這來個庫必須添加進(jìn)來

添加依賴庫,在項(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集成文檔

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市捣域,隨后出現(xiàn)的幾起案子啼染,更是在濱河造成了極大的恐慌,老刑警劉巖焕梅,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異卦洽,居然都是意外死亡贞言,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進(jìn)店門阀蒂,熙熙樓的掌柜王于貴愁眉苦臉地迎上來该窗,“玉大人,你說我怎么就攤上這事蚤霞⌒锸В” “怎么了?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵昧绣,是天一觀的道長规肴。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么拖刃? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任删壮,我火速辦了婚禮,結(jié)果婚禮上兑牡,老公的妹妹穿的比我還像新娘央碟。我一直安慰自己,他們只是感情好均函,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布亿虽。 她就那樣靜靜地躺著,像睡著了一般苞也。 火紅的嫁衣襯著肌膚如雪洛勉。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天墩朦,我揣著相機(jī)與錄音坯认,去河邊找鬼。 笑死氓涣,一個胖子當(dāng)著我的面吹牛牛哺,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播劳吠,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼引润,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了痒玩?” 一聲冷哼從身側(cè)響起淳附,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蠢古,沒想到半個月后奴曙,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡草讶,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年洽糟,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片堕战。...
    茶點(diǎn)故事閱讀 39,834評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡坤溃,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出嘱丢,到底是詐尸還是另有隱情薪介,我是刑警寧澤,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布越驻,位于F島的核電站汁政,受9級特大地震影響道偷,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜烂完,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一试疙、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧抠蚣,春花似錦祝旷、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至柄冲,卻和暖如春吻谋,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背现横。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工漓拾, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人戒祠。 一個月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓骇两,卻偏偏與公主長得像,于是被迫代替她去往敵國和親姜盈。 傳聞我的和親對象是個殘疾皇子低千,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評論 2 354

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