iOS的远程推送通知。 APNS
2017年11月17日
创建您的项目(选择Xcode时,命令移位“ N”)。 然后单击下一步。
然后命名。
然后,单击“功能”,然后打开推送通知。
如果您无法打开推送通知。 您可能尚未创建付费的Apple Developer帐户。 在这里这样做:
苹果开发者中心
哦,是的。。。也可以在您在这里时执行此操作,否则您会收到烦人的警告,有时您的推送通知可能无法正常工作。
现在转到苹果的开发人员计划。 我们将上传证书申请,以获取我们的第一份证书。
转到您的帐户。 如果您没有,请创建一个并支付$ 100美元的年费或在阅读本手册时的年费。
登录后,单击证书,标识符和配置文件。
我们必须先单击应用程序ID,而不是直接进入证书部分。
单击+按钮为您的项目添加一个应用程序ID。
App ID description
将帮助您在项目ID列表中标识您的项目。
如果您希望能够看到该说明(使用通配符推荐),请使用显式的App ID。
从您的项目中获取捆绑包ID。
向下滚动并选择“推送通知”。
然后单击继续。
如果看到此警告:
您可能单击了两次“ Continue
。 您的ID应该在您单击此处时显示:
现在,无论如何都单击App IDs
。 找到您各自的应用程序ID,然后单击它。 您应该看到以下视图。
单击编辑。
然后向下滚动到“推送通知”部分。
点击Create Certificate
。 苹果使用一台服务器将推送通知发送到未从商店下载的iOS应用程序(称为SandBox / Development),将另一台服务器(生产)发送通知。 您的应用将根据您系统当时使用的证书与相应的APNS服务器保持持久连接。 开发证书不适用于从iTunes下载的应用程序。
创建开发和生产证书后,您将存储在服务器(在apns上下文中为Provider)中。 您的开发服务器将持有开发证书,而生产服务器将持有您的生产证书。 我将在本教程中进行量产。 如果您要进行开发,那么它只能在您的开发环境上工作,而不能在应用程序商店中工作。
通过钥匙串访问获取证书签名请求。 通过右上角的搜索图标,最容易找到钥匙串Access应用程序。
打开“钥匙串访问”后,请向证书颁发机构申请证书。
将电子邮件放入“用户电子邮件地址”。然后选择“保存到磁盘”,您无需提供CA电子邮件地址的电子邮件。
单击continue
, 证书助手 (由钥匙串访问打开的程序来帮助您创建证书签名请求)将询问您要将证书签名请求保存在何处。
我个人觉得默认命名约定很烦人。 它是由学校为冗余学校设计的。 我喜欢根据我的项目对其进行重命名。
单击保存将保存文档。 它看起来不像证书,因为它不是,它只是用于请求证书的文档。
推送通知是一种上游消息传递,因此如果不采取某些预防措施,可能会导致安全风险。 iPhone已配置为拒绝未正确加密和验证的消息。 我们正在创建适当的证书(一种用于各方确认对方是他所说的人的方式),以便我们的提供商(您的项目的服务器),Apple Push Notification Server和您的用户的电话可以信任对方是谁。他们说是。
现在回到CSR Apple开发者帐户网页,然后单击底部的Continue
。
然后获取您的证书并上传。
然后单击Continue
。
然后点击Download
。
然后双击下载的文件。
它应该显示在您的钥匙串访问中。 大多数证书将很难区分,您可以找到您的证书,因为证书名称的末尾将是您项目的包ID。
然后单击“ Certificates
,“ Login
,然后右键单击您的certificate
。
当您拥有很多证书时,可能会混淆您的证书,但是有效期为创建后的13个月。 只需查找到期日,月份增加,年份增加,然后从今天的日期算起一天。 例如,如果今天是3/26/2018,则到期日期将是4/25/2019。
点击Export
单击Save.
单击OK.
在此处输入您的计算机密码。
没问题,您现在应该可以看到发光的p12证书。
现在,再次回到Apple Developer网站。 好极了! 不在证书之下 。 转到提供配置文件。
点击+
。
我们现在正在App Store上。
找到包含您的捆绑包ID的选项。
然后单击Continue
。
这是苹果的测验。 猜猜哪一个是正确的?
选择一个日期最远的日期。
现在给它起个名字。 为什么? 对于情感依恋。
然后,你猜对了……
然后点击download.
单击Downloads
以访问它, 将其拖到桌面上,然后双击它。 它复制了您在Apple Developer网站上提供的项目包ID,因此它会找到您的应用并在您双击该应用时自行安装。 聪明。
哦,请确保您的签名是自动的。
准备您的代码以请求推送通知。 转到您的AppDelegate.swift
文件。 在顶部导入UserNotifications
导入用户通知
定义/添加的功能:
然后定义getNotificationSettingsThenRegister()
。
要爱那个爬虫人图标。
因此,您只需要运行您的应用程序即可。
从调试器复制设备令牌,并将其粘贴到设备令牌字段中。 然后从“选择推送证书”下拉框中选择相应的推送证书。
然后点击“推”。
Pusher将p12转换为幕后的pem文件。 您可能需要执行繁琐的终端命令才能将p12转换为pem文件,但是出于某些原因,我认为最好的方法是说服后端工程师使用脚本来执行此操作。
原因1 :调试变得更容易。 可以说,推送通知存在问题,它们没有到来。 也许您可能想撤消并重做证书。 这很棒,因为用于设置推送通知的所有这些步骤都相当麻烦。
原因2 :一旦开发了脚本,您只需将证书上传到门户即可。 真好
如果您在注释中关注本教程,请告诉我。 我会检查的。