4

React Native で CocoaPods を使用すると、次のリンカー エラーが発生します。 ld: library not found for -lReact

https://facebook.github.io/react-native/docs/embedded-app-ios.html#contentのガイドに従いました

JUCE C++ プロジェクトである既存の iOS プロジェクトと統合しようとしています。JUCE は Xcode プロジェクト ファイルを生成するので、Cocoapods メソッドを使用する必要があると思います。

私がやっている手順は次のとおりです。

  • Introjucerプロジェクトから iOS ビルドを作成または保存する
  • npm install react-nativeプロジェクトのルートから実行します (.jucerファイルと一緒に)
  • ガイドに従ってPodfileを作成しますBuilds/iOS(ただし../../node_modules、パスとして)
  • 走るpod install
  • Xcode でワークスペースを開く
  • GCC_PREPROCESSOR_DEFINITIONS含めるように調整する$(inherited)
  • 建てる

この問題を示すサンプル プロジェクトは、https://github.com/adamski/juce-native-navigation/tree/react-native-cocoapodsにあります。

新しい Xcode プロジェクトでプロセス全体を試してみたところ、問題なくビルドできたので、Introjucer で生成されたプロジェクトで何かが起こっていると思います。

libReact.a「ライブラリとバイナリをリンクする」セクションにも追加しようとしましたが、それは役に立たなかったようです。

4

4 に答える 4

4

Introjucer で生成されたプロジェクトと Xcode で生成されたプロジェクトの違いを探しました。

大きな違いの 1 つは、CONFIGURATION_BUILD_DIR「構成ごとのビルド製品パス」です。

Xcodeで生成されたプロジェクトから設定をコピーしました $(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)

これにより、リンクが完了し、ビルドが成功しました:)

于 2016-01-16T21:55:41.347 に答える
1

一部の手順は不要であり、他の大きな問題が隠されているという懸念が生じる場合があります。具体的には:

adjust GCC_PREPROCESSOR_DEFINITIONS to include $(inherited)

つまり、スクリプトは魔法のpod installように機能するはずです。$(inherited)

構成のリセットは役に立ちますか?

于 2016-01-15T19:01:37.690 に答える
0

Project -> Your Target -> Build Settings -> Link Binary With Libraries に移動すると、ここで React ライブラリ ファイルを参照する赤いエントリが表示される場合があります。これらの赤いエントリを削除するだけで、準備完了です。

于 2016-01-19T09:12:09.583 に答える