架构i386未定义符号"_OBJC_CLASS_$_Appirater"

10

将Appirater添加到我的iOS项目后,编译时出现错误:

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

在互联网上搜索了很久,但是找到的解决方案都无法帮助我。

我的项目和目标都设置为:

enter image description here

我应该尝试什么更多的东西?


“将Appirater添加到我的iOS项目”是什么意思? - Krizz
我已经按照这里的所有步骤进行了操作:https://github.com/arashpayan/appirater - CristiC
4个回答

44

我认为您只是将文件添加到项目中,而没有将其添加到目标中。
项目导航器中单击Appirater.m文件,在文件检查器目标成员资格中的您的目标名称旁边设置复选框。


4
如果有人不知道什么是文件检查器或者在哪里找到它,那么在Xcode 4和3中(如果我没记错的话),您可以前往“视图”->“实用工具”->“显示文件检查器”。它应该从右侧滚动进来。 - Ben Coffman
您还可以在项目检查器中右键/命令单击文件,然后选择“显示文件检查器”,该选项位于“新建文件”上方的第四个选项。 - Oblivious Sage
1
请查看此答案的动画GIF演示:https://dev59.com/2WYq5IYBdhLWcg3w2EFi#14148008 - rob mayoff
@Nick 你的评论非常有帮助,充满了知识,几乎是理性的声音。 - Tomasz Wojtkowiak
如果我在“文件检查器”中对文件夹内的文件没有“目标成员资格”区域,该怎么办?我只有文件夹上有这个区域,但已经选中了,并且出现了相同的错误(XCode 7.2)。 - Martin Mlostek
显示剩余2条评论

3

看起来你的项目没有正确添加Appirater代码。 Appirater.hAppirater.m 必须作为你的项目一部分,并且像所有其他文件一样编译Appirater.m


Appirater.m文件未添加到目标中,这就是问题所在。 - CristiC

2
如果您在项目中忘记添加CFNetwork和SystemConfiguration框架,也会出现此错误。

1
帮帮我。问题出在另一个必需的框架StoreKit上。 - Craig

1

我刚遇到了同样的问题,并解决了它。

我的问题原因是我从其他项目中拖放了一个文件到当前项目中。

当然,如果我们删除并重新创建该文件,它就可以正常工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接