詳解IOS開發(fā)中生成推送的pem文件
詳解IOS開發(fā)中生成推送的pem文件
具體步驟如下:
首先,需要一個(gè)pem的證書,該證書需要與開發(fā)時(shí)簽名用的一致。 具體生成pem證書方法如下:
1. 登錄到 iPhone Developer Connection Portal(http://developer.apple.com/iphone/manage/overview/index.action )并點(diǎn)擊 App IDs
2. 創(chuàng)建一個(gè)不使用通配符的 App ID 。通配符 ID 不能用于推送通知服務(wù)。例如, com.itotem.iphone
3. 點(diǎn)擊App ID旁的“Configure”,然后按下按鈕生產(chǎn) 推送通知許可證。根據(jù)“向?qū)А?的步驟生成一個(gè)簽名并上傳,最后下載生成的許可證。
4. 通過(guò)雙擊.cer文件將你的 aps_developer_identity.cer 引入Keychain中。
5. 在Mac上啟動(dòng) Keychain助手,然后在login keychain中選擇 Certificates分類。你將看到一個(gè)可擴(kuò)展選項(xiàng)“Apple Development Push Services”
6. 擴(kuò)展此選項(xiàng)然后右擊“Apple Development Push Services” > Export “Apple Development Push Services ID123”。保存為 apns-dev-cert.p12文件。
7. 擴(kuò)展“Apple Development Push Services” 對(duì)“Private Key”做同樣操作,保存為 apns-dev-key.p12 文件。
8. 需要通過(guò)終端命令將這些文件轉(zhuǎn)換為PEM格式:
openssl pkcs12 -clcerts -nokeys -out apns-dev-cert.pem -in apns-dev-cert.p12 openssl pkcs12 -nocerts -out apns-dev-key.pem -in apns-dev-key.p12
9. 如果你想要移除密碼,要么在導(dǎo)出/轉(zhuǎn)換時(shí)不要設(shè)定或者執(zhí)行:
openssl rsa -in apns-dev-key.pem -out apns-dev-key-noenc.pem
10. 最后,你需要將鍵和許可文件合成為apns-dev.pem文件,此文件在連接到APNS時(shí)需要使用:
cat apns-dev-cert.pem apns-dev-key-noenc.pem > apns-dev.pem
實(shí)現(xiàn)代碼:
<?php
$_POST['token'] = "fe28006a9d57b0727514cf42e9549446f0d4fc509cdexxxxxxxxxx";
$deviceToken = $_POST['token']; //取得設(shè)備的Token,獲取方法便見下文
$body = array("aps" => array("alert" => "message123gggg32323333", "badge" => 1, "sound"=>'default')); //推送方式,包括了提示內(nèi)容,提示方式和提示聲音。
$ctx = stream_context_create();
//如果在Windows的服務(wù)器上,尋找pem路徑會(huì)有問(wèn)題,路徑修改成這樣的方法:
$pem = !empty($this->cfg['isga']) && $this->cfg['isga'] == 2?'apns-dev.pem':'apns-dev.pem'; //臨時(shí)全部為開發(fā)狀態(tài)
stream_context_set_option($ctx, 'ssl', 'local_cert', "/data/web/cert/".$pem);
//linux 的服務(wù)器直接寫pem的路徑即可
stream_context_set_option($ctx, 'ssl', 'local_cert', <pre name="code" class="html">"/data/web/cert/".$pem);
<pre name="code" class="html"><pre name="code" class="html"> //如果你的pem存有密碼,需要加一個(gè)密碼登陸語(yǔ)句
stream_context_set_option($ctx, 'ssl', 'passphrase', '');
//如果你的pem存有密碼,需要加一個(gè)密碼登陸語(yǔ)句
//$pass = ”123123“;
//stream_context_set_option($ctx, ‘ssl', ‘passphrase', $pass);
//此處有兩個(gè)服務(wù)器需要選擇,如果是開發(fā)測(cè)試用,選擇第二名sandbox的服務(wù)器并使用Dev的pem證書,如果是正是發(fā)布,使用Product的pem并選用正式的服務(wù)器
$fp = stream_socket_client("ssl://gateway.push.apple.com:2195", $err, $errstr, 60, STREAM_CLIENT_CONNECT, $ctx);
$fp = stream_socket_client("ssl://gateway.sandbox.push.apple.com:2195", $err, $errstr, 60, STREAM_CLIENT_CONNECT, $ctx);
if (!$fp) {
print_r("Failed to connect $err $errstrn");
return;
}
print_r("Connection OK\n");
$payload = json_encode($body);
$msg = chr(0).pack("n", 32).pack('H*', str_replace(' ', '', $deviceToken)).pack("n",strlen($payload)).$payload;
print_r("sending message :".$payload."\n");
fwrite($fp, $msg);
fclose($fp);
以上就是IOS開發(fā)中生成推送的pem文件的實(shí)例詳解,如有疑問(wèn)請(qǐng)留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
相關(guān)文章
iOS實(shí)現(xiàn)動(dòng)態(tài)的開屏廣告示例代碼
啟動(dòng)圖是在iOS開發(fā)過(guò)程中必不可少的一個(gè)部分,很多app在啟動(dòng)圖之后會(huì)有一張自定義的開屏廣告圖,但是有的時(shí)候需要讓啟動(dòng)圖看起來(lái)就是一個(gè)廣告,而且還要這個(gè)廣告里面會(huì)動(dòng),iOS的啟動(dòng)圖只能是靜態(tài)的,而且固定,為了實(shí)現(xiàn)看起來(lái)的動(dòng)畫效果,只能進(jìn)行偽造了。下面來(lái)一起看看2016-09-09
解決iOS下無(wú)法觸發(fā)focus事件的問(wèn)題
今天小編就為大家分享一篇解決iOS下無(wú)法觸發(fā)focus事件的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-08-08
IOS 開發(fā)之UILabel 或者 UIButton加下劃線鏈接
這篇文章主要介紹了IOS 開發(fā)之UILabel 或者 UIButton加下劃線鏈接的相關(guān)資料,需要的朋友可以參考下2017-07-07
IOS開發(fā)之tableView點(diǎn)擊行跳轉(zhuǎn)并帶有“顯示”更多功能
這篇文章給大家介紹通過(guò)點(diǎn)擊城市中的tableView跳轉(zhuǎn)到旅游景點(diǎn)的tableView,下面會(huì)有“顯示”更多的功能,代碼簡(jiǎn)單易懂,對(duì)ios點(diǎn)擊tableview跳轉(zhuǎn)相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)吧2016-03-03
IOS-MVC層讀取服務(wù)器接口JSON數(shù)據(jù)
這篇文章主要為大家詳細(xì)介紹了IOS-MVC層讀取服務(wù)器接口JSON數(shù)據(jù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-12-12
詳細(xì)整理iOS中UITableView的性能優(yōu)化
最近在微博上看到一個(gè)很好的開源項(xiàng)目,是關(guān)于如何優(yōu)化UITableView的,加上正好最近也在優(yōu)化項(xiàng)目中的類似朋友圈功能這塊,思考了很多關(guān)于UITableView的優(yōu)化技巧,所以決定詳細(xì)的整理下對(duì)優(yōu)化UITableView的理解,需要的朋友們可以參考借鑒。2017-03-03

