關於蘋果APNS推送機制中各組建檔案(CSR、認證、Provisioning檔案)的關係的梳理,以及各種坑

來源:互聯網
上載者:User

標籤:ios apns 推送 php

1.前言

iOS採用APNS做推送,流程附一張圖吧,不多說



2.正題

這兩天重新搞了幾天的推送,有些坑想給大家指出來,少走彎路。

那我想要說的是流程中需要用的各種檔案,為諸位做一個梳理,理解不到之處,敬請批評指正!

註:以Development為例,Distribution照搬即可。同樣我們實現的網上常見的用php實現的推送伺服器。

2.1 所需檔案

首先是我們最終需要產生如所示的檔案夾中的檔案:

其中各個檔案的關係:


2.2 產生各個檔案時中的彎彎

1、產生Certificate Signing Request (CSR):

正常情況下,產生CSR檔案如所示:


而正確產生CSR之後,會在密鑰一項出現對應的密鑰,


注意:下面這種情況會導致認證有問題!


2、產生PushZYQ.mobileprovision檔案

產生PushZYQ.mobileprovision需要選擇對應的認證,注意此處需要選擇的認證是ios_development.cer對應的認證而不是SSL認證

3、產生PushZYQ.p12檔案


4、各種命令

三步產生ck.pem檔案

4.1、

openssl x509 -in aps_development.cer -inform der -out PushZYQCert.pem

4.2、

 openssl pkcs12 -nocerts -out PushZYQKey.pem -in PushZYQ.p12

4.3、

cat PushZYQCert.pem PushZYQKey.pem > ck.pem

5、關於接收推送

預設推送提示是在程式退出後才會出現的,所以如果當前程式正在運行,只能通過回調方法來判斷,如果你想聯調的話。

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo{    // 處理推送訊息    NSLog(@"userinfo:%@",userInfo);        NSLog(@"收到推送訊息:%@",[[userInfo objectForKey:@"aps"] objectForKey:@"alert"]);}

3.所需檔案

3.1、PHP實現的服務端,由於不能插入超連結,所以大家可輸入圖中URL


3.2、簡易Demo

這個Demo中沒有圖示,大家可以通過控制台來查看,適配iOS8.0+。


4.正常情況下



關於蘋果APNS推送機制中各組建檔案(CSR、認證、Provisioning檔案)的關係的梳理,以及各種坑

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.