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
聯繫銷售