React Native SDK 疑難解答
重要
Visual Studio App Center 已排定於 2025 年 3 月 31 日淘汰。 雖然您可以繼續使用 Visual Studio App Center,直到它完全淘汰為止,但有數個建議您考慮移轉至的建議替代方案。
找不到 『React/RCTDefines.h' 檔案
當 RN 核心連結庫未正確參考時,就會出現此錯誤,可能是因為不同類型的整合或鏈接問題所造成。 當您在 Podfile 中使用相對路徑連結相依性時,通常會發生此情況,而不是以靜態方式在項目中連結。
我們的連結文本僅支持連結 Pod 的標準方式,因此若要解決問題:
將中的
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'
從
iOS
資料夾執行pod install
。在 AppDelegate.m 內,取代匯入:
之前:
#import <AppCenterReactNative/AppCenterReactNative.h> #import <AppCenterReactNativeAnalytics/AppCenterReactNativeAnalytics.h> #import <AppCenterReactNativeCrashes/AppCenterReactNativeCrashes.h>
之後:
#import "AppCenterReactNative.h" #import "AppCenterReactNativeAnalytics.h" #import "AppCenterReactNativeCrashes.h"
從專案移除 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
- 選取 <[YOUR_APP> ->Library ],然後移除下一個檔案:
無法辨識 React Native 連結命令
如果您已安裝 yarn
在電腦上, react-native init {myapp}
將會使用 yarn
來初始化您的應用程式並安裝相依性,而不是 npm
。 如果您在執行 react-native link
時看到下列錯誤訊息,則可能是安裝 App Center 相依性npm install {package}
,而不是yarn add {package}
在npm
yarn
安裝期間進行混合。
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 中的重大變更,所以主要套件版本之間的衝突。
請確定所有
appcenter
套件都使用相同的主要版本。 視需要使用npm install
或yarn
更新它們。移至專案的 ios 資料夾,然後移除 Podfile.lock 和 Pods 資料夾。
在 ios 資料夾中執行
pod install --repo-update
。確認 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
以修正您的專案。
CocoaPods 在 react 原生連結期間找不到 AppCenterReactNativeShared 的規格
如果您在 期間 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
開啟 Podfile 並取代下列這一行上的 App Center 相依性:
use_native_modules!
執行以下命令:
pod repo update
如何將 React Native SDK 更新為最新版本
如果您已將 SDK 整合到您的應用程式,並想要升級至較新版本的 SDK,請遵循下列步驟進行升級:
npm uninstall --save appcenter appcenter-analytics appcenter-crashes
卸載舊的 App Center 套件。npm install --save-exact appcenter appcenter-analytics appcenter-crashes
安裝最新的 App Center 套件。pod repo update
確定您的 CocoaPods 規格存放庫是最新的。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
最大的風險是將數據傳送到您的應用程式,但不會影響數據的安全性。
若要擷取任何敏感數據,您必須提供用戶端產生的應用程式/使用者 令牌。 沒有任何方法可讓用戶端上的數據完全安全。
您可以使用環境變數將應用程式秘密插入程式碼,以改善應用程式的安全性。 如此一來,您的程序代碼中看不到秘密。