文档导航
iOS
SDK 版本:  5.X
公告:融云新文档中心已上线,欢迎到新文档中心阅读 iOS IMLibiOS IMKit 的文档。

测试 APNs 远程推送

更新时间:2024-02-23 PDF

测试 APNs 远程推送

完成 APNs 集成步骤以后,可直接测试推送是否集成成功。

准备测试 App

安装方式 发布方式 描述文件类型 推送至 APNs Sandbox 环境 推送至 APNs Production 环境
Xcode run(模拟器) / / / /
Xcode run(真机) / 开发 支持,必须使用融云应用开发环境的 App Key 和 APNs 配置。 不支持
IPA 文件 Development 开发 支持,必须使用融云开发环境的 App Key 和 APNs 配置。 不支持
第三方 App 平台(如,蒲公英) Ad Hoc Ad Hoc 发布 不支持 推荐使用融云应用生产环境的 App Key 和 APNs 配置。
第三方 App 平台(如,蒲公英) Enterprise Enterprise 发布 不支持 推荐使用融云应用生产环境的 App Key 和 APNs 配置。
TestFlight App Store Connect App Store 发布 不支持 支持,但必须使用融云应用生产环境的 APNs 配置。
App Store App Store Connect App Store 发布 不支持 支持,但必须使用融云应用生产环境的 App Key 和 APNs 配置。

准备推送测试环境

融云应用区分开发与生产环境,使用不同的 App Key。融云服务端向 APNs 发送推送请求时可能有多种组合,

必要条件:

  • 使用真机:请使用真机进行测试,模拟器收不到远程推送。
  • 使用未越狱的设备:请勿使用越狱的设备,已越狱的设备可能收不到远程推送。
  • 确认 BundleID 中未包含通配符:使用通配符 BundleID 的 App 将无法使用远程推送。

打包指导:

  • 通过 Xcode 在真机运行时,请使用融云应用的开发环境的 App Key,在融云应用的开发环境中,如果使用 P8、P12 证书,融云服务端仅向 APNs Sandbox 环境推送,如果使用 P12 通用证书,应配置为推送到 APNs Sandbox 环境。

  • 通过 Development 方式打包时,请使用融云应用的开发环境的 App Key,在融云应用的开发环境中,如果使用 P8、P12 证书,融云服务端仅向 APNs Sandbox 环境推送,如果使用 P12 通用证书,应配置为推送到 APNs Sandbox 环境。

  • 使用 Ad-Hoc/TestFlight/AppStore 方式打包时,建议使用融云应用的生产环境的 App Key(需要在控制台申请上线)。只要是 生产环境的 App Key,融云服务端仅向 APNs Production 环境推送。

    例外情况:在融云应用的开发环境中,如果使用 P12 通用证书,允许配置为向 APNs Production 环境推送,以满足测试需求。

如有疑问,您可以参考 Xcode 帮助文档:

测试接收推送

建议先使用比较简单的单聊场景测试推送。步骤如下:

  1. App 连接融云成功之后杀掉 App 进程。
  2. 访问控制台的 IM Server API 调试页面,找到消息 > 消息服务 >发送单聊消息,直接给当前 App 用户发送一条单聊消息内容。
  3. 查看手机是否收到推送。

故障排除

如果未能收到推送,请先检查以下项目:

  • 如果客户端断开连接时设置了不允许推送,例如调用了 logout 方法,则会彻底注销在融云服务端的登录信息。融云服务端仅记录离线消息,但不会触发推送服务。
  • 如果 App 用户已在 Web/PC 端在线,此时融云认为用户在线,默认不会给移动端发送推送通知。如有需要,您可以在控制台免费基础功能页面调整 Web/PC 在线手机端接收 Push 开关设置。
  • 如果 App 用户使用多台移动端设备,融云服务端仅向最后一个登录的设备发送推送通知。

您可以通过控制台的「北极星」查看消息发送与接收状态,以及具体的推送错误:

  1. 访问控制台的「北极星」消息流转页面,切换到正确的环境(开发/生产),根据页面提供的搜索条件搜索消息,点击查询

  2. 在查询结果页面,找到需要排障的消息,点击「接收状态」栏中的查看

  3. 目标用户消息接收状态下,检查消息已通过推送下发给消息收件人。如果出现问题,该页面会显示具体原因。

  4. 根据以下错误,排查是否已参照文档正确集成 APNs:

    常见推送错误码 问题原因 解决方案
    P16 该消息不属于融云内置类型消息类型(详见消息类型概述),缺少推送通知内容(pushContent),因此无法推送。 如果发送自定义消息类型的消息,且需要支持推送,则必须在发送消息时设置 pushContent。
    P17 收件人设置了全局免打扰 排查是否设置了对应功能。详见全局免打扰
    P19 收件人设置了单个会话的免打扰 排查是否设置了对应功能。详见免打扰功能概述超级群免打扰功能概述
    P23 deviceId 为空 设置 deviceToken。请检查集成步骤是否已完成。详见集成 APNs 远程推送中的设置 deviceToken
    P60 加密消息没有推送
    PUSH_I9 证书加载错误 检查控制台是否上传了正确的推送证书。请检查集成步骤是否已完成。详见集成 APNs 远程推送。如确认证书无误,请联系融云继续排查。
    Rong_DeviceToken_Invalid 上传的 deviceToken 有误 设置 deviceToken。请检查集成步骤是否已完成。详见集成 APNs 远程推送中的设置 deviceToken
    APNS_4_4_null 证书过期 排查推送证书是否过期,如果过期,需要重新上传到控制台,如确认证书未过期,请联系融云继续排查。
    APNS_A2_2400{"reason":"BadDeviceToken"} 打包环境有误 请检查在融云后台上传的证书类型、配置、与您使用的 provisioning file 是否完全匹配。
    PUSH_IP8_ERR 打包环境有误 请检查在融云后台上传的证书类型、配置、与您使用的 provisioning file 是否完全匹配。
    APNs_XXX 推送至苹果后失败,XXX 为 APNs 错误码 参考 Apple 官方开发者文档的 APNs 错误码说明 Communicating with APNs

    您可以在知识库中查询北极星消息流转返回的全部推送错误码

  5. 如果问题持续,可直接提交工单,提供您的消息 ID 与查询结果。

文档反馈
意见反馈

您的改进建议

意见反馈

问题类型

联系我们

提交工单

技术支持|集成使用|产品方案


商务咨询

7 x 24 小时

为您解答方案与报价问题

131 6185 6839

文档反馈