常见问题

Android 相关问题

在 10.1.60.5 ~ 10.1.60.7 版本基线中存在的端口解析问题

如果是专有云环境,对于非 443 端口的推送服务器配置会出现解析失败导致连接错误。

解决方法

  • 如果使用 config 文件打包,请在 config 文件中按如下方式修改:

    1. //config 文件中其他部分省略,在自定义端口号前加上\\{空格}
    2. {
    3. "pushPort":"\\ 8000",
    4. }
  • 如果不使用 config 文件打包,请在 AndroidManifest.xml 中将 rome.push.port 的值按如下方式修改:

    1. //在端口号前加上\{空格}
    2. <meta-data
    3. android:name="rome.push.port"
    4. android:value="\ 8000" />

魅族手机无法打印日志

使用魅族手机测试时,如 log.dlog.i 日志无法打印,您可在 设置 > 辅助功能 > 开发者选项 中打开 高级日志输出,设置允许日志输出。

如遇开发问题,可设置 tag=mpush,对日志进行过滤。

iOS 相关问题

当 App 处于前台时, 消息推送是否会有横幅或声音提示

苹果的默认机制是,当 App 在前台时,消息可以达到,但是不会展示。如果需要在前台实现展示,需要自己做处理。

消息状态是 NoBindInfo

NoBindInfo 表示用户通过 UserId 去推送,但根据 UserId 没有找到对应的信息。请先确认客户端是否有调用绑定接口,并且对应的 appId 和 workspaceId 是否一致。

消息状态是 BadDeviceToken

此状态只会出现在 iOS 的推送,表示实际推送的 token 非法。先检查证书的环境是否正确。

  • 如果 App 打包使用开发证书,那么 push 控制台配置需使用开发环境证书;Xcode 连真机调试,需要使用开发者证书。
  • 如果 App 打包使用生产证书,那么 push 控制台配置需要使用生产环境证书。

消息状态是 DeviceTokenNotForTopic

此状态只会出现在 iOS 的推送,表示此 token 与推送的证书的 BundleId 不匹配。先检查证书是否正确,并且与客户端打包的 BundleId 是否一致。

iOS 手机无法收到消息,但消息状态是 ACKED

对于 iOS 的推送,如果消息状态是 ACKED,表示已经成功推送给苹果的推送服务。请先确认是否开启推送权限,是否有将应用切到后台。

苹果的默认机制是,当 App 在前台时,消息可以达到,但是不会展示。如果需要在前台实现展示,需要自己做处理。

RPC 调用问题

如果通过 RPC 请求进行资源调用的过程中出现异常,请参考 无线保镖结果码说明 进行排查。