web-dev-qa-db-ja.com

RestKit /RestKit.hファイルが見つかりませんエラー-バージョン0.10.0

RestKitを構築して機能させるために、髪の毛を失っています。恐ろしい「字句またはプリプロセッサの問題:RestKit /RestKit.hファイルが見つかりません」というメッセージが表示されます。私はXcode4.2を使用しており、私のプロジェクトはiOS用です。

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

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

ヘッダー検索パスの下にこれがあります: "$(BUILT_PRODUCTS_DIR)/../../ Headers"。提案していただけますか(0.10.0バージョンの場合):1)RestKitの物理的な場所はどこにあるべきですか? (問題ではないかもしれませんが、どちらがうまくいきましたか?設定をミラーリングできることを期待して)2)ヘッダー検索パスを「/ Developer/Library/RestKit-RestKit-69adee9 /」に、後で「/Developer/Library/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最初にアプリを承認しましたが、ライブです!原因はまだわかりません既存のプロジェクトを削除して新しいプロジェクトを作成し、古いファイルをコピーする(そしてビルドが完了するかどうかを定期的にチェックする)ことは解決策にはなりません。そのため、この質問は開いたままにしておきます。

24
Ravi

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

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

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

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

10
Evan Cordell

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

RestKit Githubからのインストール手順をすでに実行していると仮定しますhttps://github.com/RestKit/RestKit/blob/master/README.md#クイックスタート-aka-tldr

RestKitターゲットで、ビルドフェーズに移動します。 ヘッダーのコピードロップダウンで、すべてのヘッダーファイルを「プロジェクト」から「パブリック」に移動します。

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

3
Chris Dutra

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

5時間後、コピーを削除して「」を貼り付け、手動で入力すると機能しました。

3
jdog

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

また、あなたの質問に完全に答えるために、私はRestKitファイルを次の場所に保管しています。
(プロジェクトディレクトリ)/ 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 そして注意以前のバージョンにすべてが含まれていた最新のRestKitバージョンのプロジェクトにlibRestKit.aのみがあることに関するセクション

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

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

2
Rob B

過去数時間、同じ問題と戦ってきました。最終的に私のために働いたもの(そしてこれが明確な修正であるとは言いませんが、少なくともそれは試すべきものです)。

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

この最後のステップで修正する必要があるかもしれませんが、私もこれに髪を引っ張っていたので、さまざまな解決策を試しましたが、この最後のステップがそれ自体を修正した唯一の理由であるとは思いませんでした。

(そして私のセットアップはXCode4.3.2とOSX 10.7.3です)

2
Will Turnage

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

これは私がしました:

#import "RestKit.h"

正しい方法ではなく:

#import <RestKit/RestKit.h>
1
tybro0103

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

これは派生データの設定によるものではなく、XCode4.3.2ではすでに問題ありません。

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

代わりに@class RKObjectMappingを使用するか、本当に.hが必要な場合は<RestKit/RKObjectMapping.h>を使用してください

コンパイルする必要があるので、@classを使用しました...

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

1
Davide Vosti

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

0
Loks

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

問題は、私のフォルダの1つにスペースがあったことでした。ソースフォルダ名にスペースを使用しないでください!

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

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

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

0
hatunike

私にとっては、これらの手順だけが機能します。チェック ここ これがお役に立てば幸いです。

0
Shweta

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

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

  • RestKit実行ターゲットを選択します
  • ビルド
  • ヘッダー検索パスがすべてのターゲットに設定されていることを確認してください(明らかにプロジェクト自体では不十分です)
  • メインプロジェクトを構築する
0
Tilman

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

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

_$(BUILT_の前と__DIR)/../../Headers_の後の引用符について話している

ビルド構成の名前にスペースが含まれていて(たとえば、私のものは「アドホック」です)、$(BUILT_PRODUCTS_DIR)/../../Headerswithout先頭と末尾の引用符を追加したばかりの場合は、 「字句またはプリプロセッサの問題:RestKit /RestKit.hファイルが見つかりません」という問題が発生します。

0
John Jacecko

私の解決策:

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

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

?!!!

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

0
Martin Berger

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

0
looneydoodle