网上关于ios消息推送机制(APNS)的实现、原理介绍很多,但都零零散散。

昨天经过自己的多番尝试,终于成功实现了推送过程。

在此,贴上自己整理的印象笔记内容,包括自己实现过程中受益的内容链接,和遇到点呃问题及解决方法。

php下的推送实现参见另一篇博文:【正在撰写中】

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。

PHP环境的推送代码参见另一篇博文:【撰写中】

ios开发: APNS消息推送实现相关推荐

  1. iOS开发之消息推送 —— 远程消息推送入门

    每次看到iOS的远程消息推送,总是感觉很头大,即便后来项目都做完了,还是觉得摸不着远程推送的脉门,网上介绍的资料虽多,但不是写的太简单了,就是写的太详细了,不能一下抓住要点,今天终于能够抽出点时间,来 ...

  2. IOS开发之----远程推送通知

    原文地址:IOS开发之----远程推送通知作者:倒計時 玩了一年的iPhone了各种App的远程通知接收了不少,每次接收到的时候,就在反思,这丫的怎么实现的! 由于工作方面一直没有接触的机会,所以只好 ...

  3. 小程序云开发之消息推送功能

    小程序云开发之消息推送功能(图文) 一:新建项目 APPID获取方法:1.在微信公众平台上注册账号,选择小程序(也可以从服务号注册,前提你有一个服务号)注册后登录,登录时微信扫码验证一下 2.填写小程 ...

  4. android开发之消息推送

    本人想把Android所要运用到的所有的东西都好好的梳理一遍,那今个儿就和大伙说说消息推送:想必大家都玩过小米手机,细心的人会发现,小米手机时不时的就会发一些通知告诉你要系统升级了.某某App有新版本 ...

  5. iOS开发之极光推送JPush

    JPush介绍 JPush可以轻松地通过极光推送完成运营推送工作同时支持自定义消息.富媒体消息.应用内提醒消息.短视频消息和围栏消息等9种类型,满足开发者在各类应用场景下运营所需9种消息类型. 配置i ...

  6. spring实现mqtt服务端_SpringBoot--实战开发--MQTT消息推送(六十)

    一.MQTT简介 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,有可能成为物联网的重要组成部分.该协议支持所有平台 ...

  7. Java后端实现安卓/IOS移动端消息推送(百度云推送)

    本文主要介绍Java服务器端如何借助第三方推送平台(百度云推送)推送给移动端消息. 使用案例介绍: 根据客户的需求,需要做一个类似淘宝消息推送的功能,客户下订单.订单付款.订单商品已发货,以及客户完成 ...

  8. 微信公众号开发(消息推送)

    文章目录 微信公众号开发 运行效果 微信公众号简介 注册微信公众号 注册测试公众号 搭建微信本地调试环境 微信公众号接入(校验签名) 给指定用户推送消息 网页授权获取用户openid 给指定用户发送模 ...

  9. 公众号开发--模板消息推送中文乱码问题

    本地main方法发送中文正常,启动服务端下订单推送公众号模板消息时中文乱码. 这肯定是编码的问题. 解决办法: 发送消息模板推送的http工具类里获取out流时设置编码格式为utf-8即可. 如下: ...

最新文章

  1. BCH在支付上的优势
  2. golang 变量定义和初始化
  3. ARCGIS10.1 插值分析结果按指定多边形输出
  4. ETH:Windows搭建ETH(区块链技术)利用Web端和小程序端两种方式调用ETH上的SC智能合约
  5. java 销毁线程_线程 学习教程(一): Java中终止(销毁)线程的方法
  6. Android 使用图片铺满某个区域
  7. JavaScript从入门到放弃 -(四)E5 新增方法
  8. 程序员日记我们需要有条理的生活
  9. Joe一款个人博客typecho主题(扩展版)
  10. Android 应用开发(第2章)---如何增加menu菜单
  11. Eclipse代码自动生成
  12. 最经典的PS入门笔记,来自李涛老师的高手之路
  13. 云课堂智慧职教计算机作业答案,云课堂智慧职教毛概作业答案
  14. 通信原理---FPGA---HDB3码编码
  15. 学好数据结构的重要性
  16. Word删除空白页方法,由分节符导致多出空白页删除方法
  17. DirectX示例翻译和解析StateManager Sample
  18. android 仿飞猪日历,vue+vux 仿飞猪app火车票部分(四)
  19. IP 库的那些事儿之 2013 - 2014 流水帐版
  20. 启动vue项目出现的错误合集

热门文章

  1. 中国大学MOOC创业融资题库及答案
  2. 西门子服务器接地维修,西门子系统电源维修方法和解决方案
  3. 光耦w314的各引脚图_常见光耦的引脚及内部结构图
  4. 基于51单片机DHT11的加湿器proteus仿真程序设计
  5. 喜讯!OpenJWeb2.6快速开发平台开源版正式对外发布
  6. 万物皆可NFT,元宇宙中的NFT到底是什么?
  7. video标签播放本地视频只有声音没有图像的解决办法-视频转码格式工厂或FFmpeg
  8. element-vue 如何在文本框后添加文字
  9. J2Me华容道游戏的实现(转载)
  10. 西门子PLC S7-200SMART Modbus TCP通讯的步骤和要点