アプリはReact Native 0.35.0で正常に実行されました。 react-native-git-upgrade
を介して0.40.0に更新した後、XCodeでアプリをビルド/実行しようとすると、多くの字句/プリプロセッサの問題が発生します。
React/RCTBridgeModule.h' file not found
問題をクリックすると、これが強調表示されます:
#import <React/RCTBridgeModule.h>
検索パスの問題ではないようです。
Node_modulesを削除してnpm install
を再度実行しようとしましたが、何も修正されていません。
Th0thが指摘したように、iOSのRN 0.40には重大な変更があります。つまり、RNヘッダー宣言は、インクルードパス$(BUILT_PRODUCTS_DIR)/include/React
を指すように更新されます。
この問題を解決するには、次を実行する必要があります。
注:それらのネイティブの.hファイルを参照している他のライブラリ(react-native-fbsdkなど)でも同様のヘッダーの問題が発生する可能性があります。
反応ネイティブ0.40
#import "RCTBridgeModule.h"
を#import <React/RCTBridgeModule.h>
に置き換える必要があります
その後cleanおよびbuild it it。
0.40に重大な変更があります。詳細は こちら で確認できます。
リリースノートから直接引用:
つまり、すべてのiOSネイティブライブラリには、RN 0.40のメジャーバージョンバンプが必要です。この規模の変化を最小限に抑えるよう努めており、ご不便をおかけして申し訳ございません。
そのため、すべてのネイティブiOSライブラリは、react-nativeバージョン0.40との互換性を得る前に更新が必要になります。
同じ問題がありました。ビルドスキームからアプリのテストターゲットを削除することで解決しました。
この手順は私の問題の解決に役立ちました。 「ビルドの並列化のチェックを外す」手順を試しました。私にはうまくいきませんでした。
ポッドを使用している場合は、このソリューションを試すことができます。
ヘッダー検索パスに移動:Pods -> TARGETS -> (YOUR TARGET, like my target is RNGL) -> Build Settings -> All -> Search Paths -> Header Search Paths
パスを追加:"${PODS_ROOT}/Headers/Public/React"
非再帰的
アプリが大きくない場合は、
1) rename original app
2) create the same app again react-native init <orig_app_name>
3) copy over all necessary files from your original app to the newly created one
4) adjust the package.json
5) npm install
6) react-native run-<ios|Android>
新しいライブラリをリンクする場所を見つけるのに何時間も費やしましたが、それは少なくとも貴重な選択肢であり、ショートカットでした。
それが誰かを助けることを願って
これがどのように機能したかです:
#import '....h'
を対応する#import <React/.....h>
に置き換えました。から更新
に
クリーンとビルド。
私はそれをテストしていませんが、変更を加えずにクリーンアップしてビルドするだけでうまくいくと思います。
次からのパスの変更:
#import <React/RCTBridgeModule.h>
に:
#import <React/Base/RCTBridgeModule.h>
私のために働いた。