24

RestKit をビルドして動作させるために、髪の毛が抜け落ちています。「レキシカルまたはプリプロセッサの問題: RestKit/RestKit.h ファイルが見つかりません」という恐ろしいメッセージが表示されます。私は Xcode 4.2 を使用しており、私のプロジェクトは iOS 用です。

以前は、RestKit 0.9.0 でデバッグ モードが完全に機能していました。その後、アーカイブしようとしているときに問題が発生しました。このフォーラムを読み、いくつかの解決策を試した後、0.10.0 にアップグレードすることで問題が解決することを期待して、0.10.0 にアップグレードすることにしました。

現在、私のプロジェクトはデバッグ モードでもビルドされておらず、同じ RestKit/RestKit.h ファイルが見つからないというエラーが発生します。

ヘッダー検索パスの下にこれがあります: "$(BUILT_PRODUCTS_DIR)/../../Headers"。提案してください (0.10.0 バージョンの場合): 1) RestKit の物理的な場所はどこにありますか? (問題ではないかもしれませんが、どちらがあなたのために働いた - 私はあなたの設定を反映できることを願っています) /開発者/ライブラリ/RestKit-RestKit-69adee9/Build"

完全に混乱し、欲求不満..

EDIT1:数時間後、あきらめました。私のプロジェクトを核攻撃しました。新しいプロジェクトを作成しました。ファイルを再作成します (前のプロジェクトからコピーして貼り付けます)。「RestKit が見つかりません」というエラーがなくなりました。しかし今、私はこの他のエラーが発生しています:

Undefined symbols for architecture i386:
"_OBJC_CLASS_$_RKObjectMapping", referenced from:
objc-class-ref in myclassname1.o
"_OBJC_CLASS_$_RKObjectManager", referenced from:
objc-class-ref in myclassname2.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

RestKit.framework を追加していないことを確認しました...なぜclangエラーが発生しているのかわかりません

EDIT2 : libRestKit.a は赤でした。https://github.com/RestKit/RestKit/wiki/Installation-Troubleshootingによると問題ありません。念のために、リンクされた依存関係をすべて削除しました。「その他のリンカー フラグ」を削除しました。Xcode を閉じて再開しました。それらをすべて元に戻します。そのエラーはなくなりました。たぶん、clang エラーの原因となったフレームワークを見逃したのでしょう。しかし、私がチェックしてダブルチェックした可能性は非常に低いです。それは今動作します。

デバッグ モードでビルドおよびアーカイブします。配信モードはまだ試していません。

EDIT3: Apple は最初に私のアプリを承認し、ライブになりました! ここで問題が発生した原因はまだわかりません。既存のプロジェクトを削除して新しいプロジェクトを作成し、古いファイルをコピーする(ビルドが完了するかどうかを定期的にチェックする)ことは解決策にはなりません。だから私はこの質問を開いたままにしています。

4

14 に答える 14

10

私はこれにいくつかの光を当てることができると思います。

0.10.0 にアップグレードすると、ヘッダーの検索パスが に変更されます"$(BUILT_PRODUCTS_DIR)/../../Headers"ね。

インストール ガイドでは、プロジェクト設定に対してのみこれを行うように指示されています。ただし、多くの場合、私の場合も含めて、ターゲット設定についても更新する必要があります。

ターゲット設定にはまだ古いヘッダー検索パスがあり、何らかの理由でプロジェクト設定から継承しないことにします。

于 2012-04-28T00:28:35.067 に答える
3

私が見つけた解決策は、「$(BUILT_PRODUCTS_DIR)/../../Headers」をコピーしてターゲットのヘッダー検索パスに貼り付けることではありませんでした。

5時間後、コピーを削除して貼り付け、手動で入力するとうまくいきました.

于 2012-12-05T03:44:42.273 に答える
3

気をつけてください-それは完全なハックです-しかし、それは私のプロジェクトを実行させました。

