「RCTBundleURLProvider.h」ファイルが見つかりません-AppDelegate.m


124

XCodeでReact Nativeアプリを実行しようとしていますが、このエラーが発生し続けます。問題を解決する方法がわかりません。助言がありますか?

XCodeのエラーのスクリーンショット:

スクリーンショット


変更を適用する前に、プロジェクトをクリーンアップして実行してみることをお勧めします。私の場合も同じことが起こるからです。プロジェクトをクリーンアップして実行するだけで機能します。
— bittu 2018年

あなたは間違いなく正しい答えを変えるべきです!@markの答えは正しいものであり、誰もがそれに来る。
— SerdarDeğirmenci19年

回答:


64

ノードモジュールを削除し、実行npm install(またはより適切な方法)を実行react-native upgradeし、すべてのダウンロードが完了したら実行します。これにより、元の依存関係を反応ネイティブに再リンクすることにより、古いファイルをテンプレートファイルに置き換えるオプションが提供されます。あなたの問題を修正する必要があります。もちろん、Xcodeでプロジェクトをクリーンアップすることを忘れないでください。


5
競合が自動的に解決されるため、Gitに基づく新しいアップグレードツールを使用できます。「npm install -g react-native-git-upgrade」、「react-native-git-upgrade」の順に実行します。
— bitand

2
私は提案に従いましたが、いやです。反応ネイティブのバージョン0.41.2を持っています。バージョン0.41.2でこれを修正できる人はいますか?ありがとう。
— joemalski 2017

2
これもうまくいきませんでした。xcode 8.2.1を使用してネイティブ0.41.2を反応させる
— Terry Ray

1
私はこれを試しました、そしてそれはいくつかの重要なプロジェクト設定を吹き飛ばしました。アクション拡張機能をreact-native upgradeビルドしています。実行した後、すべてのビルド設定が削除されました。
— シェーンOサリバン

1
「yarn.lockを削除」ファイルを追加して、「npm install」を使用できるようにします
— user1709076

247

xcode Product-> Scheme-> Manage Schemesターゲットで「+」をクリックして「React」を選択し、Reactが共有されるように設定します。


10
「+」を押すと、選択する「React」がありません。ダイアログに「ターゲット:MyApp」と名前:MyAppが表示されます。何も反応または共有されていません
— Pete Alvin

これは、xcworkspaceファイルを作成するcocopodsをインストールした後に起こりました。既存のxcodeprojにはオプションとして「React」がありませんでしたが、xcworkspaceにはありました。
— AdamG 2017年

@PeteAlvinを実行すると、 "npm install -g react-native-git-upgrade"に続いて "react-native-git-upgrade"が実行され、反応オプションが表示されました
— Paul Fitzgerald

1
そのビルドを実行した後、ビルドは成功しましたが、その後XcodeでRunがアクティブではありません
— Lucky_girl

トンありがとう。なぜこれが受け入れられない解決策なのかしら。
— Gaurav Grover

19

それらすべてがReact Native 0.40.0以降を使用しているため、ヘッダーインポートはRN 0.40.0から大幅に変更され、多くの.hファイルが見つからないというエラーが発生します。react-native-git-upgradeデバッグ中の問題を修正しましたが、リリース/アーカイブでビルドが失敗します。

cocoapodsとXcode 8.2.1でRN 0.42.3を使用しています

これを完全に修正するには、Xcode> Product> Scheme> Edit Scheme>に移動します

  1. ビルドの並列化のチェックを外します ここに画像の説明を入力してください
  2. ターゲットの+ボタンをクリックして、Reactを追加します。 ここに画像の説明を入力してください
  3. 追加したReactをターゲットのリストの一番上にドラッグします。 ここに画像の説明を入力してください

プロジェクトをクリーンアップしてビルドします


4
これは私のために修正されませんでした、v.0.44.0を反応させてください
— Justus Eapen 2017

17

他の提案はどれも私のエラーを修正していませんでしたが、これはそれを行いました。

1-Podfileを作成する

ios/Podfile次の内容で、react-nativeアプリ内にという名前のファイルを作成します。

# You Podfile should look similar to this file. React Native currently does not support use_frameworks!
source 'https://github.com/CocoaPods/Specs.git'

platform :ios, '8.0'

target '<YOUR_APP_NAME>' do
  # Fixes required for pod specs to work with rn 0.42
  react_native_path = "../node_modules/react-native"
  pod "Yoga", :path => "#{react_native_path}/ReactCommon/yoga"
  pod "React", :path => react_native_path, :subspecs => [
    'Core',
    'RCTActionSheet',
    'RCTAnimation',
    'RCTGeolocation',
    'RCTImage',
    'RCTLinkingIOS',
    'RCTNetwork',
    'RCTSettings',
    'RCTText',
    'RCTVibration',
    'RCTWebSocket'
  ]

  pod 'GoogleMaps'  # <~~ remove this line if you do not want to support GoogleMaps on iOS

