3

これはリンクと関係があると思いますが、RestKitを削除して再度追加しました。すべての接続とリンクが適切に行われていることを確認しました。シミュレーターを使用するようにXCodeを設定すると、正常に実行されますが、任意のデバイスで実行するように設定すると、ビルドすらできなくなります。他に注意すべきことは、XCode4.5にアップグレードするまでこれが発生し始めなかったことです。以下はそれが私に与えるエラーです

ld: warning: ignoring file /Users/luke/Library/Developer/Xcode/DerivedData/ehrx-btsujlxuhtytahfaikwjeqfjybtt/Build/Products/Debug-iphoneos/libRestKit.a, file was built for archive which is not the architecture being linked (armv7s): /Users/luke/Library/Developer/Xcode/DerivedData/ehrx-btsujlxuhtytahfaikwjeqfjybtt/Build/Products/Debug-iphoneos/libRestKit.a
Undefined symbols for architecture armv7s:
  "_OBJC_CLASS_$_RKClient", referenced from:
      objc-class-ref in ehrxAppDelegate.o
      objc-class-ref in ehrxLoginView.o
      objc-class-ref in ehrxInboxView.o
      objc-class-ref in ehrxCMView.o
      objc-class-ref in ehrxEncounterDemoView.o
      objc-class-ref in ehrxEncounterDiagListView.o
      objc-class-ref in ehrxEncounterChargeView.o
      ...
ld: symbol(s) not found for architecture armv7s
clang: error: linker command failed with exit code 1 (use -v to see invocation)

これらはRestKitのビルド設定です。 ここに画像の説明を入力してください

4

3 に答える 3

6

これらのフレームワークはarmv7sデバイスで動作するように構築されていないようです。必要がない場合は、ビルド設定の「有効なアーキテクチャ」からフレームワークを削除してください。

そうでない場合は、armv7sで動作するように更新する必要があります

于 2012-10-04T21:38:26.830 に答える
3

リンカは、RestKitライブラリにarmv7のデータがないことについて文句を言います。

このアーキテクチャを有効なアーキテクチャとしてRestKitプロジェクトに追加してください。これは、明らかな理由から、メインプロジェクトからarmv7を削除するよりもはるかに優れています。

于 2012-10-04T21:41:22.823 に答える
2

これは、ライブラリRestKitがアーキテクチャarmv7用にのみコンパイルされており、新しいiPhoneアーキテクチャarmv7用にはコンパイルされていないためです。armv7s用にコンパイルされたlibがない場合は、プロジェクト設定のアーキテクチャーと有効なアーキテクチャーのリストからarmv7sを削除してみてください。

于 2012-10-04T21:39:14.427 に答える