0

アプリの購入に実装しようとしています。この素晴らしいチュートリアルに従いました アプリ内購入の紹介

プロジェクトをクリーンアップするとエラーは表示されませんが、プロジェクトをビルドすると次のエラーが表示されます。

 Undefined symbols for architecture armv7:
  "_OBJC_CLASS_$_MBProgressHUD", referenced from:
      objc-class-ref in PDF_Product.o
  "_OBJC_CLASS_$_Reachability", referenced from:
      objc-class-ref in PDF_Product.o
  "_OBJC_CLASS_$_InAppRageIAPHelper", referenced from:
      objc-class-ref in AppDelegate.o
      objc-class-ref in PDF_Product.o
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)

ファイルを削除して再度追加しようとしましたが、うまくいきませんでした。アイデアはありますか?

4

1 に答える 1

1

これらは、最終的なバイナリに組み込まれていないクラスを使用したことを示すリンカ エラーです (フレームワークなどには含まれていません)。

欠落しているクラスごとに、それを定義する .m ファイルを見つけて (たとえば、「Reachability」はおそらく Reachability.m で定義されています)、以下を確認します。

  • アプリのターゲットに Reachability.m が確実に含まれていますか?

  • ターゲットの「ソースのコンパイル」ビルド フェーズで、Reachability.m を確実に取得しましたか?

  • 下記の @Sohaib のように、正しいメンバーシップ チェックボックスが選択されていますか? 右側のパネルのプロパティ インスペクタでこれを確認します。左端のタブ (紙のように見えるタブ) に「ターゲット メンバーシップ」というセクションがあります。これは、ファイルがコンパイルされているターゲットを示しています。私はいつも間違ってユニットテストのターゲットに誤ってファイルを追加しています:)

于 2012-09-05T08:47:18.477 に答える