当前位置: 首页 > news >正文

iOS推送通知的实现步骤

APNs

如果需要给应用集成推送功能,就一定要用到苹果的推送服务。Apple推送通知服务(Apple Push Notification service =APNs),例如友盟,极光之类的推送服务都是向APNs推送消息,APNs再将消息推送给设备的。

考虑到每个人在使用APNs时所处的开发状态都是不一样的,我们假想你当前状态是:在Apple Member Center是没有创建App ID,没有注册Mac,没有安装证书(Certificates)。后面我们将会介绍如何创建APP ID 和安装证书。

如果前面这些中提到的状态你已经完成了一些,也没关系,下面步骤中提到的创建操作换成编辑就可以了。例如,我已经有一个APP ID了,在下面创建App ID的操作就可以变成,编辑已经有的App ID。

从创建一个App ID名字是2fly开始,我们将会给2fly集成推送功能。

  1. 创建一个App ID 名字是2fly。

  2. 注册Mac并下载Certificates。

  3. 导出钥匙串中证书为P12文件。

创建一个App ID

登陆Apple Member Center

进入Certificates,Identifiers&Profiles 管理页面(如下图)。


 

点击Identifiers


 

进入到App ID选项,创建或是编辑一个App ID(下面将是创建一个App ID的过程)


 

创建一个新的App ID


 

填写Bundle ID

Note:Bundle ID要和本地需要集成推送功能的项目Bundle Identifier一致。


 

勾选App Service中Push Notification服务
勾选后点击Done,2fly的Push Notification这个服务便处于Configurable的状态。


 

注册Mac为开发机,创建Certificate

在APP ID中点击展开2fly,查看APP Service 中的Push Notification项。
从图中可以看出,Development SSL Certificate和Production SSL Certificate都是处于Configurable状态。
在创建好相应的Development SSL Certificate 和Produce SSL Certificate(开发,生产证书)之后,2fly的Push Notificaton服务便会由原先的Configurable状态变为Enable状态。


 

点击Create创建Development SSL Certificate,点击下一步一直到显示上传CertificateSigningRequest文件为止。
我需要在自己的Mac机上创建CertificateSigningRequest文件。


 

在本地Mac的应用中打开钥匙串访问,我们会从钥匙串中生成需要上传到Member Center的CertificateSigningRequest文件。

进入到钥匙串的页面,鼠标移到左上角-钥匙串访问(左上角)-证书助理-从证书颁发机构请求证书。

在点击‘从证书颁发机构请求证书‘的按钮之后,弹出下面这个界面,存储文件为CertificateSigningRequest。


 

回到Apple Member Center,上传刚才从钥匙中生成的,存在本地的CertificateSigningRequest文件。

上传完成后点击下一步,Development SSL Certificate便创建完成了,也可以看出Push Notification Development处于Enable状态。

相同的操作创建Production SSL Certificate。


 

下载App ID的Development和Distributions的.cer证书

下载创建好的Production SSL Certificate,Development SSL Certificate证书到本地。


 

导出Certificate为P12文件

将创建好的证书添加到钥匙串中。


 

将钥匙串中的带有有com.gaoios.2fly字样的证书导出,制作P12共享文件,导出证书为p12文件,导出的文件是以.p12为后缀的文件。


 

最后将导出的P12文件上传到第三方的推送服务的控制台中即可。

转载于:https://www.cnblogs.com/stronger-ios-lcx/p/5527203.html

相关文章:

  • 异步与并行~大话目录
  • MySQL in不走索引
  • linu系统管理中和shell编程中常用的技巧
  • 云栖社区
  • linux下升级python版本
  • CentOS 7 网络配置
  • Report Server Windows Service (MSSQLSERVER) 无法与报表服务器数据库建立连接 错误ID107...
  • 滴滴算法大赛算法解决过程 - 机器学习
  • 构建之法阅读笔记4
  • 提高PHP网站安全性5个技巧
  • Unity中双击 / 单击事件
  • SSDP
  • Azure Stack POC环境部署1—概述
  • 我想要的语言
  • Quartz.NET总结(四)Quartz 远程调度
  • @jsonView过滤属性
  • 《剑指offer》分解让复杂问题更简单
  • Angular4 模板式表单用法以及验证
  • chrome扩展demo1-小时钟
  • GDB 调试 Mysql 实战(三)优先队列排序算法中的行记录长度统计是怎么来的(上)...
  • HTTP那些事
  • Linux中的硬链接与软链接
  • 记录:CentOS7.2配置LNMP环境记录
  • 讲清楚之javascript作用域
  • 近期前端发展计划
  • 盘点那些不知名却常用的 Git 操作
  • 使用 Docker 部署 Spring Boot项目
  • 原生JS动态加载JS、CSS文件及代码脚本
  • Linux权限管理(week1_day5)--技术流ken
  • ​中南建设2022年半年报“韧”字当头,经营性现金流持续为正​
  • #pragam once 和 #ifndef 预编译头
  • (Matalb回归预测)PSO-BP粒子群算法优化BP神经网络的多维回归预测
  • (翻译)Quartz官方教程——第一课:Quartz入门
  • (非本人原创)我们工作到底是为了什么?​——HP大中华区总裁孙振耀退休感言(r4笔记第60天)...
  • (附源码)springboot优课在线教学系统 毕业设计 081251
  • (附源码)计算机毕业设计ssm高校《大学语文》课程作业在线管理系统
  • (一)Neo4j下载安装以及初次使用
  • (转)Linux NTP配置详解 (Network Time Protocol)
  • (转)Oracle存储过程编写经验和优化措施
  • (转)拼包函数及网络封包的异常处理(含代码)
  • .apk文件,IIS不支持下载解决
  • .dat文件写入byte类型数组_用Python从Abaqus导出txt、dat数据
  • .helper勒索病毒的最新威胁:如何恢复您的数据?
  • .Net 4.0并行库实用性演练
  • .NET 8.0 中有哪些新的变化?
  • .NET Core 网络数据采集 -- 使用AngleSharp做html解析
  • .net framework4与其client profile版本的区别
  • .NET 命令行参数包含应用程序路径吗?
  • .netcore 获取appsettings
  • .NET设计模式(11):组合模式(Composite Pattern)
  • .net知识和学习方法系列(二十一)CLR-枚举
  • .net最好用的JSON类Newtonsoft.Json获取多级数据SelectToken
  • .sys文件乱码_python vscode输出乱码
  • .w文件怎么转成html文件,使用pandoc进行Word与Markdown文件转化
  • /dev/sda2 is mounted; will not make a filesystem here!