RestKit Github https://github.com/RestKit/RestKit/blob/master/README.md#quick-start-aka-tldrのインストール手順を既に実行していると仮定します。

RestKit ターゲットで、Build Phasesに移動します。[ヘッダーのコピー] ドロップダウンで、すべてのヘッダー ファイルを "Project" から "Public" に移動します。

クリーン、ビルド、実行。

于 2012-08-22T18:44:59.410 に答える
2

最近、RestKit 0.9.3から0.10.0にアップグレードしてみましたが、同じことがわかりました。RestKit / buildディレクトリを削除しましたか?これには.hファイルのコピーが含まれており、0.9.xをビルドするときにビルドプロセスの一部として作成されます。製品->クリーンを実行しても、これらのファイルは削除されないようです。0.10.0はこのビルドディレクトリを作成していないようです。ビルドエラーは、これらのファイルがまだ取得されていることが原因であると思われます。

また、あなたの質問に完全に答えるために、私はRestKitファイルを次の場所に保持します:
(project dir)/ Frameworks / RestKit
これはgitサブモジュールであるため、特定のリビジョンのRestKitgitリポジトリのクローンが含まれています。

また、ヘッダー検索パスは次のとおりです。
$(BUILT_PRODUCTS_DIR)/../../ヘッダー

0.9.3のヘッダー検索パスは次のとおりです:
$(SOURCE_ROOT)/ RestKit / Build

このガイドは役に立ちました(おそらくこれはあなたがすでにフォローしているものです):https ://github.com/RestKit/RestKit/wiki/Installing-RestKit-in-Xcode-4.xそしてlibRestKit のみを持つことについてのセクションに注意してください。以前バージョンにすべてが含まれていた最新のRestKitバージョンのプロジェクト内:

  • libRestKitNetwork.a
  • libRestKitObjectMapping.a
  • libRestKitSupport.a
  • libRestKitJSONParserJSONKit.a
  • libRestKitXMLParserLibxml.a
  • libRestKitCoreData.a

これらがすべて揃っている場合は、プロジェクトから削除してください。

于 2012-04-16T11:11:56.963 に答える
2

過去数時間、同じ問題と戦っています。最終的に何がうまくいったか(これが明確な修正であると言っているわけではありませんが、少なくとも試してみる必要があります)。

  • プロジェクトから RestKit を削除する
  • プロジェクトを閉じる
  • RestKit フォルダーをメインの xcodeproject の隣に移動します。
  • RestKit プロジェクトを開いてビルドする
  • RestKit プロジェクトを閉じる
  • プロジェクトを開き、RestKit プロジェクトを xcodeproject に再インポートします。
  • ターゲット設定の依存関係とリンクを修正します
  • プロジェクト設定とターゲット設定の両方に「$(BUILT_PRODUCTS_DIR)/../../Headers」検索パスを追加します。(両方にリストされている場合にのみ機能しました)。

この最後の手順だけで問題を解決できるかもしれませんが、私もこれに頭を悩ませていたので、さまざまな解決策を試しましたが、この最後の手順が唯一の理由であるとは思いたくありませんでした。

(私のセットアップは XCode 4.3.2 と OS X 10.7.3 です)

于 2012-04-17T12:49:21.390 に答える
1

この問題もありました。シミュレーターで問題なくビルドおよび実行されますが、アーカイブされません。ここで私は間違っていました...

これは私がしました:

#import "RestKit.h"

正しい方法ではなく:

#import <RestKit/RestKit.h>
于 2012-08-27T04:23:09.247 に答える
1

この同じエラーに 2 日間費やし、考えられるすべての Google の結果に移動した後、ついにそれを取得しました!

Derived Data の設定が原因ではありません。これらは XCode 4.3.2 ですでに問題ありません。

問題は、#import "RKObjectMapping.h"または他のインクルードを実行していることです。

代わりに使用する @class RKObjectMappingか、本当に .h 使用が必要な場合<RestKit/RKObjectMapping.h>

