共用方式為


iOS SDK 疑難解答

這很重要

Visual Studio App Center 於 2025 年 3 月 31 日淘汰,但分析和診斷功能除外,這些功能將持續支援到 2026 年 6 月 30 日。 瞭解更多資訊。

安裝期間的問題

  1. 在控制台中,尋找訊息為「App Center SDK 已成功設定」的 Assert 日誌記錄。 訊息表示 SDK 已成功設定。
  2. 如果您使用 Cocoapods 在 iOS 應用程式中整合 App Center,並出現錯誤訊息 - CocoaPods - Unable to find a specification for AppCenter請執行 pod repo update 以更新本機 Cocoapods 存放庫,然後再執行 pod install 一次。
  3. 如果您使用 CocoaPods 在 iOS 應用程式中整合 App Center,而在專案編譯時,您遇到錯誤訊息 - framework not found AppCenter.xcframework 則您必須執行 [sudo] gem install cocoapods,將 Cocoapods 更新(重新安裝) 至晚期版本。
  4. 如果您要手動整合 SDK 二進位檔,請確定您已啟用項目的模組。

分析數據不會顯示在入口網站中

  1. 請確定您已正確整合 SDK 模組。

  2. 請確保包含正確的應用程式秘密以及 start:withServices: 方法呼叫。 您可以在入口網站中開啟應用程式並流覽至 start:withServices:] 頁面,以複製確切的程序代碼。

  3. 如果您想要查看傳送至後端的記錄,請將記錄層級變更為應用程式中 的 Verbose 。 SDK 接著會在 主控台中列印記錄。 在 SDK 啟動之前插入下列呼叫:

    [MSACAppCenter setLogLevel:MSACLogLevelVerbose]
    
    AppCenter.logLevel = .verbose
    

    請確定記錄中出現「已成功設定 App Center SDK」( 在 INFO 記錄層級),然後檢查您是否看到 HTTPS 要求記錄。

  4. 請確定您的裝置已上線。

  5. 有時候,記錄可能需要幾分鐘的時間才會出現在入口網站中。 如果情況如此,請稍候一段時間。

  6. 若要檢查 App Center 後端是否已收到您的數據,請移至 Analytics 服務中的 [記錄流程] 區段。 事件傳送後應立即出現。

當機未顯示在入口網站中

  1. 請確定您已正確整合 SDK 模組。

  2. 請確定包含正確的應用程式密碼以及 start:withServices: 方法呼叫。 您可以在入口網站中開啟應用程式並流覽至 start:withServices:] 頁面,以複製確切的程序代碼。

  3. App Center 當機 會在應用程式重新啟動後才傳送當機記錄檔。 此外,如果您附加至調試程式,SDK 將不會轉送任何當機記錄。 當應用程式當機時,請確保偵錯工具未被附加。

  4. 如果您想要查看傳送至後端的記錄,請將記錄層級變更為應用程式中 的 Verbose 。 SDK 接著會在 主控台中列印記錄。 在 SDK 啟動之前插入下列呼叫:

    [MSACAppCenter setLogLevel:MSACLogLevelVerbose]
    
    AppCenter.logLevel = .verbose
    

    請確定記錄中出現「已成功設定 App Center SDK」( 在 INFO 記錄層級),然後檢查您是否看到 HTTPS 要求記錄。

  5. 請勿使用任何其他提供崩潰報告功能的函式庫。 您只能在應用程式中整合一個當機報告 SDK。

  6. 請確定您的裝置已上線。

  7. 有時,記錄可能需要幾分鐘的時間才會出現在入口網站中。 如果情況如此,請稍候一段時間。

  8. 檢查 SDK 是否偵測到下一個應用程式啟動時當機。 您可以呼叫 API 來檢查應用程式是否在最後一個工作階段中當機,並顯示警示。 或者,您可以擴充當機 didSucceedSendingErrorReport 回呼,以查看它是否已成功傳送至伺服器。

  9. 若要檢查 App Center 後端是否收到當機,請移至 Analytics 服務中的 [記錄流程] 區段。 您的當機一旦被傳送,就會出現在那裡。

提示使用者更新的警示不包含字串,而僅包含其鍵值。

