共用方式為


React Native SDK 疑難解答

重要

Visual Studio App Center 已排定於 2025 年 3 月 31 日淘汰。 雖然您可以繼續使用 Visual Studio App Center,直到它完全淘汰為止,但有數個建議您考慮移轉至的建議替代方案。

深入瞭解支持時程表和替代方案。

找不到 『React/RCTDefines.h' 檔案

當 RN 核心連結庫未正確參考時,就會出現此錯誤,可能是因為不同類型的整合或鏈接問題所造成。 當您在 Podfile 中使用相對路徑連結相依性時,通常會發生此情況,而不是以靜態方式在項目中連結。

我們的連結文本僅支持連結 Pod 的標準方式,因此若要解決問題:

  1. 將中的 Podfile 相依性取代為相對連結路徑:

    之前:

    pod 'AppCenter/Analytics', '~> 1.14.0'
    pod 'AppCenter/Crashes', '~> 1.14.0'
    pod 'AppCenterReactNativeShared', '~> 1.13.0'
    

    之後:

    pod 'appcenter', path: '../node_modules/appcenter/ios'
    pod 'appcenter-analytics', path: '../node_modules/appcenter-analytics/ios'
    pod 'appcenter-crashes', path: '../node_modules/appcenter-crashes/ios'
    
  2. iOS資料夾執行pod install

  3. AppDelegate.m 內,取代匯入:

    之前:

    #import <AppCenterReactNative/AppCenterReactNative.h>
    #import <AppCenterReactNativeAnalytics/AppCenterReactNativeAnalytics.h>
    #import <AppCenterReactNativeCrashes/AppCenterReactNativeCrashes.h>
    

    之後:

    #import "AppCenterReactNative.h"
    #import "AppCenterReactNativeAnalytics.h"
    #import "AppCenterReactNativeCrashes.h"
    
  4. 從專案移除 AppCenter 相依性 (以滑鼠右鍵按兩下相依性 [移除相依 > 性]) 。

    • 選取 <[YOUR_APP> ->Library ],然後移除下一個檔案:
      • AppCenterReactNative.xcodeproj
      • AppCenterReactNativeAnalytics.xcodeproj
      • AppCenterReactNativeCrashes.xcodeproj
    • 開啟您的項目設定,然後在 [鏈接架構與連結庫] 區段中的 [一般] 索引標籤下,移除上一個步驟中已移除之目標連結庫的新專案:
      • libAppCenterReactNative.a
      • libAppCenterReactNativeAnalytics.a
      • libAppCenterReactNativeCrashes.a
    • 修改標頭搜尋路徑,以從AppCenter React Native外掛程式專案中移除標頭。 開啟您的項目設定,然後在 [標頭搜尋路徑] 區段中的 [建置設定] 索引卷標下,移除頭檔下列位置:
      • $(SRCROOT)/../node_modules/appcenter/ios/AppCenterReactNative
      • $(SRCROOT)/../node_modules/appcenter-analytics/ios/AppCenterReactNativeAnalytics
      • $(SRCROOT)/../node_modules/appcenter-crashes/ios/AppCenterReactNativeCrashes

如果您已安裝 yarn 在電腦上, react-native init {myapp} 將會使用 yarn 來初始化您的應用程式並安裝相依性,而不是 npm。 如果您在執行 react-native link時看到下列錯誤訊息,則可能是安裝 App Center 相依性npm install {package},而不是yarn add {package}npmyarn安裝期間進行混合。

Command `link` unrecognized. Make sure that you have run `npm install` and that you are inside a react-native project.

在此情況下,請執行 npm install 並再試 react-native link 一次。

找不到 'AppCenterCrashes/MSACErrorReport.h' 檔案之類的建置錯誤

React-Native 0.60 和更新版本

