iOS集成友盟消息推送

集成iOS友盟消息推送主要分為兩步:1.iOS推送證書配置;2.U-PushSDK集成與配置。

寫在前面

1.假設(shè)你使用過Apple設(shè)備(iMac/iPad/iPhone)且注冊過Apple ID(Apple Account)。? ? ? ?

2.假設(shè)你或你所在的開發(fā)組已加入蘋果開發(fā)者計(jì)劃(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推送證書配置

作為一個(gè)小白,在配置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)文件時(shí)選擇store選項(xiàng),選擇App Id,無需選擇UDID;測試版就是在發(fā)布之前交給測試人員可同步到設(shè)備上的程序文件,開發(fā)者帳號創(chuàng)建授權(quán)文件時(shí)選擇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í),要注意此時(shí)設(shè)置的Bundle ID要與APP中的的Bundle ID一致,如下圖所示:


選擇Push Notification來開通Push功能,如下圖所示:


點(diǎn)擊下方的register按鈕,幾秒鐘之后下方會變成一個(gè)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,在其底部有一個(gè)Edit按鈕,點(diǎn)擊后選中Push服務(wù)并創(chuàng)建,如下圖所示:

至此,APP ID創(chuàng)建完畢

1.2 創(chuàng)建并配置CSR文件

CSRCerificate Signing Request的英文縮寫,即證書請求文件。證書申請者在申請數(shù)字證書時(shí)由CSP(加密服務(wù)提供者)在生成私鑰的同時(shí)也生成證書請求文件。證書申請者只要把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后臺上傳推送證書時(shí)所使用,且密碼只能包含大小寫(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集成與配置

下面我們選用手動(dòng)集成的方式進(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這來個(gè)庫必須添加進(jìn)來)。

XcodeFile?—>?Add Files to "Your Project",在彈出Panel選中所下載組件包->Add。(注:選中“Copy items if needed”)

UMCommon.framework, UMPush.framework這來個(gè)庫必須添加進(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)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容