React-Native
React Native 推送目前支持小米、华为、荣耀、OPPO、vivo、魅族、APNs、一加、realme、iQOO 、FCM 和 苹果等厂商通道。
Apple 厂商配置目前有两种主流的证书,p12 证书和 p8 证书。两种证书各有优劣,您可按需要选择其中的一种。
| 证书类型 | 有效期和管理 | 安全性 | 灵动岛 |
p12 证书 | p12 证书是一个包含公钥和私钥的二进制文件,用于基于证书的身份验证。它将公钥证书和私钥捆绑在一个文件中,扩展名为 .p12 或 .pfx。 | p12 证书通常有一年的有效期,过期后需要重新生成和部署。每个应用程序都需要单独的 P12 证书来处理推送通知。 | p12 证书使用基于证书的身份验证,需要在服务器上存储私钥。这可能会增加安全风险,因为私钥可能会被未经授权的用户访问。 | 不支持 |
p8 证书 | p8 证书是一个 Auth Key(授权密钥),用于基于令牌的身份验证。它是一个包含私钥的文本文件,扩展名为 .p8。 | p8 证书没有到期日期,因此您无需担心证书过期。此外,使用 P8 证书可以简化证书管理,因为您可以使用一个 p8 证书为多个应用程序提供推送通知服务。 | p8 证书使用基于令牌的身份验证,这意味着您的服务器会周期性地生成一个 JSON Web Token(JWT)来与 APNs 建立连接。这种方法更安全,因为它不需要在服务器上存储私钥。 | 支持灵动岛推送 |
一、使用 p12 证书 (传统推送证书)
步骤1:申请 APNs 证书
开启 App 远程推送
1. 登录 苹果开发者中心 网站,单击 Certificates,Identifiers & Profiles 或者侧栏的 Certificates,IDs & Profiles,进入 Certificates, IDS & Profiles 页面。

2. 单击 Identifiers 右侧的 +。

3. 您可以参见如下步骤新建一个 AppID,或者在您原有的 AppID 上增加
Push Notification
的 Service
。说明:
您 App 的
Bundle ID
不能使用通配符 *
,否则将无法使用远程推送服务。4. 勾选 App IDs,单击 Continue 进行下一步。

5. 选择 App,单击 Continue 进行下一步。

6. 配置
Bundle ID
等其他信息,单击 Continue 进行下一步。
7. 勾选 Push Notifications,开启远程推送服务。

生成证书
1. 选中您的 AppID,选择 Configure。

2. 可以看到在 Apple Push Notification service SSL Certificates 窗口中有两个
SSL Certificate
,分别用于开发环境(Development)和生产环境(Production)的远程推送证书,如下图所示:
3.
我
们先选择开发环境(Development)的 Create Certificate,系统将提示我们需要一个 Certificate Signing Request(CSR)。
4. 在 Mac 上打开钥匙串访问工具(Keychain Access),在菜单中选择钥匙串访问 > 证书助理 > 从证书颁发机构请求证书(
Keychain Access - Certificate Assistant - Request a Certificate From a Certificate Authority
)。
5. 输入用户电子邮件地址(您的邮箱)、常用名称(您的名称或公司名),选择存储到磁盘,单击继续,系统将生成一个
*.certSigningRequest
文件。
6. 返回上述 步骤3 中 Apple Developer 网站刚才的页面,单击 Choose File 上传生成的
*.certSigningRequest
文件。
7. 单击 Continue,即可生成推送证书。

8. 单击 Download 下载开发环境的
Development SSL Certificate
到本地。
9. 再次按照上述步骤1 - 8,将生产环境的
Production SSL Certificate
下载到本地。说明:
生产环境的证书实际是开发(Sandbox)+生产(Production)的合并证书,可以同时作为开发环境和生产环境的证书使用。


10. 双击打开下载的开发环境和生产环境的
SSL Certificate
,系统会将其导入钥匙串中。11. 打开钥匙串应用,在登录 > 我的证书,右键分别导出刚创建的开发环境(
Apple Development IOS Push Service
)和生产环境(Apple Push Services
)的 p12
文件。
注意
保存
.p12
文件时,请务必为其设置密码。步骤2:上传证书到控制台
1. 登录 即时通信 IM 控制台。
2. 进入 推送设置 > 厂商管理 > iOS。
3. 点击添加证书。
4. 选择证书类型,上传 iOS 证书(p.12),设置证书密码,单击确认。


注意:
上传证书名最好使用全英文(尤其不能使用括号等特殊字符)。
上传证书需要设置密码,无密码收不到推送。
发布 App Store 的证书需要设置为生产环境,否则无法收到推送。
上传的 p12 证书必须是自己申请的真实有效的证书。
二、使用 p8 证书 (支持灵动岛推送)
p8 证书:p8 证书没有到期日期,因此您无需担心证书过期。此外,使用 p8 证书可以简化证书管理,因为您可以使用一个p8 证书为多个应用程序提供推送通知服务。另外,p8 证书支持灵动岛推送。
步骤1:申请 APNs 证书