# when not using frameworks  we can do this instead of including the source files in our project (1/4):
#  pod 'react-native-maps', path: '../../'
#  pod 'react-native-google-maps', path: '../../'  # <~~ if you need GoogleMaps support on iOS
end

2-Podfileをインストールする

pod installiosフォルダー内からコマンドを実行します。

3-XCodeのリセット

XCodeを再起動すると、エラーは発生しなくなります。


これはある程度問題を解決します。しかし、私が見つけたのは、新しい構成はビルド順序を尊重していないようで、カスタムスクリプトを取り込んでいないようです。これは基本的に、react-nativeまたはreact-native + xcode
— prog_24

9

XCodeでReactビルドを最初に実行した後でこの問題に遭遇しました。実際にビルドして実行し、エラーを解消しました(チームと適切なプロビジョニングを選択した後)。XCodeは、最初にコンパイルしてリンクするまで、実際にはエラーではないエラーを表示することがあります。


私も。奇妙なことですが、ビルドしてデバッグするだけで、エラーが消えました。理由はわかりません。
— Zhang Buzz 2017年

@PaulFitzgerald-何のライセンス?私は何かをライセンスする必要があったとは思わない...
— Dave Cole

8

私のために働く解決策は共有することです Reactスキームすることです。

Reactスキームがない場合は、で新しいスキームを作成しSelecting scheme menu -> Manage Scheme -> + -> choose React、ReactスキームをSharedとしてマークします

ここに画像の説明を入力してください

ここに画像の説明を入力してください ここに画像の説明を入力してください

また、Xcode 10を使用する場合は、File -> Project Settingsレガシービルドシステムに移動して選択します

ここに画像の説明を入力してください


1
ありがとうございました!私が考えるiOSとAndroidのネイティブ開発と使用されるツールの知識がなければ、この種の問題を修正するのは難しい場合があります。
— qasimalbaqali 2018年

1
@ onmyway133私はもっとあなたの答えに賛成票を投じることができればいいのに!ありがとう
— Mohammad Abbas

7

私は次の手順でこの問題を解決しました:

  1. xcodeでプロジェクトルートを選択します。
  2. React.xcodeprojからLibrariesプロジェクトのルートにドラッグします。
  3. プロジェクト名(私の場合はname SaleKit)をクリックします。TARGETS
  4. 選ぶ Build Phases
  5. Target Dependencies追加のドロップダウンReact
  6. 再構築または再実行

ここに画像の説明を入力してください


1
これは私のために働いた!私はreact-native-schemes-managerを使用しているため、これを追加するまで構築されなかったのは私のステージングスキーマでした。以前は数か月間機能していましたが、新しいクローンを作成した後は突然機能しなくなりました。package.jsonのNPM範囲が多すぎると思われます。

React.xcodeprojをLibrariesフォルダーからドラッグする必要なく、私にとってはうまくいきました。
— ErmannoS

6

私のReactNative "0.54.2"の場合、私は次の解決策でそれを解決しました

Xcode selectでProduct->Scheme->Manage Schemes、 'YourProject'-tvOSのチェックを外し、共有しないように設定します。


1
その動作は私にとって、反応ネイティブのバージョン:0.55.4。ありがとう
— Adarsh

1
私のために働いた!以前にtvOSターゲットを削除し、スキームとして削除するのを忘れました!=> RN 0.56
— BigPun86 2018

4

最適なソリューション:

Xcodeでプロジェクトの「ビルド設定」を開き、「ヘッダー検索パス」を検索します。

「ヘッダー検索パス」の横をダブルクリックします。他のプロパティには「はい」または「いいえ」があります。

次に、「ビルド設定の下の」「ヘッダー検索パス」に以下を追加します。

$(SRCROOT)/../node_modules/react-native/React
$(SRCROOT)/../node_modules/react-native/React/Base

両方を再帰的にすることを忘れないでください。


3

npm installプロジェクトディレクトリで実行して、react-nativeこのエラーの解決をインストールします。


3

あなたは走っているかもしれません .xcodeprojポッドのインストール後にファイルをます。

それを閉じて.xcworkspaceファイルを開きます。それは私のために働いた。


2

私が実行するプロジェクトのベースディレクトリで:

node_modules/react-native/packager/packager.sh --reset-cache

その結果:

Scanning 554 folders for symlinks in /Users/..../work/..../react_tutorial/AwesomeProject/node_modules (15ms)
 ┌────────────────────────────────────────────────────────────────────────────┐
 │  Running packager on port 8081.                                            │
 │                                                                            │
 │  Keep this packager running while developing on any JS projects. Feel      │
 │  free to close this tab and run your own packager instance if you          │
 │  prefer.                                                                   │
 │                                                                            │
 │  https://github.com/facebook/react-native                                  │
 │                                                                            │
 └────────────────────────────────────────────────────────────────────────────┘
