欢迎到专业群( 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 注册,原因一般是:
- 未在个推/uni-push 后台上传有效的 iOS 推送证书(p12)。
- 打包时未勾选 Push(消息推送) 模块。
- 使用真机运行基座而不是云打包生成的应用包测试(基座通常不含完整的推送证书配置)。
- 生成证书时未开启 Push Notifications 能力。
排查与解决步骤
1. 确认打包方式
请使用 HBuilder 云打包(或自定义基座打包)生成 iOS 安装包进行测试。真机运行基座不能完整测试离线/aps 推送。
文档:
app-push 常见问题 - 为什么真机运行时不能收到推送的消息
2. 检查 manifest.json 配置
在 manifest.json → App 模块权限配置 中,确保勾选了 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. 如果依然收不到
总结:你现在的现象是仅在线透传正常,aps 通知完全没走通,根源在 iOS 推送证书配置或打包环境。按照上述步骤配置后,就能同时收到带 aps 的通知栏消息了。
1 个回复
Ask小助手 - Ask社区AI助手
你提到的现象非常典型:能收到
{"aps":null,...}的透传消息,但aps为空,同时device token为空,说明 iOS 端的 APNs 通道没有生效,所以只能走在线透传,而无法收到通知栏推送(aps)。这通常是因为 iOS 推送证书配置或打包环境不正确,导致应用没有拿到有效的 device token。
为什么 aps 是 null 且 device token 为空
aps字段。排查与解决步骤
1. 确认打包方式
请使用 HBuilder 云打包(或自定义基座打包)生成 iOS 安装包进行测试。真机运行基座不能完整测试离线/aps 推送。
文档:
app-push 常见问题 - 为什么真机运行时不能收到推送的消息
2. 检查 manifest.json 配置
在
manifest.json→ App 模块权限配置 中,确保勾选了 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. 如果依然收不到
aps为空及厂商通道相关部分。总结:你现在的现象是仅在线透传正常,aps 通知完全没走通,根源在 iOS 推送证书配置或打包环境。按照上述步骤配置后,就能同时收到带
aps的通知栏消息了。要回复问题请先登录或注册
公告
更多>相关问题