一、证书配置
集成 TIMPush 组件之前,需要先向 Apple 申请 APNs 推送证书,然后上传推送证书到 IM 控制台 。之后按照快速接入步骤接入即可。
Apple 厂商配置目前有两种主流的证书,p12 证书和 p8 证书。两种证书各有优劣,您可按需要选择其中的一种。
证书类型:
p12 证书:p12 证书是一个包含公钥和私钥的二进制文件,用于基于证书的身份验证。它将公钥证书和私钥捆绑在一个文件中,扩展名为 .p12 或 .pfx。
p8 证书:p8 证书是一个 Auth Key(授权密钥),用于基于令牌的身份验证。它是一个包含私钥的文本文件,扩展名为 .p8。
有效期和管理:
p12 证书:p12 证书通常有一年的有效期,过期后需要重新生成和部署。每个应用程序都需要单独的 P12 证书来处理推送通知。
p8 证书:p8 证书没有到期日期,因此您无需担心证书过期。此外,使用 P8 证书可以简化证书管理,因为您可以使用一个 p8 证书为多个应用程序提供推送通知服务。
安全性:
p12 证书:p12 证书使用基于证书的身份验证,需要在服务器上存储私钥。这可能会增加安全风险,因为私钥可能会被未经授权的用户访问。
p8 证书:p8 证书使用基于令牌的身份验证,这意味着您的服务器会周期性地生成一个 JSON Web Token(JWT)来与 APNs 建立连接。这种方法更安全,因为它不需要在服务器上存储私钥。
灵动岛:
p12 证书:不支持。
p8 证书:支持灵动岛推送。
方式一:使用 p12 证书 (传统推送证书)
步骤1:申请 APNs 证书
1. 登录 苹果开发者中心 网站,单击 Certificates,Identifiers & Profiles 或者侧栏的 Certificates,IDs & Profiles,进入 Certificates, IDS & Profiles 页面。
![](https://qcloudimg.tencent-cloud.cn/image/document/c7a3c6ce1eb3655f4249a2a805726a74.jpg)
2. 单击 Identifiers 右侧的 +。
![](https://qcloudimg.tencent-cloud.cn/image/document/8d8eb9baaec0f155f4a5cb669d67d089.png)
3. 您可以参见如下步骤新建一个 AppID,或者在您原有的 AppID 上增加
Push Notification
的 Service
。说明:
您 App 的
Bundle ID
不能使用通配符 *
,否则将无法使用远程推送服务。4. 勾选 App IDs,单击 Continue 进行下一步。
![](https://qcloudimg.tencent-cloud.cn/image/document/34b8e917361edd46c1a8bfc9a73b4ed4.png)
5. 选择 App,单击 Continue 进行下一步。
![](https://qcloudimg.tencent-cloud.cn/image/document/0bdb3a81c70cb01c7203ba23ccf7d2e2.jpg)
6. 配置
Bundle ID
等其他信息,单击 Continue 进行下一步。![](https://qcloudimg.tencent-cloud.cn/image/document/c355c77b836b32275ed889ac1be4675b.png)
7. 勾选 Push Notifications,开启远程推送服务。
![](https://qcloudimg.tencent-cloud.cn/image/document/e751c7ff5ff483ddf49cbba50c87acd2.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/e751c7ff5ff483ddf49cbba50c87acd2.png)
生成证书
1. 选中您的 AppID,选择 Configure。
![](https://qcloudimg.tencent-cloud.cn/image/document/e62f0bb17d0a5e8a2f35f6b62c5e4adf.png)
2. 可以看到在 Apple Push Notification service SSL Certificates 窗口中有两个
SSL Certificate
,分别用于开发环境(Development)和生产环境(Production)的远程推送证书,如下图所示:![](https://qcloudimg.tencent-cloud.cn/image/document/09882cef81c3853bdcd1e6a172f17a8c.jpg)
3.
我
们先选择开发环境(Development)的 Create Certificate,系统将提示我们需要一个 Certificate Signing Request(CSR)。![](https://qcloudimg.tencent-cloud.cn/image/document/01803cddeb988a044f143b6e30598e3f.png)
4. 在 Mac 上打开钥匙串访问工具(Keychain Access),在菜单中选择钥匙串访问 > 证书助理 > 从证书颁发机构请求证书(
Keychain Access - Certificate Assistant - Request a Certificate From a Certificate Authority
)。![](https://qcloudimg.tencent-cloud.cn/image/document/197f12a14a60ebe64da783ddcb084a80.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/197f12a14a60ebe64da783ddcb084a80.png)
5. 输入用户电子邮件地址(您的邮箱)、常用名称(您的名称或公司名),选择存储到磁盘,单击继续,系统将生成一个
*.certSigningRequest
文件。![](https://qcloudimg.tencent-cloud.cn/image/document/76009b3dbac836d2288e69e701ad955e.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/76009b3dbac836d2288e69e701ad955e.png)
6. 返回上述 步骤3 中 Apple Developer 网站刚才的页面,单击 Choose File 上传生成的
*.certSigningRequest
文件。![](https://qcloudimg.tencent-cloud.cn/image/document/670cd59fbd9ea56bce418f7c2b95876e.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/670cd59fbd9ea56bce418f7c2b95876e.png)
7. 单击 Continue,即可生成推送证书。
![](https://qcloudimg.tencent-cloud.cn/image/document/14d293d3269c2adc38526fd4d02a9a44.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/14d293d3269c2adc38526fd4d02a9a44.png)
8. 单击 Download 下载开发环境的
Development SSL Certificate
到本地。![](https://qcloudimg.tencent-cloud.cn/image/document/63cc2b9cb63f24c99d5cce5de73c1f78.jpg)
![](https://qcloudimg.tencent-cloud.cn/image/document/63cc2b9cb63f24c99d5cce5de73c1f78.jpg)
9. 再次按照上述步骤1 - 8,将生产环境的
Production SSL Certificate
下载到本地。说明
生产环境的证书实际是开发(Sandbox)+生产(Production)的合并证书,可以同时作为开发环境和生产环境的证书使用。
![](https://qcloudimg.tencent-cloud.cn/image/document/25cafe2231dba6536ae27282d72ab88a.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/25cafe2231dba6536ae27282d72ab88a.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/c83a2a2ce0b198e21052376f0651cc6d.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/c83a2a2ce0b198e21052376f0651cc6d.png)
10. 双击打开下载的开发环境和生产环境的
SSL Certificate
,系统会将其导入钥匙串中。11. 打开钥匙串应用,在登录 > 我的证书,右键分别导出刚创建的开发环境(
Apple Development IOS Push Service
)和生产环境(Apple Push Services
)的 p12
文件。![](https://qcloudimg.tencent-cloud.cn/image/document/c0ddf7a1016251e330109b36d4b36d58.png)
注意
保存
.p12
文件时,请务必要为其设置密码。步骤2:上传证书到控制台
1. 登录 即时通信 IM 控制台。
2. 单击目标应用卡片,进入应用的基础配置页面。
![](https://qcloudimg.tencent-cloud.cn/image/document/024fb80c467efed9990dd38a4b4cea5d.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/024fb80c467efed9990dd38a4b4cea5d.png)
3. 单击 iOS 原生离线推送设置右侧的添加证书。
4. 选择证书类型,上传 iOS 证书(p.12),设置证书密码,单击确认。
![](https://qcloudimg.tencent-cloud.cn/image/document/78504406257d8f40ab14ce42c394b7d4.png)
注意:
上传证书名最好使用全英文(尤其不能使用括号等特殊字符)。
上传证书需要设置密码,无密码收不到推送。
发布 App Store 的证书需要设置为生产环境,否则无法收到推送。
上传的 p12 证书必须是自己申请的真实有效的证书。
5. 待推送证书信息生成后,记录证书的 ID。
![](https://qcloudimg.tencent-cloud.cn/image/document/ad791b7973b17f06a19ba325b87dc8b3.png)
方式二:使用 p8 证书 (支持灵动岛推送)
p8 证书:p8 证书没有到期日期,因此您无需担心证书过期。此外,使用 p8 证书可以简化证书管理,因为您可以使用一个p8 证书为多个应用程序提供推送通知服务。另外,p8 证书支持灵动岛推送。
步骤1:申请 APNs 证书
![](https://qcloudimg.tencent-cloud.cn/image/document/a32d75a78ab5e1f55d2516ed54ba9096.png)
1. 进入Certificates,Identifiers & Profiles:在页面右上角单击 Account,然后在下拉菜单中选择 Certificates, Identifiers & Profiles 。
2. 创建一个新的 App ID:在左侧菜单中单击 Identifiers ,然后单击右侧的 + 创建一个新的 App ID。填写相应的信息并单击 Continue 。
3. 创建一个新的密钥:在左侧菜单中单击 Keys,然后单击右侧的 + 创建一个新的密钥。输入密钥的名称,然后勾选 Apple Push Notifications service (APNs),单击 Continue 。
![](https://qcloudimg.tencent-cloud.cn/image/document/fab163b081dfc28efd512856bede2c24.png)
确认并生成密钥:在确认页面核对您的密钥信息,然后单击 Register 。接下来,您将看到一个页面提示您下载密钥。单击 Download,将生成的 .p8 文件保存到您的计算机上。
注意:
p8 证书只可以下载一次,请妥善保存。
请妥善保管下载的 p8 文件,因为您将无法再次下载该文件。您可以使用此P8证书配置您的iOS应用程序以接收推送通知。
步骤2:上传 p8 证书到IM控制台
1. 登录 即时通信 IM 控制台。
2. 单击目标应用卡片,进入应用的基础配置页面。
3. 单击 iOS 原生离线推送设置右侧的添加证书。
4. 选择 .p8 证书
![](https://qcloudimg.tencent-cloud.cn/image/document/a564a27a413c42dbd0f817f174da16f4.png)
说明:
Key ID:这是您的 APNs Auth Key 的唯一标识符。当您在 Apple Developer Center 创建一个新的 APNs Auth Key 时,系统会为您生成一个 Key ID。您可以在 "Certificates, Identifiers & Profiles" 部分的 "Keys" 中找到它。
Team ID:这是您的开发者账户的唯一标识符。您可以在 Apple Developer Center 的账户详情页面找到它。点击右上角的 "Membership",在 "Membership Details" 部分可以找到您的 Team ID。
Bundle ID:这是您的应用程序的唯一标识符,也称为应用程序 ID。您可以在 Apple Developer Center 的 "Certificates, Identifiers & Profiles" 部分找到它。选择 "Identifiers",然后在您的应用程序列表中找到对应的 Bundle ID。
二、Xcode添加推送权限
要在App中添加推送权限,请在 Xcode 项目中启用推送通知功能。
打开 Xcode 项目,在 Project > Target > Capabilities 页面中点击红框中的加号按钮,然后选择并添加 Push Notifications 。
![](https://qcloudimg.tencent-cloud.cn/image/document/aa528856fc3c7e42b9e4a8ca5209278e.png)
添加后的结果如图中红框所示。
![](https://qcloudimg.tencent-cloud.cn/image/document/6efe876ab5e6aba234e036e694b11f97.png)
三、生成 App GroupID (可选)
当您需要使用 TIMPush 组件统计推送抵达率时,推荐您配置 TIMPushAppGroupID ,之后按照快速接入进行使用。
App GroupID 标识当前主 App 和 Extension 之间共享的 App Group,需要在主 App 的 Capability 中配置 App Groups 能力。
步骤1:登录苹果开发者中心网站,进入【identifiers】 ->【App Groups】创建 AppGroups。
![](https://qcloudimg.tencent-cloud.cn/image/document/7d183e4410bcde88b4debd22cb88a61b.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/348c739a5b4735afd087fc53bdd9b224.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/0bddac0c65497948d1a5e1cc38b789d9.png)
步骤2:绑定需要使用的应用的 AppID 到 AppGroups。
![](https://qcloudimg.tencent-cloud.cn/image/document/e441c0650bf16123afd47df314f1b177.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/01fa3df858eb79454efff212c220729c.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/db4a647de569445663745d21895ba6ad.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/db4a647de569445663745d21895ba6ad.png)
步骤3:获取您的 TIMPushAppGroupID。
![](https://qcloudimg.tencent-cloud.cn/image/document/b13efc4d59b3102b5aad4682efb491f6.png)
步骤4:在Xcode中配置 TIMPushAppGroupID。
打开 Xcode 项目,在 Project > Target > Capabilities 页面中点击红框中的加号按钮,然后选择并添加 App Groups。
![](https://qcloudimg.tencent-cloud.cn/image/document/d7488c41fb70f2aa1e0214793bad7181.png)
填入第3步中配置的 Group ID,例如 group.com.tencent.im.pushkey:
![](https://qcloudimg.tencent-cloud.cn/image/document/6d611627045c1393e204803c59e23d58.png)