iOS推播通知憑證申請流程

Collyn Chen
6 min readApr 20, 2017

--

Step1.進入Apple開發者帳號https://developer.apple.com/account/ ,並選擇Certificates, Identifiers & Profiles。

※Certificate的Type有分為 iOS Development跟iOS Distribution兩種。

註:每個憑證的有效期限都只有一年,所以每一年都要重新申請哦!!

Step2.至Identifiers裡申請App IDs

※由於很多功能不能接受存有萬用字元的App ID,如推播功能,所以這邊是選擇Explicit App ID固定字元,並將BundleID取名為:com.domainname.appname

※App Services內有很多Apple提供的服務,在這邊我們必須要勾選Push Notifications。

※如果有服務一開始沒有勾選,之後也可以再來編輯修改,不過provisioning profiles可能需要重新申請,比較麻煩。

※勾選完後就按下Continue按鈕。

※目前Push Notfications 的狀態是Configurable(可設定的),接著按下Register按鈕。

※此時AppID已經被註冊完成了,再接著按下Done按鈕即可。

※接著畫面會回到一開始的App ID清單中。

Step3.至Devices內新增裝置的UDID。

※由於推播功能只能在實體機上測試,不能透過模擬器測試,所以必須要註冊Devices。

Step4.申請Provisioning Profiles

Certificate 是綁帳號,Provisioning Profiles是綁App ID,所以如果有很多app在開發,就會有很多組Provisioning Profiles。

接著,系統會要求選擇那些Certificate要支援這個app開發,如果同時有多人開發同一個app,就得把所人的certificate勾選起來。

接著,在選擇那些機子要支援這個app的開發。

在這邊輸入Profile Name,並按下Continue按鈕。

再按下Download,匯入Xcode內。

STEP5.回到 App ID。

※Push Notifications的狀態仍為Configurable可設定的,所以要按下Edit來作設定。

進入編輯畫面中,可以看到Push Notification又分為 Development SSL Certificate 和 Production SSL Certificate兩個。

※由於APPLE不會隨意放任任何server與APNS溝通,所以還規定如果server想要與APNS溝通,就必須要附上APNS發行的certificate,APNS才願意與Server溝通。按下Create Certificate 按鈕,就來到以下的畫面:

開啟鑰匙圈存取,並到鑰匙圈存取\憑證輔助程式\從憑證授權要求憑證…,

certSigningRequest就是所謂的CSR檔案。

產出CSR後,下一步APPLE會要求上傳CSR檔案,選完檔案後按下Generate按鈕。

上傳之後,APPLE會提供一個certificate下載,就需要把它下載下來保存在電腦裡。

Step6.將.cer轉換為.p12格式

  1. 雙擊.cer檔案,將.cer檔案匯入【鑰匙圈存取】。
  2. 匯入之後檔案會出現在登入/憑證裡面

※如果是在其他類別的話,可以先切換到憑證/我的憑證類別,以避免混亂。

由圖得知,這剛剛創建的csr也會附在憑證上,且兩個必須要一起搭配使用,缺一不可

這是蘋果鑰匙圈存取的預設功能,當我們要產生一個輸出的憑證時,就必須要給予一個密碼保護這個被輸出的憑證檔。

首次輸出會有一個視窗,是否信任鑰匙圈存等相關訊息.

Step7.將.pem轉為.p12格式

  1. 開啟mac的終端機terminal.app,並切換目錄至檔案目錄所在地
  2. 確認該路徑底下是否存有該檔案

Ls –al filename

3. 輸入以下命令,使.p12檔轉換為.pem格式

openssl pkcs12 -in sunbow.p12 -out sunbow.pem -nodes

產生出來的.pem才是真正可以使用在server上的憑證。

--

--