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 :一旦开发了脚本,您只需将证书上传到门户即可。 真好

如果您在注释中关注本教程,请告诉我。 我会检查的。