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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值