我是靠谱客的博主 超帅大树,最近开发中收集的这篇文章主要介绍iOS远程推送测试iOS远程推送测试,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

iOS远程推送测试

怎么去配置远程推送证书,这里就不再重复了,大家可以看看本文后面的链接。本文重点是描述测试,包括开发测试以及发布测试。

一、开发测试
这里需要用到终端,建议将aps_development.cer、pushMe.php、Push.p12放到一个文件夹中,假设名字是iOSDevelop,同时用cd命令到这个iOSDevelop文件夹中。用到的命令如下:
1,openssl x509 -in aps_development.cer -inform der -out PushChatCert.pem
2,openssl pkcs12 -nocerts -out PushChatKey.pem -in Push.p12
3,cat PushChatCert.pem PushChatKey.pem > ck.pem

总共有3个,这里就不解释了,大家可以看本文后面的链接教程。
上面3个语句执行完成后,接下来可以执行
php pushMe.php
这里用的是php的推送测试,pushMe.php的内容如下:

<?php
// Put your device token here (without spaces):
$deviceToken = '你的设备的device token,注意不是UDID';
// Put your private key's passphrase here:密语
$passphrase = '123456';
// Put your alert message here:
$message = '测试推送n消息,这里是可以用n换行的';

$ctx = stream_context_create();
stream_context_set_option($ctx, 'ssl', 'local_cert', 'ck.pem');
stream_context_set_option($ctx, 'ssl', 'passphrase', $passphrase);
// Open a connection to the APNS server
$fp = stream_socket_client(
'ssl://gateway.sandbox.push.apple.com:2195', $err,
$errstr, 60, STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT, $ctx);
if (!$fp)
exit("Failed to connect: $err $errstr" . PHP_EOL);
echo 'Connected to APNS' . PHP_EOL;
// Create the payload body
$body['aps'] = array(
'alert' => $message,
'sound' => 'default'
);
// Encode the payload as JSON
$payload = json_encode($body);
// Build the binary notification
$msg = chr(0) . pack('n', 32) . pack('H*', $deviceToken) . pack('n', strlen($payload)) . $payload;
// Send it to the server
$result = fwrite($fp, $msg, strlen($msg));
if (!$result)
echo 'Message not delivered' . PHP_EOL;
else
echo 'Message successfully delivered' . PHP_EOL;
// Close the connection to the server
fclose($fp);
?>

执行完成php pushMe.php后,终端会显示如下信息:
Connected to APNS
Message successfully delivered
稍后你的设备就会收到你发送的推送消息。

二、发布测试
由于苹果的审核周期很长,不能每次都用加急审核,所以最好在提交前做一次测试,看看服务器的推送是否正确。发布测试也类似于开发测试,也是要用到那3个语句。

1,openssl x509 -in aps_production.cer -inform der -out PushChatCert.pem
2,openssl pkcs12 -nocerts -out PushChatKey.pem -in Push.p12
3,cat PushChatCert.pem PushChatKey.pem > ck.pem

开发的时候一般我们都是用Xcode直接灌到设备里,这个时候development证书是可以推送成功的。 但是production证书却推送不了,不过苹果给我们提供了Ad Hoc测试方式,它使用的是发布证书。如果你不知道Ad Hoc模式可以搜一下,很简单的,这里有一个关键的地方,development和production得到的Token的不一样的,使用Ad Hoc方式装到设备上得到的就是production Token 所以你在用Ad Hoc方式。测试的要使用production Token,如果使用Ad Hoc方式测试没问题,这个发布也就没问题了。

最后执行php pushMe.php,就可以了。

参考链接:
http://blog.csdn.net/xueer8835/article/details/9121799
http://www.360doc.com/content/15/0118/17/1073512_441822850.shtml
http://blog.csdn.net/shenjie12345678/article/details/41120637

最后

以上就是超帅大树为你收集整理的iOS远程推送测试iOS远程推送测试的全部内容,希望文章能够帮你解决iOS远程推送测试iOS远程推送测试所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(64)

评论列表共有 0 条评论

立即
投稿
返回
顶部