您的位置:首页 > 移动开发 > IOS开发

ios开发: APNS消息推送实现

2014-02-20 19:37 316 查看
原文地址: /article/2378007.html

1.APNS原理、配置开发者账户以开启APNS服务、获取发送消息的认证证书的实现。(文章末尾的链接质量低劣,不建议阅读)

http://mmz06.blog.163.com/blog/static/121416962011111710934946/

2.手机端获取token的代码实例下载【在此之前,需要参照上文步骤,激活appid的apns功能】

http://www.cocoachina.com/bbs/job.php?action-download-pid-tpc-tid-3770-aid-3022.html

实现过程中,屡屡遇到Error:

Error: Error Domain=NSCocoaErrorDomain Code=3000 UserInfo=0x1179f0 "未找到应用程序的“aps-environment”的权利字符串"

原因是工程中的profile不正确。

解决办法:

确认你在apple dev portal里面把相应appid做成类似com.company.appname这样子(如果是xxxx.*则可能匹配错误等),激活pans功能后,再revoke这个profile,并下载安装到手机和xcode里面去(这里要注意,一定要先把push的功能在configure里面配置好了然后再download这个profile,更新手机和Xcode,如果你记不清楚了到底是先download还是先configure的,那么一个最保险的办法就是先configure好了,然后到profile那里点击modify,把profile改成一个新的名字,把这个新的profile安装到手机和Xcode里面,这样就没有问题了)

笔者在这个问题上花了大半天时间,根据后来成功实现后的总结,原因在于没有一个干净的测试环境。如果你觉得自己按照以上方法执行后,问题依旧,很大的可能性是并没有完全的依照以上步骤来执行。

3.消息发送端的代码实例 PushMeBaby:【需要参照上文步骤,在开发机生成钥匙对,并获得APNS的证书,置于消息发送的工程中】

http://dldx.csdn.net/fd.php?i=125637639879612&s=76d8ea9a7077833aaf4aa3c705cdda26

记得将制作证书时生成的.cer文件替换到项目中(当然要替换下代码中.cer的文件名啦~),并替换代码中的devicetoken为之前手机获得的token。

笔者的电脑装的是Mount Lion 10.8.2, 64位机。运行如上程序时,报错:

The run destination My Mac 64-bit is not valid for Running the scheme 'PushMeBaby'.

解决办法:

修改项目的PROJECT和TARGET的BUILD SETTING中的architecture为64位,base sdk为10.8,clean后重新运行,则OK。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: