iOS MA SDK 错误码

客户端错误码定义

本文适用于 v5.5.0 及以后版本的独立版 MTMA SDK。

Code 描述 详细解释
0 请求成功 接口请求成功
-1 请求失败 网络异常、响应格式错误、初始化配置中 MA 功能关闭或其他未知错误
-2 请求失败 没有调用 start: 接口、MTMA 尚未初始化成功,或者排队请求执行前 MA AppKey、项目或身份已经变化
-3 无效的设置 参数校验失败,例如 MA AppKey 不是 24 位字母或数字、identifyAccount: 清洗后没有可用标识
-4 项目关闭 运行期接口发现 MA 功能关闭,或服务端返回项目关闭错误;初始化配置中 MA 功能关闭见 -1
-5 旧版保留 旧版用于表示 AppPush 没有注册成功,独立版 MTMA 不再使用此错误码
-6 项目切换 项目被切换,需要再次调用 start: 接口进行初始化
-7 接口正在请求 不支持排队的接口已有请求正在执行。有效的 start: 调用不会因已有初始化请求而返回此码;第三方 Push 通道请求按顺序排队

服务端业务码

上表是 SDK 自身产生的错误码。服务端业务失败时,SDK 会返回相应的业务码和文案,因此回调可能出现正数 code。具体业务码仅用于排查,不保证版本间稳定,请勿据此编写业务分支。

初始化通过 MTMAInitResult.isSuccess 判断结果;其他接口以 code=0 判断请求是否成功。非预期失败时,请将 code 和 message 原文提供给技术支持。

  • identifyAccount: 的 code=0 不代表全部标识都设置成功,详见 设置用户标识。
  • object_array 属性未在服务端定义时,元素级操作可能返回 code=0 但不产生修改。其他不修改数据的情况见 设置用户属性,实际结果请通过 MA 控制台或服务端用户属性确认。
场景 回调 code 回调 message
服务端返回业务失败(HTTP 4xx/5xx,响应体是合法 JSON 且带数值 code) 服务端的 code 原值 服务端的 msg/message 原文
网络异常,或响应体无法解析出业务码 -1 SDK 固定文案
项目关闭 / 项目切换(HTTP 400 + 40001/40002) -4 / -6 见上表

附录:常见服务端业务码

以下值仅供排查参考,不承诺随 SDK 或服务端版本保持稳定:

Code 含义
55004 业务参数无效,例如 App 的 Bundle Identifier 与 MA 数据源配置不匹配或未绑定、通道 AppKey 未在当前项目映射、channelId 在当前项目不存在;具体原因请结合 message 判断
55108 EUID 无效,例如 EUID 与 MA RID 不属于同一 MA 用户
55110 请求过于频繁,例如同一 AppPush RID 正在并发绑定,可稍后重试
55000 服务端系统错误

用户标识逐项结果

以下结果包含 SDK 本地校验与服务端返回,字段处理规则见 MTMAUserID 类:

Code 含义
0 该用户标识处理成功
3001 用户标识的值不能为空(服务端参考码;本版 SDK 的四个公开标识字段空值按未传处理,不产生逐字段 3001)
3002 用户标识未在当前项目中定义
3003 用户标识值超过限定长度
3013 用户标识值类型或格式不合法,包括非 NSString 类型
Icon Solid Transparent White Qiyu
联系销售