本文档详细说明了Push SDK可能出现的错误类型、错误码及其含义,并提供了相应的排查和解决建议,以帮助开发者快速定位和解决问题。
错误处理
调用
CloudPushSDK
的相关接口时,如果发生错误,可以从CallbackHandler
回调对象中获取错误码和错误描述等信息。CallbackHandler定义如下:
typedef void (^CallbackHandler)(CloudPushCallbackResult *res);
回调处理对象res包含3个成员字段:
success(接口调用是否成功),BOOL类型;
data(调用成功后返回相关数据),id类型;
error(错误信息描述),NSError类型;
错误类型详解
适用于v3及以上版本
1. 参数相关错误(1XXXX)
错误码 | 错误描述 | 可能原因 | 解决方案 |
10001 | 无效的应用标识(AppKey) | AppKey为空或格式错误 | 请从EMAS控制台获取正确的AppKey |
10002 | 无效的应用密钥(AppSecret) | AppSecret为空或格式错误 | 请从开发者控制台获取正确的AppSecret |
10003 | 无效的账户 | 账户参数为空或格式错误 | 检查账户参数是否正确 |
10004 | 无效的别名 | 别名参数为空或格式错误 | 检查别名参数是否正确 |
10005 | 非法的标签格式 | 标签超过128字符或为空 | 确保标签不超过128字符且不为空 |
10006 | 无效的标签目标 | 标签目标值错误 | 确保目标值为1(设备)、2(账号)或3(别名) |
10007 | 无效的角标数 | 角标数值超出范围 | 确保角标数在0~99999之间 |
10008 | 无效的设备令牌 | DeviceToken为空或格式错误 | 检查DeviceToken是否正确获取 |
10009 | 无效的实时活动启动令牌 | LiveActivityStartToken为空或格式错误 | 检查LiveActivityStartToken是否正确获取 |
10010 | 无效的实时活动推送令牌 | LiveActivityPushToken为空或格式错误 | 检查LiveActivityPushToken是否正确获取 |
10011 | 无效的实时活动数据模型 | LiveActivityAttributes名称错误或不存在 | 确保提供的是您在代码中定义的ActivityAttributes类名。例如:
|
10012 | 无效的实时活动状态 | LiveActivityState格式错误 | Live Activity只能处于以下4种状态之一:
|
10013 | 无效的实时活动ID | LiveActivityID格式错误 | Live Activity ID是系统生成的唯一标识符,用于标识特定的Live Activity实例。你需要通过activity对象获取id属性。 |
2. 请求相关错误(2xxxx)
错误码 | 错误描述 | 可能原因 | 解决方案 | ||||
20001 | 服务器错误 | 服务端处理异常 | 请根据下方服务器错误类型表进行处理,若不存在则联系技术支持。
| ||||
20002 | 网络连接错误 | 网络不可用或连接超时 | 检查网络连接是否正常 |
3. 设备相关错误(3xxxx)
错误码 | 错误描述 | 可能原因 | 解决方案 |
30001 | 设备初始化冲突 | SDK重复初始化 | 检查初始化流程,避免重复调用 |
30002 | 无效的设备标识 | 设备ID获取失败 | 重新启动SDK并重试 |
30003 | UTDID获取失败 | 设备唯一标识获取失败 | 请卸载重试或联系技术支持 |
30004 | 设备被列入黑名单 | 设备因异常行为被限制 | 联系技术支持解除限制 |
30005 | 设备UTDID冲突 | 设备唯一标识冲突 | 请卸载重试或联系技术支持 |
4. 未知错误(9xxxx)
错误码 | 错误描述 | 可能原因 | 解决方案 |
90001 | 内部错误 | SDK内部未知异常 | 请重试或联系技术支持 |
错误信息结构
当发生错误时,SDK会返回包含以下信息的NSError对象:
domain: com.aliyun.emas.pushsdk.error
code: 具体的错误码
userInfo: 包含详细错误信息的字典
NSLocalizedDescription: 错误描述
NSLocalizedRecoverySuggestion: 恢复建议
ErrorType: 错误类型
ErrorReason: 错误原因(可选)
ParamValue: 导致错误的参数值(可选)
ParamExpectedFormat: 参数期望格式(可选)
ServerError: 服务器端错误码(可选)
Request: 错误的请求(可选)
Response: 错误的响应(可选)
其他系统信息:
Timestamp: 错误发生时间
OSVersion: 系统版本
SdkState: SDK状态
SdkVersion: SDK版本
Utdid: 设备唯一标识
AppKey: 应用标识
技术支持
如果您在使用过程中遇到无法解决的问题,请联系我们的技术支持。
历史版本错误码定义
适用于v3以下版本
错误名称 | 错误码 | 错误描述 |
错误名称 | 错误码 | 错误描述 |
INIT_INVALID_APPKEY_CODE | 1011 | appKey配置错误。 |
INIT_INVALID_APPSECRET_CODE | 1012 | appSecret配置错误。 |
INIT_SESSION_FAILED_CODE | 1013 | session初始化失败。 |
INIT_AS_ERROR_CODE | 1014 | 连接AS错误,检查网络连接。 |
INIT_SID_ERROR_CODE | 1015 | sid获取失败。 |
INIT_ALREADY_INITED_CODE | 1017 | SDK已经完成初始化,请勿重复调用。 |
TAG_INPUT_INVALID_CODE | 2001 | 标签输入为空。 |
TAG_APPID_INVALID_CODE | 2002 | appId错误。 |
TAG_RPC_REQUEST_FAILED_CODE | 2003 | 标签请求错误。 |
ACCOUNT_INVALID_ACCOUNT_CODE | 3001 | account参数输入错误。 |
ACCOUNT_CHANNEL_CLOSED_CODE | 3002 | 推送通道关闭。 |
ACCOUNT_REQUEST_TIMEOUT_CODE | 3003 | 绑定账号请求超时。 |
ACCOUNT_ENCODER_STATUS_ERROR_CODE | 3004 | 绑定账号状态码错误。 |
ALIAS_INPUT_INVALID_CODE | 4001 | 别名输入为空。 |
VIP_REQ_HTTP_ERROR_CODE | 5001 | VIP请求状态码错误。 |
VIP_REQ_CONNECTION_ERROR_CODE | 5002 | VIP请求连接错误。 |
VIP_REQ_SERVER_ERROR_CODE | 5003 | VIP请求服务错误。 |
VIP_REQ_GERNERATE_PARAM_ERROR_CODE | 5004 | VIP参数生成错误。 |
OTHER_ERROR_INVLIAD_PARA_CODE | 6001 | 其他输入错误。 |
- 本页导读 (0)
- 错误处理
- 错误类型详解
- 1. 参数相关错误(1XXXX)
- 2. 请求相关错误(2xxxx)
- 3. 设备相关错误(3xxxx)
- 4. 未知错误(9xxxx)
- 错误信息结构
- 技术支持
- 历史版本错误码定义