React Native SDK のトラブルシューティング
重要
Visual Studio App Center は、2025 年 3 月 31 日に廃止される予定です。 完全に廃止されるまで Visual Studio App Center を引き続き使用できますが、移行を検討できる推奨される代替手段がいくつかあります。
'React/RCTDefines.h' ファイルが見つかりません
このエラーは、RN コア ライブラリが正しく参照されていない場合に表示されます。これは、さまざまな種類の統合またはリンクの問題が原因で発生する可能性があります。 これは、多くの場合、プロジェクト内で静的ではなく、ポッドファイル内の相対パスを使用して依存関係をリンクしている場合に発生します。
このリンク スクリプトでは、問題を解決するために、ポッドをリンクする標準的な方法のみがサポートされています。
内の依存関係を
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>ライブラリ] を選択<し、次のファイルを削除します。>
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>ライブラリ] を選択<し、次のファイルを削除します。>
React Nativeリンク コマンドが認識されない
マシンにをインストールしている場合yarn
は、 react-native init {myapp}
ではなく npm
を使用してアプリを初期化し、依存関係をyarn
インストールします。 の実行時 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
パッケージで同じメジャー バージョンが使用されていることを確認します。 またはyarn
(必要な場合) でnpm install
更新します。プロジェクトの ios フォルダーに移動し、 Podfile.lock と Pods フォルダーを削除します。
ios フォルダーで を実行
pod install --repo-update
します。Podfile.lock に同じメジャー バージョンの依存関係が含まれていること
appcenter
を確認します。
React Native 0.60 未満
原因の 1 つは、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
そのエラーが表示された場合は、CocoaPods のpod
コマンドがシステムの PATH 環境変数で使用できることを確認してください。
CocoaPods のインストールを修正したら、ios フォルダーで を実行pod install
してプロジェクトを修正します。
React ネイティブ リンク中に、CocoaPods で AppCenterReactNativeShared の仕様が見つかりません
の間にreact-native link
次の CocoaPods エラー メッセージが表示される場合は、CocoaPods 仕様リポジトリのローカル クローン (~/.cocoapods/repos
コンピューター上) が最新ではない可能性があります。
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 を使用するには、次のように Gradle ファイルのリポジトリに を追加 mavenCentral()
する必要があります。
repositories {
google()
mavenCentral()
}
App Center シークレット値を保護する
app_secret
はアプリの識別子であり、トラフィックが適用されるアプリを知る必要があり、既存のデータを取得または編集するために使用できません。 app_secret
が公開されている場合、最も大きなリスクはアプリに不適切なデータを送信することですが、データのセキュリティには影響しません。
機密データを取得するには、クライアント側で生成されるアプリ/ユーザー トークンを指定する必要があります。 クライアント側のデータを完全にセキュリティで保護する方法はありません。
環境変数を使用してアプリ シークレットをコードに挿入することで、アプリのセキュリティを向上させることができます。 そうすることで、シークレットはコードに表示されません。