Looking for JS files in
   /Users/..../work/...../react_tutorial/AwesomeProject

Loading dependency graph... ERROR  Packager can't listen on port 8081
Most likely another process is already using this port
Run the following command to find out which process:

lsof -i :8081

別のパッケージャプロセスが実行されていると、パッケージマネージャーを実行できないことがわかりました。

私は次で実行されているプロセスを見つけました:

lsof -i :8081

私より kill 9 ...プロセス。

Xcodeを閉じた後、次を実行:

npm install

そして、Xcodeを再び起動し、この瞬間からすべてが期待どおりに動作します!!


2

私は同じ問題を抱えていたので、RNFIRMessaging.hをReact / RCTBundleURLProvider.hの上に配置して修正しました

だから私は次のようになります:

#import "AppDelegate.h"
#import "RNFIRMessaging.h"

#import <React/RCTBundleURLProvider.h>
#import <React/RCTRootView.h>

2

以下を試してください:

  1. クリーン(cmd+ shift+K)。
  2. コアReactをビルドする-XcodeでスキームとしてReactを選択してビルドします(cmd+B)。
  3. 失敗しているライブラリ(RCTTextなど)をビルドします。
  4. アプリを作成します。

1
どのようにしてライブラリを正確に構築しますか?
— AlxVallejo

2

「製品」->「スキーム」->「スキームの管理」->「+」をクリックします。共有として反応を追加します。また、プロジェクト名もそこにあることを確認してください。


1

私は同じ問題に直面しました。その後、ノードを削除しました。これらの手順を使用してみてください

  1. node_modulesフォルダーを削除します-rm -rf node_modules && npm install
  2. パッケージャキャッシュのリセット-rm -fr $ TMPDIR / react- *またはnode_modules / react-native / packager / packager.sh --reset-cache
  3. クリアウォッチマンウォッチ-ウォ​​ッチマンウォッチデルオール

その後、ビルドして見てください


うん私はまた、反応ネイティブバージョン0.41.2でもこれを試しましたが、まだうまくいきません...入力はありますか?ありがとう。
— joemalski 2017

1

Reactをアップグレードした後のこの問題に対する私の修正は、宣言を#import "RCTBundleURLProvider.h"to に変更することでした。#import <React/RCTBundleURLProvider.h>


1

私にとって交換

#import <React/RCTBundleURLProvider.h>
#import <React/RCTRootView.h>

沿って

#import <RCTBundleURLProvider.h>
#import <RCTRootView.h>

AppDelegate.mファイルで動作しました。



0

私はすべての提案を試しましたが、リポジトリを削除してそれを再度クローンしてそれが私のために働くのでそれらのどれもうまくいきませんでしたので、私の提案はあなたの変更をコミットし、私のために働いたリポジトリをもう一度クローンすることです。


0

上記のすべての答えを調べました。

ここに私のために働いた解決策があります:

ステップ1:

実行:

npm install react-native-fcm --save 

この結果、プロジェクトのディレクトリがnode_modules> react-native-fcmの下に作成されます

プロジェクトにreact-native-fcmを追加する

ステップ2:

'$(SRCROOT)/../node_modules/react-native-fcm/ios'ビルド設定でヘッダー検索パスを追加する必要があります。

ヘッダー検索パスに追加

これらの2つの手順は、私がエラーを取り除くのに役立ちました。

詳細については、次のリンクを参照してください。

https://github.com/evollu/react-native-fcm/issues/63

https://github.com/evollu/react-native-fcm/issues/21


0

私の場合、node_modulesを削除して再インストールすることはできませんでした。また、それができなかったreact-native-git-updgradeかreact-native upgrade、.60が依存関係に問題を引き起こすため、RN-0.59に留まることを望んでいたためです。

とにかく、私の状況は、「React / RCTBundleURLProvider.h」ファイルが見つからないことでした。私はすでにスキーマでReactを使用できました。それは私のライブラリディレクトリにありませんでした。ターゲットのビルド設定を確認しました。

ターゲットの依存関係の中で、Reactもそこにありました。

「React」ターゲット依存関係を削除してから、再度追加しました。クリーンアップされたビルドフォルダ、再構築されたプロジェクト。出来た。


わからないことは重要、しかしにタイプミスがあります:反応-ネイティブのgit-updgrade
— ジョシュ・

0

React Native 0.61を使用しています。共有拡張機能を作成したところ、このエラーが発生しました。交換する必要がありました:

#import "RCTBundleURLProvider.h"

と

#import "React/RCTBundleURLProvider.h"


-2

プロジェクトへのパスにスペースが含まれていないことを確認してください。フォルダーの名前を変更してスペースを削除するだけで問題は解決します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.