使用Cordova与Xcode9构建应用时推送通知配置文件报错求助
解决Cordova iOS推送通知配置文件错误的方案
你遇到的问题核心其实是对Apple开发者后台配置流程的理解误区——APNs证书并不是用来直接创建Provisioning Profile的,而是要先给你的App ID开启推送权限,再基于关联该App ID的开发/分发证书生成包含推送权限的配置文件。下面是一步步的解决步骤:
1. 给你的App ID开启Push Notifications权限
- 登录Apple Developer Center,进入「Identifiers」页面,找到对应你的Bundle ID的App ID
- 点击「Edit」,在「Capabilities」区域找到「Push Notifications」并勾选
- 按照页面提示,分别生成Development APNs Certificate和Production APNs Certificate(根据你构建的环境选择,建议两类都生成),下载后双击安装到你的Mac钥匙串中
2. 重新生成包含推送权限的Provisioning Profile
- 进入「Profiles」页面,点击「+」创建新配置文件:
- 开发环境选「App Development」,发布环境选「App Distribution」
- 下一步选择你刚才开启了Push Notifications的App ID
- 下一步选择对应的开发/分发证书(该证书已和开启推送权限的App ID关联,因此生成的配置文件会自动包含推送权限)
- 开发环境需要选择测试设备,分发环境无需选择
- 给配置文件命名后下载,双击安装到Xcode中
3. 检查Cordova项目配置与Xcode设置
- 确认已安装推送相关插件,比如
cordova-plugin-push,可通过命令cordova plugin list验证 - 执行
cordova clean ios清理缓存,再重新构建项目:cordova build ios - 构建完成后,用Xcode打开
platforms/ios下的项目文件,进入「Signing & Capabilities」页面:- 确认「Push Notifications」已在Capabilities列表中
- 确认选中的Provisioning Profile是你刚重新生成的那一个
4. 验证配置文件权限
- 在Apple Developer Center的「Profiles」页面,点击你生成的配置文件,查看「Enabled Capabilities」里是否包含「Push Notifications」,有则说明配置正确
简单来说,APNs证书是用来和Apple推送服务器建立连接的凭证,而推送权限是通过App ID的Capability赋予的——只要App ID开启了该权限,基于它生成的配置文件就会自动携带推送权限,不需要单独用APNs证书创建配置文件。
内容的提问来源于stack exchange,提问作者Sergej
相关产品推荐
相关产品推荐

