0

我正在尝试在应用程序购买中实现,我遵循了这个很棒的教程In-App Purchases 简介

当我清理项目时,它没有显示任何错误,但是当我构建项目时,它给了我这些错误:

 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 回答