私は@classちょうどコンパイルする必要があるので行ってきました...

この助けを願っています!

于 2012-06-13T19:55:15.750 に答える
0

私の解決策:

"$(BUILT_PRODUCTS_DIR)/../../Headers"[ターゲット]->[ビルド設定]->[検索パス]->[ヘッダー検索パス]に追加するときに、値が設定されていませんでした。

代わりに、値はユーザーヘッダー検索パスに設定されています。したがって、ヘッダー検索パスをダブルクリックすると、線のあるペインが表示され、[+]を左下にクリックしてその文字列を貼り付け、別の場所をクリックしてウィンドウを閉じます...何もしません。ヘッダー検索パスは更新されませんでしたが、ユーザーヘッダー検索パスは更新されました。

?!!!

したがって、ヘッダー検索パスの開示ボタンをクリックします。属性の右側にある+記号をクリックして、値を追加します...

于 2012-10-31T09:51:55.597 に答える
0

今日もまったく同じエラーが発生しました。すべてのコードはgithubリポジトリにあり、restkitフォルダーは無視されるため、restkitファイルはありませんでした。これで、xcodeがプロジェクトを開いて不足しているものを見つけると、すべての地獄が解き放たれたと見なされます。そのため、フォルダーを削除し、クローンを再作成してから、レストキットの新しいコピーを取得し、そこにスローして、すべてが機能しました。

于 2012-04-16T05:16:59.307 に答える
0

非常によく似た問題がありました。ビルド設定を「ヘッダー検索パス」ではなく「ユーザーヘッダー検索パス」に誤って追加したことが判明しました。

于 2012-10-10T04:11:38.530 に答える
0

これは、この問題に対する十分な答えがないと私が思う問題です。なぜなら、この問題を抱えていると、何もすることがないように感じるからです! 提案されたすべてのソリューションを試した後 (どれも機能しませんでした)。私はついに問題を見つけました

問題は、フォルダーの 1 つにスペースが含まれていたことです。ソース フォルダー名にスペースを使用しないでください。

Used to be : (/Xcode projects/basicRestkit etc...)  -- lots of pain and suffering  
changed to : (/projects/basicRestkit) -- lots of rejoicing

これにより、ヘッダー検索パスが機能しなくなり、ファイルが見つからなくなりました。ヘッダーの検索パスを変更して、スペースが含まれていてもファイルを見つける方法があるかもしれません。

これは役に立たないかもしれませんが、非常にうまくいく可能性があります。幸運を。

于 2012-11-09T01:55:38.553 に答える
0

これは、修正後に自分を平手打ちしたくなるよくある間違いです。

"$(BUILT_PRODUCTS_DIR)/../../Headers"はい、間違いなくターゲットのHeader Search Pathsに追加したいのですが、引用符を含めることを忘れないでください!

私は前後にある引用について話して$(BUILTいる_DIR)/../../Headers

ビルド構成の名前にスペースが含まれている場合 (たとえば、私の場合は「Ad Hoc」) 、先頭と末尾の引用符を付け$(BUILT_PRODUCTS_DIR)/../../Headers に追加しただけでは、「字句またはプリプロセッサの問題: RestKit/RestKit.h ファイル」が発生する可能性があります。見つからない」問題。

于 2012-11-07T22:49:55.650 に答える
0

ヘッダー ファイルをビルド ディレクトリにコピーするには、RestKit ターゲットを手動でビルドする必要があることがわかりました。どうやらマスター プロジェクトのビルドは、サブプロジェクトのビルドを確実に実行しませんか?

したがって、この問題を修正するための私の手順:

  • RestKit 実行ターゲットを選択します
  • 建てる
  • ヘッダー検索パスがすべてのターゲットに設定されていることを確認してください (明らかにプロジェクト自体では十分ではありません)。
  • メインプロジェクトをビルドする
于 2012-06-02T21:21:07.457 に答える