可能是因為 Apple SDK 中的重大變更所以主要套件版本之間的衝突。

  1. 請確定所有 appcenter 套件都使用相同的主要版本。 視需要使用 npm installyarn 更新它們。

  2. 移至專案的 ios 資料夾,然後移除 Podfile.lockPods 資料夾。

  3. ios 資料夾中執行pod install --repo-update

  4. 確認 Podfile.lock 包含 appcenter 相同主要版本的相依性。

React Native 低於0.60

其中一個可能的原因是在未安裝 CocoaPods 的情況下執行react-native link

若要確認原因,請在記錄中執行 react-native link,並在記錄中檢查下列這一行:

Could not configure AppCenter for iOS. Error Reason - spawn pod ENOENT

這一行位於記錄的下列區段:

Added code to initialize iOS AppCenter SDK in ios/TestApp/AppDelegate.m
Installing Cocoapods dependencies...
Could not configure AppCenter for iOS. Error Reason - spawn pod ENOENT
rnpm-install info Platform 'ios' module appcenter-analytics is already linked
rnpm-install info Platform 'android' module appcenter-analytics is already linked

如果您看到此錯誤,請確定 pod 來自 CocoaPods 的命令可在系統的 PATH 環境變數中使用。

修正 CocoaPods 安裝之後,請在 ios 資料夾中執行 pod install 以修正您的專案。

如果您在 期間 react-native link看到下列 CocoaPods 錯誤訊息,您的本機複製 (可能位於您的電腦上, ~/.cocoapods/repos) CocoaPods 規格存放庫 不是最新狀態。

Analyzing dependencies [!] Unable to find a specification for AppCenterReactNativeShared (~> {version})

執行 pod repo update 以更新規格存放庫,然後再試 react-native link 一次。 如需 CocoaPods 命令的詳細資訊,請參閱 CocoaPods 命令行參考

如何使用App Center SDK 將應用程式從 React Native 0.59升級至0.60

若要將 React Native 升級至 0.60.0 版,請使用下列命令:

react-native upgrade 0.60.0

注意

如果在升級期間收到此錯誤 Command failed: git status -s fatal: not a git repository (or any of the parent directories): .git,請執行後續步驟:

git init
git add .
git commit -m "Upgrade react-native"

完成升級之後,您可以移除 .git 目錄。

更新 iOS React Native

  1. 開啟 Podfile 並取代下列這一行上的 App Center 相依性:

    use_native_modules!
    
  2. 執行以下命令:

    pod repo update
    

如何將 React Native SDK 更新為最新版本

如果您已將 SDK 整合到您的應用程式,並想要升級至較新版本的 SDK,請遵循下列步驟進行升級:

  1. npm uninstall --save appcenter appcenter-analytics appcenter-crashes 卸載舊的 App Center 套件。

  2. npm install --save-exact appcenter appcenter-analytics appcenter-crashes 安裝最新的 App Center 套件。

  3. pod repo update 確定您的 CocoaPods 規格存放庫是最新的。

  4. react-native link.

提示

如果您在 期間react-native link看到類似下列 CocoaPods 錯誤訊息的錯誤訊息,請刪除 ios 資料夾中自動產生的 Podfile.lock,然後再執行react-native link一次。

[!] Unable to satisfy the following requirements:

- `AppCenter/Core (= 1.0.0)` required by `Podfile.lock`
- `AppCenter/Core (= 1.0.0)` required by `AppCenter/Crashes (1.0.0)`
- `AppCenter/Core (= 1.0.0)` required by `AppCenter/Analytics (1.0.0)`
- `AppCenter/Core (= 1.0.1)` required by `AppCenterReactNativeShared (1.0.1)`

從 jCenter 移轉至 Maven Central

由於 jCenter 支援終止, 我們的所有元件都已移至 Maven Central 存放庫。 若要使用 App Center,您必須將 新增 mavenCentral() 至 Gradle 檔案中的存放庫,如下所示:

repositories {
   google()
   mavenCentral()
}

保護App Center秘密值

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

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

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