我已经导入框架从应用程序发送电子邮件在后台即SKPSMTPMessage框架。有人能建议为什么下面的错误显示

Undefined symbols for architecture i386:

"_OBJC_CLASS_$_SKPSMTPMessage", referenced from:
  objc-class-ref in ConfirmController.o

"_kSKPSMTPPartContentTransferEncodingKey", referenced from:
  -[ConfirmController sendEmail] in ConfirmController.o

"_kSKPSMTPPartMessageKey", referenced from:
  -[ConfirmController sendEmail] in ConfirmController.o

"_kSKPSMTPPartContentTypeKey", referenced from:
  -[ConfirmController sendEmail] in ConfirmController.o

ld: symbol(s) not found for architecture i386
collect2: ld returned 1 exit status

框架的来源:-

锁定MFMailComposeViewController中的字段

更新:

答:只需将文件夹拖放到项目上,然后单击复制。 这就是选择项目复选框和目标复选框。


当前回答

如果你的类的.m文件没有列在目标的“Build Phases”选项卡的“Compile Sources”步骤下,你就会得到这种类型的错误。通常Xcode会为你做这个,但有时它会丢失图形,你需要手动添加.m文件。

这样做:

TargetSettings ->构建阶段->编译源->添加你的。m类->构建和运行

其他回答

是的,这和艾伦说的有关…在源文件的Utilities部分中查找TargetMembership。有一个复选框将该文件与项目关联起来。检查这个也为我解决了这个问题。

我的情况有点不同

在前缀头中有一个定义缺失

#ifdef DEBUG
#   define TWDLog(fmt, ...) NSLog((@"\n%s\n" fmt), __PRETTY_FUNCTION__, ##__VA_ARGS__)
#else
#   define TWDLog(...)
#endif

搜索PROJECTNAME-Prefix。PCH并检查它是否在两个项目中都缺少一些东西

在构建阶段检查是否复制了所有的bundle资源。

记住,你可以在任何视图控制器中放一些宏它会调用你已经删除的文件。

在你构建应用程序之前,应用程序不会显示任何错误,它会在编译阶段在.o文件中抛出错误。

记得删除所有调用已删除文件的MACRO。

谢谢:)

当我添加PSTCollectionviewcontroller时,我有同样的7个错误的问题。这个问题的一个解决方案是检查你的“xcode ->构建阶段->编译源”在这里添加你的所有”。M”文件..希望这篇文章对今后的用户有所帮助。