iOS開發之實現App消息推送

本文將帶你們作一個簡單的IOSApp消息推送教程,包括XCode6, IOS8, 以及蘋果開發者中心最新如何註冊應用,申請證書以及下載配置概要文件,相信不少剛開始接觸ios的人會很想了解一下。(ps:網上看了一下雖然有不少講述推送的好教程,我也是看着一步步學會的,可是這些教程的時間都是去年或者更早時期的,對引導新手來講不是很合適) ios

第一部分 安全

首先第一步固然是介紹一下蘋果的推送機制(APNS)咯(ps:其實每一篇教程都有),先來看一張蘋果官方對其推送作出解釋的概要圖。 服務器

Provider是給你手機應用發出推送消息的服務器,而APNS(Apple Push Notification Service)則是蘋果消息推送服務器。你本地的服務器當須要給應用推送一條消息的時候,先要將消息發出到蘋果推送服務器,而後再由蘋果推送服務器將消息發到安裝了該應用的手機。 app

接下來再看一張解釋圖: iphone

解釋圖

根據上圖的邏輯我來給你們解釋一下: ide

1.你的IOS應用須要去註冊APNS消息推送功能。 測試

2.當蘋果APNS推送服收到來自你應用的註冊消息就會返回一串device token給你(很重要) .net

3.將應用收到的device Token傳給你本地的Push服務器。 調試

4.當你須要爲應用推送消息的時候,你本地的推送服務器會將消息,以及Device Token打包發送到蘋果的APNS服 code

5.APNS再將消息推送給目的iphone 

第二部分 

1.從證書頒發機構頒發證書 

打開你mac的鑰匙串訪問: 而後點擊鑰匙串訪問 

隨後它會彈出一個窗口  

窗口

用戶電子郵件信息 

就填寫你蘋果開發者帳號的名稱便可(應該是一個郵件名稱),點擊保存到磁盤的選項,點擊繼續,顯示以下 

點擊存儲,文件名爲:CertificateSigningRequest.certSigningRequest 隨後將他放在一個文件夾中咱們取名push吧! 

第三部分 

訪問蘋果開發者網址:https://developer.apple.com/ 

蘋果

選中MemberCenter選項,進入登錄頁面,用你的蘋果開發者帳號登錄,過一會網頁就會自動跳轉到下圖。 

點擊紅色所選部分 

內容進行下一步的操做。 

進行下一步的操做

選擇Certificates選項,設置證書,如圖所示先解釋一下 

Certificates選項,設置證書   

Development選項的做用顧名思義就是用來做爲開發使用的證書,Production選項則是用來發布產品使用的,名稱很陌生是否是,以前的開發者網頁是沒有這一選項的,多是蘋果把他修改了,用這個名稱更加能讓人理解吧(字面上解釋就是產品麼)。兩個選項生成證書的步驟是同樣的,如今咱們使用開發者的選項進行證書的製做,步驟以下: 

選擇Development選項 

選擇Development選項

點擊上面的加號選項 

選擇APNS選項(開發麼固然是在沙盒環境下了,模擬真實狀況),而後Continue 

這個AppID咱們在下一部分講如何生成,如今我用的是已經生成好的一個應用ID,繼續Continue 

這邊就要選擇在鑰匙串訪問環節下載下來的CertificateSigningRequest.certSigningRequest文件了,選擇並生成 

點擊下載,獲得aps_development .cer,保存到push文件中去。 

第四部分 

新建一個AppID,選擇網頁上的AppIDs,而後點擊右上角的 「加號」 

App的取名只要按照蘋果要求的就能夠了 

而後BundleID是比較重要的,在提交審覈以及測試(蘋果的TestFlight)和付費環節都須要用到,也只需按照蘋果要求來寫就行了。 

接下來就是對你的應用須要使用蘋果的哪些服務進行選擇就好了,例如廣告,遊戲中心,推送,付費等等狀況。 

最後選擇「Submit」選項,在下一個界面中選擇「done」選項,這樣咱們設置AppID的步驟咱們就完成了。 

第五部分:生成Provisioning Profiles 

這個配置概要文件分爲兩種,一種是爲開發使用的,還有一種則是爲發佈到appStore上面。 

建立發佈版的ProvisioningProfile與開發版的流程相同,點擊Development而後點擊右上角的加號 