1. 进入Certificates,Identifiers & Profiles:在页面右上角单击 Account,然后在下拉菜单中选择 Certificates, Identifiers & Profiles 。
2. 创建一个新的 App ID:在左侧菜单中单击 Identifiers ,然后单击右侧的 + 创建一个新的 App ID。填写相应的信息并单击 Continue 。
3. 创建一个新的密钥:在左侧菜单中单击 Keys,然后单击右侧的 + 创建一个新的密钥。输入密钥的名称,然后勾选 Apple Push Notifications service (APNs),单击 Continue 。

确认并生成密钥:在确认页面核对您的密钥信息,然后单击 Register 。接下来,您将看到一个页面提示您下载密钥。单击 Download,将生成的 .p8 文件保存到您的计算机上。
注意:
p8 证书只可以下载一次,请妥善保存。
请妥善保管下载的 p8 文件,因为您将无法再次下载该文件。您可以使用此P8证书配置您的iOS应用程序以接收推送通知。
步骤2:上传 p8 证书到IM控制台
1. 登录 即时通信 IM 控制台。
2. 进入 推送设置 > 厂商管理 > iOS。
3. 点击添加证书。
4. 选择 .p8 证书,上传 iOS 证书(.p8),设置 KeyID、TeamID、BundleID,单击确认。


说明:
KeyID:这是您的 APNs Auth Key 的唯一标识符。当您在 Apple Developer Center 创建一个新的 APNs Auth Key 时,系统会为您生成一个 Key ID。您可以在 "Certificates, Identifiers & Profiles" 部分的 "Keys" 中找到它。
TeamID:这是您的开发者账户的唯一标识符。您可以在 Apple Developer Center 的账户详情页面找到它。点击右上角的 "Membership",在 "Membership Details" 部分可以找到您的 Team ID。
BundleID:这是您的应用程序的唯一标识符,也称为应用程序 ID。您可以在 Apple Developer Center 的 "Certificates, Identifiers & Profiles" 部分找到它。选择 "Identifiers",然后在您的应用程序列表中找到对应的 Bundle ID。
操作步骤
步骤1:注册应用到厂商推送平台
离线推送需要将您自己的应用注册到各个厂商的推送平台,得到 AppID 和 AppKey 等参数,来实现离线推送功能。目前国内支持的手机厂商有:小米、华为、荣耀、OPPO、VIVO、魅族,境外支持 Google FCM。
步骤2:IM 控制台配置
说明:
关于点击后续动作选项, 如需使用本插件提供的点击跳转能力, 请保持默认值不变, 即通常是 `打开应用内指定页面` 并带有默认配置.
如需使用上报统计功能, 也请保持此项默认值不变,
厂商推送平台 | IM 控制台配置 |
![]() |
![]() |
厂商推送平台 | IM 控制台配置 |
![]() | ![]() 说明: Client ID 对应 AppID,Client Secret 对应 AppSecret。 |
回执配置
回执地址:
Singapore : https://apisgp.im.qcloud.com/v3/offline_push_report/huawei
Korea: https://apikr.im.qcloud.com/v3/offline_push_report/huawei
USA: https://apiusa.im.qcloud.com/v3/offline_push_report/huawei
Germany: https://apiger.im.qcloud.com/v3/offline_push_report/huawei
Indonesia: https://apiidn.im.qcloud.com/v3/offline_push_report/huawei
China: https://api.im.qcloud.com/v3/offline_push_report/huawei
厂商推送平台 | IM 控制台配置 |
![]() |
![]() |
厂商推送平台 | IM 控制台配置 |
![]() |
![]() |
回执配置
回执地址:
Singapore :https://apisgp.im.qcloud.com/v3/offline_push_report/vivo
Korea:https://apikr.im.qcloud.com/v3/offline_push_report/vivo
USA: https://apiusa.im.qcloud.com/v3/offline_push_report/vivo
Germany: https://apiger.im.qcloud.com/v3/offline_push_report/vivo
Indonesia: https://apiidn.im.qcloud.com/v3/offline_push_report/vivo
China: https://api.im.qcloud.com/v3/offline_push_report/vivo
厂商推送平台 | IM 控制台配置 |
![]() |
![]() |
回执配置
回执地址:
Singapore : https://apisgp.im.qcloud.com/v3/offline_push_report/meizu
Korea: https://apikr.im.qcloud.com/v3/offline_push_report/meizu
USA: https://apiusa.im.qcloud.com/v3/offline_push_report/meizu
Germany: https://apiger.im.qcloud.com/v3/offline_push_report/meizu
Indonesia: https://apiidn.im.qcloud.com/v3/offline_push_report/meizu
China: https://api.im.qcloud.com/v3/offline_push_report/meizu
厂商推送平台 | IM 控制台配置 |
![]() | ![]() |
回执配置
回执地址:
Singapore : https://apisgp.im.qcloud.com/v3/offline_push_report/honor
Korea: https://apikr.im.qcloud.com/v3/offline_push_report/honor
USA: https://apiusa.im.qcloud.com/v3/offline_push_report/honor
Germany: https://apiger.im.qcloud.com/v3/offline_push_report/honor
Indonesia: https://apiidn.im.qcloud.com/v3/offline_push_report/honor
China: https://api.im.qcloud.com/v3/offline_push_report/honor
厂商推送平台 | IM 控制台配置 |
![]() |
![]() |