使用APNs Auth Key时,到期的Apple Push服务证书及NSE证书该如何处理?
背景信息
我接手了一款消息应用的维护工作,该应用使用Notification Service Extension权限(此前我未曾使用过)。应用未上架App Store,而是通过网站进行OTA分发。同事告知,此前为避免证书过期问题,服务器已开始使用APNs Auth Key。
目前在开发者后台的证书页面,有两份即将过期的证书:
- 均为Apple Push Services类型
- 第一份以主应用Bundle ID(
MyInstitution.AppName)命名 - 第二份以Notification Service Extension的Bundle ID(
MyInstitution.AppName.NotificationServiceExtension)命名
同时,在开发者后台的「Certificates, Identifiers & Profiles -> Keys」栏目下,有一个名为「MyInstitution NSE」的密钥。
问题与解答
1. 既然应用已使用APNs Auth Key,该如何处理即将过期的证书?
既然服务器已经完全切换到APNs Auth Key进行推送认证,这两份即将过期的Apple Push Services证书可以直接忽略,无需续订或更新。APNs Auth Key是基于密钥的认证机制,和证书认证是两套独立的体系,只要服务器端确认不再依赖证书推送,证书过期后不会影响应用的推送功能。你可以在证书过期后直接删除它们,清理开发者后台的冗余内容。
2. Notification Service Extension是否独立于APNs Auth Key运行?
不是。Notification Service Extension是应用内用于处理推送内容的扩展组件,它本身不需要单独的APNs认证。推送的身份验证(无论是证书还是Auth Key)是由服务器与APNs服务器交互时完成的。Extension的作用是在推送到达设备后,修改推送内容(如下载图片、自定义文本),它的运行仅依赖:
- 主应用的正常配置
- 自身Bundle ID在开发者后台的「Identifiers」中启用了「Push Notifications」权限
它不需要单独的推送证书或Auth Key,也不会独立于主应用的APNs认证机制运行。
3. 最终需要续订什么,具体如何操作?
你无需定期续订任何内容,因为APNs Auth Key本身不会过期(除非你主动撤销)。但需要确认以下几点确保功能正常:
- 现有Auth Key在创建时已勾选「Apple Push Notification service (APNs)」权限
- 服务器端正确配置了该Auth Key(包含
.p8密钥文件、Team ID、Key ID) - 主应用和Notification Service Extension的Bundle ID在开发者后台的「Identifiers」中,均已启用「Push Notifications」权限且状态正常
如果后续需要重新生成Auth Key(比如密钥文件丢失),操作步骤如下:
- 登录苹果开发者后台,进入「Certificates, Identifiers & Profiles -> Keys」页面
- 点击右上角「+」按钮创建新密钥
- 填写密钥名称,勾选「Apple Push Notification service (APNs)」选项
- 确认后下载
.p8格式的密钥文件(注意:该文件只能下载一次,需妥善保存) - 将新的Key ID、Team ID和
.p8文件同步给服务器开发人员,更新服务器的推送配置
内容的提问来源于stack exchange,提问作者biggreentree