點擊Development而後點擊右上角的加號

會進入選擇何種配置概要文件的界面 

會進入選擇何種配置概要文件的界面

咱們如今時測試,因此選擇「IOS App Development」的選項,在下面的Distribution發佈選項中有兩個選擇,「App Store」以及「Ad hoc」,你能夠根據下面的描述 

選擇你發佈所需的選項。點擊Continue進入下一步。 

點擊Continue進入下一步

選擇你上一步建立的AppID,點擊Continue 進行下一步 

點擊Continue 進行下一步

選擇你的開發者帳號,Continue進行下一步 

Continue進行下一步

在這一步上選擇你的設備(你只有在這一步上勾選了你的設備,你才能在設備上用這個簽名進行調試)。關於如何將你的設備號添加進去也是很是簡單的,選擇左側的"Devices",而後點擊右上角的加號,在隨後出來的頁面上添加你設備的UUID(在XCode中能夠查看到)以及name( 能夠隨便取,本身看的懂就行) 

而後Register一下,照着流程走到最後一步就完成了。 

好,我們繼續回到上面的Provisioning Profile配置環節,當你選好了你的設備後點擊「Continue」進入下一頁 

Continue

輸入一個文件名(最好是起的能看懂是幹嗎的,固然也能夠隨便起),點擊「Generate」進入下一個頁面,在這個頁面中就會有一個下載按鈕讓你下載這個文件, 

咱們把它下載下來放在Push文件夾中。 

第六部分 

好了,前期的準備工做都已經作完了,如今讓咱們開始推送吧!(吼吼) 

首先雙擊咱們生成的 「aps_development .cer」 文件,進入鑰匙串訪問,找到咱們的專用祕鑰(根據在第二部分中從證書機構頒發證書操做中填寫的經常使用名) 

證書

我在第二部分填寫的是「silicon」,因爲換了一臺mac以前安裝的沒有了,以前沒有截圖,因此隨便找了個圖給你們看一下,憑你們的聰明才智應該不難理解吧。 

而後右擊導出,會彈出以下所示的圖。 

證書

將他存儲到push文件夾中,命名爲「push.p12」,在這一步中導出會讓你輸入密碼並驗證,你能夠自定義一個密碼,例如abc123。 

密碼

如今push文件夾中應該有幾個文件「aps_development .cer」 ,"push.p12",「CertificateSigningRequest.certSigningRequest」以及剛纔下下來的配置概要文件。 

接下來咱們打開終端將他們生成.pem文件 

1.把aps_development .cer文件生成.pcm文件,cd到push文件夾下 

.pem文件

2.把push.p12文件生成爲.pem文件 

.pem文件

上邊輸入的密碼則是你導出證書所設的密碼,即abc123.接着還會讓你輸入.pem文件的密碼,仍是使用abc123好了,防止混淆。 

這樣咱們在push文件夾中就又獲得了兩個文件,PushChatCert.pem和PushChatKey.pem。 

3.把PushChatCert.pem和PushChatKey.pem合併爲一個pem文件, 

.pem文件

在push文件夾中又多了一個ck.pem文件,以上咱們把須要使用的文件都準備好了 

接下來就要測試一下啦,是否是很激動~ 

爲了測試證書工做的情況,咱們可使用「telnet gateway.sandbox.push.apple.com 2195」來檢測一下,若是顯示 

證書

則表示成功了。 

而後,咱們使用咱們生成的證書和私鑰來設置一個安全的連接去連接蘋果服務器 

在終端輸入以下命令:openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert PushChatCert.pem -key PushChatKey.pem 

須要輸入密碼(abc123 咱們剛纔所設置的)。 

而後他會返回一系列的數據,這裏我就粘貼一部分啦: 

CONNECTED(00000003) 

depth=1 /C=US/O=Entrust, Inc./OU=www.entrust.net/rpa is incorporated by reference/OU=(c) 2009 Entrust, Inc./CN=Entrust Certification Authority - L1C 

verify error:num=20:unable to get local issuer certificate 

verify return:0 

--- 

Certificate chain 

。。。。。(省略) 

Start Time: 1416389389 

Timeout   : 300 (sec) 

Verify return code: 0 (ok) 

--- 

測試就到這裏啦。

相關文章
相關標籤/搜索