web-dev-qa-db-ja.com

字句またはプリプロセッサの問題「FacebookSDK / FacebookSDK.h」ファイルが見つかりません

このドキュメントを通じてiOSプロジェクトにfacebookSDK.frameworkを追加するだけです: iOS用Facebook SDKの開始方法

Xcodeプロジェクトをビルドして、実行することに成功しました。しかし、ソースコードをコピーして別のPCで実行すると、「レキシカルまたはプリプロセッサの問題「FacebookSDK/FacebookSDK.h」ファイルが見つかりません」というエラーが発生します

また、プロジェクトのリソースにfacebookSDK.frameworkを追加し、再試行しましたが、解決しませんでした。

それで、このプロジェクトを別の場所で実行する方法を教えてください。

19

私は非常に似た問題を抱えていますが、私の場合はFacebook SDKではなくAmazon Web Services SDKを使用しています。私にとって、問題はフレームワークのロードパスに関連していることが判明しました。

ソリューション: Xcodeの「ビルド設定」に移動し、「検索パス」の下に「フレームワーク検索パス」アイテムがあります。それをダブルクリックして、新しい検索パスを追加します:.そして再帰的にします。きれいにしてビルドします。

これは、フレームワークがプロジェクトディレクトリ内のどこかに保存されていることを前提としています。そうでない場合は、必要に応じて新しい検索パスを変更します。

31
sffc

私はこの問題を抱えており、これを行うことで修正しました:

  1. FacebookSDKフレームワークをプロジェクトから削除します。
  2. ビルド設定の「フレームワーク検索パス」と「ヘッダー検索パス」からFacebook SDKへの参照を削除します(この設定は「プロジェクト」と「ターゲット」の両方に存在するため、両方の場所からクリアしてください)
  3. プロジェクトをクリーンアップし、保存して終了します。
  4. プロジェクトを再起動します。
  5. プロジェクトにドラッグして、Facebook SDKフレームワークを再度追加します。
  6. コンパイル。この時点で、修正されました。
4
Shaun Budhram

私の場合、私はあなたに似たようなことをしました(1つは異なります)。手順は次のとおりです。

  1. FacebookSDKディレクトリに移動し、FacebookSDK.frameworkを選択し、右クリックして[情報を取得]を押し、ファイルパスをコピーします(/ Users/macbook/Documents/FacebookSDKなど)。

  2. Xcodeの[ビルド設定]に移動し、[検索パス]の下に[フレームワークの検索パス]項目があります。ダブルクリックして、コピーしたファイルパスを貼り付けます。

  3. この設定は「プロジェクト」と「ターゲット」の両方に存在するため、両方の場所に貼り付けてください。

  4. プロジェクトをきれいにしてビルドします。今回は動作するはずです。

3
Saleh Masum

字句またはプリプロセッサの問題-ファイルが見つかりませんというエラーに対する私の解決策は次のとおりです。

Xcode => Project Target => Build Settings => Search Pathsに移動します

次に、このパスで独自のプロジェクト名を使用して、フレームワーク検索パスとライブラリ検索パスの両方に次のパスを挿入します。「$ {SRCROOT} // project name/facebookSDK/framework」

2
Gavin Norman

私の場合、問題はMillenialMedia SDKにありました。

字句またはプリプロセッサの問題「MillennialMedia/MMSDK.h」ファイルが見つかりません

プロジェクトからSDKフレームワークを削除し、フレームワークをProjectの最上位フォルダー(保存されている.xcodeprojファイル)に移動することで解決しました。そして、ビルドフェーズでプロジェクトにフレームワークを追加します。

公式WebサイトからSDKアーカイブを再ダウンロードする必要がある場合があります(破損しているか、またはそのような場合)。私の場合、オフィスのコンピューターからプロジェクトをリモートリポジトリーにプッシュし、自宅のコンピューターからプルした後に発生しました。

フレームワークの削除 Removing frameworks

framevorksを内部フォルダーから最上位のProjectフォルダー(.xcodeprojファイルが保存されている同じフォルダー)に移動 Moving framevorks from inner folder to top-level Project folder

プロジェクトへのフレームワークの追加 Adding frameworks back to the project

1

Facebook SDKからDeprecatedHeadersフォルダー(_FacebookSDK/Versions/Current_にある)を_FacebookSDK.framework_の隣のFrameworksフォルダーにドラッグすることで、このエラーメッセージを解決しました。

すべての方法の検索パス(上記の_._を含む)を追加しても役に立たなかったし、Mr_bemからの回答も役に立たなかった-_.m_ファイルは「コンパイルソース」に既に存在

これはOPの質問に直接役立つことはないかもしれませんが、うまくいけば私のような他の人に役立つかもしれません。

