React Native SDK のトラブルシューティング

重要

Visual Studio App Center は、2025 年 3 月 31 日に廃止される予定です。 完全に廃止されるまで Visual Studio App Center を引き続き使用できますが、移行を検討できる推奨される代替手段がいくつかあります。

サポートタイムラインと代替手段の詳細については、こちらを参照してください。

'React/RCTDefines.h' ファイルが見つかりません

このエラーは、RN コア ライブラリが正しく参照されていない場合に表示されます。これは、さまざまな種類の統合またはリンクの問題が原因で発生する可能性があります。 これは、多くの場合、プロジェクト内で静的ではなく、ポッドファイル内の相対パスを使用して依存関係をリンクしている場合に発生します。

このリンク スクリプトでは、問題を解決するために、ポッドをリンクする標準的な方法のみがサポートされています。

  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>ライブラリ] を選択<し、次のファイルを削除します。>
      • 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} ではなく npmを使用してアプリを初期化し、依存関係をyarnインストールします。 の実行時 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 パッケージで同じメジャー バージョンが使用されていることを確認します。 または yarn (必要な場合) でnpm install更新します。

  2. プロジェクトの ios フォルダーに移動し、 Podfile.lockPods フォルダーを削除します。

  3. ios フォルダーで を実行pod install --repo-updateします。

  4. 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

そのエラーが表示された場合は、CocoaPodspodコマンドがシステムの PATH 環境変数で使用できることを確認してください。

CocoaPods のインストールを修正したら、ios フォルダーで を実行pod installしてプロジェクトを修正します。

の間に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更新する

  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 を使用するには、次のように Gradle ファイルのリポジトリに を追加 mavenCentral() する必要があります。

repositories {
   google()
   mavenCentral()
}

App Center シークレット値を保護する

app_secretはアプリの識別子であり、トラフィックが適用されるアプリを知る必要があり、既存のデータを取得または編集するために使用できません。 app_secretが公開されている場合、最も大きなリスクはアプリに不適切なデータを送信することですが、データのセキュリティには影響しません。

機密データを取得するには、クライアント側で生成されるアプリ/ユーザー トークンを指定する必要があります。 クライアント側のデータを完全にセキュリティで保護する方法はありません。

環境変数を使用してアプリ シークレットをコードに挿入することで、アプリのセキュリティを向上させることができます。 そうすることで、シークレットはコードに表示されません。