ios11去推送签名

在iOS开发中,推送服务是非常重要的一环。由于iOS设备的限制,开发者需要使用苹果提供的推送服务来向用户发送消息。然而,在开发过程中,有时会遇到推送证书过期或无法使用的问题。这时,我们需要去推送签名,以便继续使用推送服务。下面将详细介绍iOS11去推送签名的原理和步骤。

一、什么是推送签名

推送签名是指用于标识推送服务的证书。在iOS开发中,我们需要使用苹果提供的推送服务来向用户发送消息。为了确保数据传输的安全性,苹果要求开发者使用推送证书来标识自己的应用程序。推送证书包含公钥和私钥,私钥用于加密数据,公钥用于解密数据。当我们向用户发送消息时,需要将消息加密后发送给苹果服务器,苹果服务器再将消息解密后发送给用户的设备。而推送证书就是用来保证数据传输的安全性。

二、原理

在iOS11中,推送服务的认证方式发生了变化。以前,开发者只需要在苹果开发者中心申请推送证书,并将证书导入到Xcode中即可。而在iOS11中,需要先在苹果开发者中心创建一个APNs信任配置文件,然后将该配置文件导入到Xcode中。在Xcode中进行打包时,Xcode会自动将配置文件打包到应用程序中。当应用程序运行时,会自动读取该配置文件,并使用其中的证书进行推送服务的认证。

三、步骤

1.创建APNs信任配置文件

在苹果开发者中心创建APNs信任配置文件的步骤如下:

1)登录苹果开发者中心,进入“Certificates, Identifiers & Profiles”页面。

2)选择“Identifiers”,点击“App IDs”,找到需要使用推送服务的应用程序,在右侧点击“Edit”。

3)在“Edit App ID”页面中,勾选“Push Notifications”,点击“Continue”。

4)在“Configure App ID for Push Notifications”页面中,选择“Create Certificate”,按照提示操作,生成推送证书。

5)证书生成后,下载证书,双击安装到Keychain中。

6)在Keychain中找到证书,右键点击证书,选择“Export”,将证书导出为.p12格式的文件。

7)打开终端,输入以下命令,将.p12格式的证书转换为.pem格式:

$ openssl pkcs12 -clcerts -nokeys -out apns-dev-cert.pem -in apns-dev-cert.p12

$ openssl pkcs12 -nocerts -out apns-dev-key.pem -in apns-dev-key.p12

$ cat apns-dev-cert.pem apns-dev-key.pem > apns-dev.pem

8)将生成的apns-dev.pem文件上传到服务器。

2.导入APNs信任配置文件

在Xcode中导入APNs信任配置文件的步骤如下:

1)打开Xcode,选择“File”->“New”->“Target”。

2)选择“iOS”->“App Extension”->“Notification Service Extension”,点击“Next”。

3)输入扩展程序的名称,点击“Finish”。

4)在新建的扩展程序中,找到“Info.plist”文件,将其打开。

5)在“Info.plist”文件中,添加“aps-environment”键,并将其值设置为“development”或“production”,代表开发或生产环境。

6)在“Info.plist”文件中,添加“NSExtension”键,将其值设置为“NSExtensionAttributes”,并在“NSExtensionAttributes”中添加“apns-topic”键,将其值设置为应用程序的bundle ID。

7)在“Info.plist”文件中,添加“NSExtension”键,将其值设置为“NSExtensionPointIdentifier”,并将其值设置为“com.apple.usernotifications.service”。

8)在“Info.plist”文件中,添加“NSExtension”键,将其值设置为“NSExtensionPrincipalClass”,并将其值设置为扩展程序的主类名。

9)在Xcode中,打开应用程序的“Target”,找到“Capabilities”选项卡,将“Push Notifications”和“Background Modes”开关打开。

10)在“Capabilities”选项卡中,找到“Push Notifications”选项,点击“Configure”,选择“Create Certificate”,按照提示操作,生成推送证书。

11)证书生成后,下载证书,双击安装到Keychain中。

12)在Keychain中找到证书,右键点击证书,选择“Export”,将证书导出为.p12格式的文件。

13)打开终端,输入以下命令,将.p12格式的证书转换为.pem格式:

$ openssl pkcs12 -clcerts -nokeys -out apns-dev-cert.pem -in apns-dev-cert.p12

$ openssl pkcs12 -nocerts -out apns-dev-key.pem -in apns-dev-key.p12

$ cat apns-dev-cert.pem apns-dev-key.pem > apns-dev.pem

14)将生成的apns-dev.pem文件上传到服务器。

四、总结

推送服务是iOS应用程序开发中非