1
scudsucker

同じ問題があります。たぶん、ソースコードをチェックアウトするためにtortoiseSVN(windows)を使用したでしょう。

これは私の問題です:

Mac =>ソースを送信=>ウィンドウ=>チェックアウトソース=>ウィンドウからMacにソースをコピー=>コンパイル=>エラー。

解決策:svn for Macを使用してソースをチェックアウトします。

0
FixBug

私は同じ問題を抱えていて、私の場合、このエラーの理由を見つけるには、「facebookSDK.framework」は、「フレームワーク検索パス」にあります。

プロジェクト内のすべての「フレームワーク検索パス」をチェックし、Xcodeがそれらのパスで1つの「facebookSDK.framework」のみを検出できることを確認できます。

0
Harpseal Tsai

この問題が発生したとき、プロジェクトが正常に戻ったことがわかりましたが、実行しようとするとエラーが発生しました。 facebook.hファイルをコメントアウトすると、プレフィックスファイル内の次のファイルに切り替えられただけで、エラーが発生します。

ビルド設定と検索パスの変更を開始する準備はできていましたが、すべてのXcodeプロジェクトを閉じて、最初に再起動することにしました。

これを書くことは、試してみるのはあまりにも明白なことのように思えますが、エラーが表示されるとすぐに、私はstackoverflowに入り、上記の提案された答えを試してみました。私の状況はまれでユニークかもしれませんが、間違いなく10秒しかかからず、私のために働いたので、最初にすべてを再起動して閉じてみてください。

0
simon_smiley

Framework Search PathsおよびHeader Search Pathsの値は、最初はここで他の人が言及したものと同じでした。

ライブラリをXcodeにドラッグして手動でリンクすることを確認しました。 FB SDKのライブラリもすでに存在していました。

問題は、ダウンロードしたSDKのフォルダー名にありました

名前をFacebookSDKに変更し、アプリを起動して実行しました

0

IOSのfacebookプラグインにこのコマンドラインを使用している場合

 cordova -d plugin add /path/to/cloned/phonegap-facebook-plugin --variable APP_ID="123456789" --variable APP_NAME="myApplication"

また、フレームワークにFacebookSDK.frameworkが表示されますが、拡張することはできません。戻ってcordova plugin remove phonegap-facebook-pluginを使用してからgit clone https://github.com/Wizcorp/phonegap-facebook-plugin.gitを使用し、facebookプラグインを再度追加します。

0
rstephen

わかりました、答えが得られたと思います。以下の手順に従ってください。

  1. フレームワークをプロジェクトにコピーします。
  2. あるディレクトリの下にあることを確認してください。例:$(PROJECT_DIR)/ project_name/Resources/Frameworks
  3. ターゲットをクリックします。
  4. Goto Build Phases->Link binary with Libraries
  5. "Add Other"をクリックしてカスタムフレームワークを追加します
  6. プロジェクトナビゲータで、フレームワークが1回だけ存在することを確認します。
  7. 次にBuild Settings->Search Paths->Framework Search Pathに移動し、次の2つのことを確認します。

(a)$(継承)
(b)$(PROJECT_DIR)/ project_name/Resources/Frameworks。

フレームワークが「Frameworks」フォルダー内に存在することを思い出さない

  1. ライブラリ検索パスに何もないことを確認してください。
  2. プロジェクト(ターゲットの上)->ビルド設定をクリックし、手順7と8を繰り返します。
  3. 次に、プロジェクトをクリーンアップして、プロジェクトをビルドします。

それがうまくいくことを願っています。フォルダー名にスペースを入れないでください。それらを保持している場合は、正しいエスケープ文字を指定してください。

0
Abhishek Kumar

私の場合、それはXcodeであり、F *** ing stuffの素敵な機能です:)

ソリューション: Xcodeの「ビルド設定」に移動し、「検索パス」の下に「フレームワーク検索パス」アイテムがあります。引用符の前にスラッシュがないことを確認してください。スラッシュは通常、Xcodeの「ファイルを追加...」でフレームワークを追加するときに追加されます。引用符の前にスラッシュが表示されている場合は、削除してください。例:

\"

あるべき

"
0
IncrediApp
  • Xcodeでファイルブラウザから青いアイコンをクリックします(プロジェクト名の一番上のアイコン)
  • ターゲットをクリックして、フェーズを構築します。
  • コンパイルソースを展開します。
  • Facebook.mファイルをそこに追加します。

それはそれを行う必要があります。

そうでない場合は、プロジェクトをクリーンアップして(command + shift + k)、フレームワークを再度追加します(Y)。

さらに質問がある場合は、Dに質問してください。

0
Albara