iOS 远端推送部署详解
最近几天被iOS的推送部署给搞懵了,现在特地整理下和大家进行分享。 iOS远端推送机制 APNS,全称为Apple Push Notification service,是苹果通知推送服务中最重要的一环。它是苹果通知推送服务器,为所有iOS设备以及OS X设备提供强大并且可靠的推送通知服务。每个注册通知服务的设备都会和该服务器进行长连接,从而实时获取推送通知。即使当前APP不在运行状态,当通知到达的时候也会有提示发生,最常见的就是短信服务。 每一个App必须向APNs注册通知服务,APNs会返回给设备一个DeviceToken,该Token为APNs上针对该设备的唯一标示符。App需要将该DeviceToken返给自身的Server端保存后续使用,如下所示。 当App开发者的server需要向特定设备推送通知时,就使用DeviceToken和固定格式数据(Push payload)发给APNs,然后APNs就会向DeviceToken指定的设备推送通知了,具体流程如下所示,单一推送 或者多方通知,APNs都能一一对应,靠的就是之前我们提供给它的DeviceToken。 本地推送证书配置 打开你mac的钥匙串访问,然后点击钥匙串访问 随后它会弹出一个窗口 用户电子邮件信息 就填写你苹果开发者账号的名称即可(应该是一个邮件名称),点击保存到磁盘的选项,点击继续,点击存储,文件名为:CertificateSigningRequest.certSigningRequest。 然后我们打开苹果开发者中心 进入 Member Center 然后点击左侧列表中任意一项进入详情页面, APP ID 首先我们需要为我们要开发的APP建立身份信息,就是AppID,如图所示,点击左侧 点击添加按钮进入注册页面,我们需要输入App Id的名字以及BundleID,其中BundleID不能有通配符,否则无法具备推送功能,然后在下面的APP Service中勾选Push Notification一项 点击下一步,然后确认提交即可,大家注意到Push Notification一项为Configurable,这是因为我们还没有为该AppID生成推送证书,等推送证书生成完毕之后可以再回来查看该AppID 的状态。 Certificates 其次,我们需要生成开发者证书和推送证书,如下图所示,点击左侧Cerifications列表,选择添加进入下一页面, 如果您的页面如图所示为灰色不可选,说明您已经拥有了开发者证书。就不需要再次生成了,如果可选就选择该选项, 接下来进入以下界面,选择你之前添加的AppID,之后点击Continue即可, 然后选择之前我们保存在本地的CSR文件CertificateSigningRequest.certSigningRequest,点击Generate就生成了开发者的证书。 同理我们需要生成推送测试证书,生成流程和开发者证书类似,只是在证书类型页面,选择的证书类型换成了Apple Push Notification service SSL。 当我们生成好推送证书之后再回头看我们之前创建的AppId,能够看Push Notifications一项已经为Enabled了。当然发布推送证书配置完毕之后,Distribution一项也显示为Enable。 Provisioning Profiles 第三步,需要生成Provisioning Profiles,该文件其实就是以上的证书、AppId以及设备信息的打包集合,我们只要在不同的场景下生成不同类型Provisioning Profiles即可,它会在后续打包ipa文件的时候被嵌入安装包内。 ...