這表示 AppCenterDistributeResources.bundle 未將 新增至專案。 請確定您已將檔案放入 Xcode 專案中,且該檔案會出現在應用程式的 Copy Bundle Resources 建置階段。 如果您透過拖放新增檔案,它應該會出現在該處 – Xcode 會自動為您執行此動作。 如果檔案從建置階段遺失,請加以新增,使其編譯為應用程式的套件組合。

如果您使用Cocoapods,則會自動處理資源。 請嘗試重新安裝Pod。

您會在控制台中看到訊息,指出無法開啟資料庫

從 iOS SDK 0.11.0 版開始,App Center 會先使用 SQLite 來保存記錄,再將其傳送至後端。 如果您要將應用程式與自己的 SQLite 連結庫結合,而不是使用 OS 所提供的連結庫,您可能會在控制台 [AppCenter] ERROR: -[MSACDBStorage executeSelectionQuery:]/147 Failed to open database 中看到類似這樣的錯誤,而且不會在後端看到任何分析或損毀資訊。 將 SDK 更新為 0.13.0 版或更新版本。

發布和應用內更新會封鎖我的自動化使用者介面測試

如果已啟用應用程式內更新,則會封鎖您的自動化UI測試。 更新程式會嘗試對 App Center 後端進行驗證。 建議您不要為 UI 測試目標啟用 App Center Distribute。

為什麼 SDK 會以「靜態連結庫」的形式散發

App Center SDK 的主要設計目標是使用 App Center 對應用程式產生最小影響,並具有模組化的 SDK。 這將導致 SDK 分散為數個動態連結共享函式庫。

不過,App Center 會以靜態連結的共享連結庫的形式散發,該連結庫會包裝在「fat」假架構中。 這表示 SDK 會在 編譯階段 連結,而不是在啟動時連結,以提升效能。 載入多個動態連結共享連結庫需要時間。

Apple 建議在 WWDC 會議上,將應用程式的啟動時間優化到不超過 400 毫秒。 他們特別建議使用靜態共享庫而不是動態共享庫來達成此目標。 將 App Center SDK for iOS 發佈為靜態連結的共用連結庫,遵循 Apple 的建議,為包含 SDK 的應用程式提供最佳效能和最小影響。

若要深入瞭解靜態連結的共享庫與動態連結的共享庫,我們建議參考 Apple 提供的主題文件

為什麼 SDK 二進位檔這麼大? 我擔心應用程式的大小

AppCenter 二進位檔以「fat」(多架構)框架的形式散發,其中包含了所有 iPhone 架構和 iPhone 模擬器的內容。 這就是為什麼下載 AppCenter.framework 的大小是 10.5 MB。

SDK 二進位檔的編譯大小會遠比您在 Xcode 中新增至應用程式的檔案小。 也請記住,發行版本會比偵錯版本小。

為了說明這一點,我們建立了具有 Xcode 9.2 的空白 Objective-C 應用程式、將 App Center 二進位檔新增至應用程式,並將發行組建發佈至執行 iOS 11.3 的 iPhone 7。

我們執行的測試 未啟用 Bitcode ,且未使用 應用程式精簡。 您可以使用這些技術來壓縮應用程式的二進位大小。

下列數位可能會有所不同,並視您的組建設定而定,因此請考慮其為粗略指南。 也就是說,將 App Center SDK 新增至您的應用程式對應用程式二進位檔大小的影響最小。

使用的 App Center 模組 導出的 IPA 大小 安裝大小
沒有 (空白應用程式) 24 KB 132 KB
App Center 分析 120 KB 377 KB
App Center 當機 239 KB 705 KB
App Center 發佈 163 KB 528 KB
所有 App Center 模組 314 KB 930 KB

保護 App Center 機密值

app_secret是應用程式的標識碼,必須知道流量套用到哪個應用程式,而且無法用來擷取或編輯現有數據。 如果您的app_secret被曝露,最大的風險是將錯誤資料傳送至您的應用程式,但是不會影響資料的安全性。

若要擷取任何敏感數據,您必須提供用戶端上產生的應用程式/使用者 令牌。 無法讓客戶端上的數據完全安全。

您可以使用環境變數將應用程式秘密插入程式碼,以改善應用程式的安全性。 如此一來,您的程式代碼中就看不到秘密。