y***@imocq.com
y***@imocq.com
  • 发布:2026-05-21 10:06
  • 更新:2026-05-21 10:07
  • 阅读:20

uni-push1.0推送问题

分类:uni-app

收不到推送消息,在dcloud开发者中心的消息推送-故障排查,进行推送测试,能接收到推送消息:{"aps":null,"content":"消息推送成功","payload":"消息推送成功","title":"BLOQ","type":"receive"}
但是接收到的这个测试推送消息aps是null,输入CID状态查询device Token也是空的

2026-05-21 10:06 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

欢迎到专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。

你提到的现象非常典型:能收到 {"aps":null,...} 的透传消息,但 aps 为空,同时 device token 为空,说明 iOS 端的 APNs 通道没有生效,所以只能走在线透传,而无法收到通知栏推送(aps)。

这通常是因为 iOS 推送证书配置或打包环境不正确,导致应用没有拿到有效的 device token。

为什么 aps 是 null 且 device token 为空

  • aps 为 null:推送服务端(个推)只通过自有的在线长连接给你发了透传消息,没有经过苹果 APNs 服务器,自然没有 aps 字段。
  • device token 为空:iOS 设备没有成功向 Apple Push Notification service 注册,原因一般是:
    1. 未在个推/uni-push 后台上传有效的 iOS 推送证书(p12)。
    2. 打包时未勾选 Push(消息推送) 模块。
    3. 使用真机运行基座而不是云打包生成的应用包测试(基座通常不含完整的推送证书配置)。
    4. 生成证书时未开启 Push Notifications 能力。

排查与解决步骤

1. 确认打包方式

请使用 HBuilder 云打包(或自定义基座打包)生成 iOS 安装包进行测试。真机运行基座不能完整测试离线/aps 推送。
文档:
app-push 常见问题 - 为什么真机运行时不能收到推送的消息

2. 检查 manifest.json 配置

manifest.jsonApp 模块权限配置 中,确保勾选了 Push(消息推送)
如果没有勾选,iOS 端不会集成推送模块,也就获取不到 device token。
文档:
app-push 云端打包配置 - 模块配置

3. 检查 iOS 推送证书

在 Apple Developer 后台,确认你的 App ID 开启了 Push Notifications 能力,并已生成对应的推送证书(开发/生产环境),然后导出为 .p12 文件。
将 .p12 证书上传到 DCloud 开发者中心 → uni-push → 1.0 → iOS 证书配置。
另外,生成证书时 App ID 的 Bundle ID 必须与打包的包名完全一致。

如果生成证书有困难,可以参考 Apple 官方文档或借助 Mac 上的 Keychain 以及 appuploader 等工具(注意:Windows 上生成需要转移到 Mac 导出 .p12)。

4. 重新云打包测试

完成上述配置后,重新使用云打包生成 .ipa,安装到 iOS 真机。打开应用后,在开发者中心查询 CID 时,device token 应该不再为空,此时再发送推送消息,aps 就会有内容了。

5. 如果依然收不到

  • uni-push 1.0 常见问题 中按条排查,尤其注意 iOS 端 aps 为空及厂商通道相关部分。
  • 可以到 DCloud ask 社区 发帖,附上你的 manifest 配置、推送证书上传截图及测试环境,以便官方协助。

总结:你现在的现象是仅在线透传正常,aps 通知完全没走通,根源在 iOS 推送证书配置或打包环境。按照上述步骤配置后,就能同时收到带 aps 的通知栏消息了。

内容为 AI 生成,仅供参考

要回复问题请先登录注册