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










