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 类型 |










