Xcode 5 中的推送做法

来源:互联网 发布:如何学好高中数学知乎 编辑:程序博客网 时间:2024/05/16 11:25

第一步:首先你要有个开发者账号;进入https://developer.apple.com官网,进入自己的MemberCenter ;

1>点击APP IDs 进入后点右上角的“+”创建一个自己的Id(这个Id的Bundle identifier名字一定要和自己的项目名Bundle identifier保持一致格式最好是“com.xxx.Name”)点击进去后勾选自己所需的功能 Push Notifications,最后点击Continue,最后确认done 完成;

2>再次点击1中创好的ID 点击“Edit”  进去后在 Push Notifications 栏目下选择自己要创建的推送通知证书的类型,开发或发布。点击Production SSL Certificate 里的Create Certificate... 选择下面已经请求好的证书。一步一步点击确认按钮直到出现“Download”字样,先点击“Done”,最后下载这个证书,保存到桌面重命名为“xxxxxx.cer”。

(拿发布的为例吧:现在最小化页面窗口,打开电脑的“钥匙串访问”,点击它,下拉选择从证书颁发机构请求证书,会弹出一个证书信息窗口需要填写:电子邮件地址填自己的,常用名称填项目名xxx(最好不要中文名),再在存到磁盘前打钩,点击下面的继续选择保存的位置如:桌面。进去“钥匙串访问”里面的刚创建的xxx,会有两个,点击第二个右击“显示简介”把名称换成xxx.p12)

3>返回初始页面,进入Certificates->Production ,同样右上角的“+”新建一个新的Distribution 证书,只要点选"App Store and Ad Hoc"后点Continue,

4>配置描述文件,Provisioning Profiles ->Distribution ,同样右上角的“+”新建一个新的ProProvisioning Profiles证书 勾选里面的App store ->App ID 先前1里面制作的Id,点击继续勾选3中制作的证书,接着会出现给这个证书命名如:XXX Distribution ,点确认,直到出DownLoad , 点击Done后 下载这个证书,和上面下载的证书放在一起。

5>在Xcode 选中刚刚制作的证书;首先看Bundle identifier是否与我们制作证书所使用的的Bundle identifier名一致,点PROJECT->info->Configurations ->"+"选Release,再把名字替换成Distribution

点击PROJECT->Build Settings->Code signing ->code signing identity 下的Debug 和Release全选中自己制作的push证书如:“Apple Production IOS Push Services:com.xxx.Name ”,Distribution 里选中3中的发布证书,对应的Provisioning Profiles 下面的证书只要选中Distribution 栏目下的4中的证书。

再选中 TARGECTS->General->Bundle identifier名一致要一致,team就是自己的开发的团队名即自己账号的名字; TARGECTS->General->Bundle Settings->codeSigning 只需选中Distribution里面的对应证书就行了

6>在Xcode 最左上角的地方,IOS Device 左侧点击项目名下的Edit Scheme->Archive  点击后在BuildConfiguration选中Distribution就可以打包发布了。

7>制作后台服务器所需的p12 文件;

$ cd /Users/桌面刚下载的两个文件包名/Desktop

把.cer文件转换成.pem文件:

$ openssl x509 -in xxx.cer -inform der

-out xxxCert.pem

把私钥.p12文件转换成.pem文件:在钥匙串中的

$ openssl pkcs12 -nocerts -out xxx.pem -in xxx.p12

Enter Import Password:

MAC verified OK

Enter PEM pass phrase:

Verifying – Enter PEM pass phrase:

你首先需要为.p12文件输入passphrase密码短语,这样OpenSSL可以读它。然后你需要键入一个新的密码短语来加密PEM文件。还是使用”pushchat”来作为PEM的密码短语。你需要选择一些更安全的密码短语。

注意:如果你没有键入一个PEM passphrase,OpenSSL将不会返回一个错误信息,但是产生的.pem文件里面将不会含有私钥。

最后。把私钥和证书整合到一个.pem文件里:

$ cat xxxCert.pem xxx.pem > ck.pem

为了测试证书是否工作,执行下面的命令

$ telnet gateway.push.sandbox.push.apple.com 2195  //发布用的网址

$ telnet gateway.sandbox.push.apple.com 2195  //本地开发用的网址

Trying 17.172.232.226…

Connected to gateway.sandbox.push-apple.com.akadns.net.

Escape character is ‘^]’.

它将尝试发送一个规则的,不加密的连接到APNS服务。如果你看到上面的反馈,那说明你的MAC能够到达APNS。按下Ctrl+C 关闭连接。如果得到一个错误信息,那么你需要确保你的防火墙允许2195端口。

然后再次连接,这次用我们的SSL证书和私钥来设置一个安全的连接:

$ openssl s_client -connect gateway.sandbox.push.apple.com:2195

-cert PushChatCert.pem -key PushChatKey.pem

Enter pass phrase for xxx.pem:



0 0